С учетом отрицательного заказа, с общим итогом менее 0

15

Один из наших клиентов попросил сотрудников, занимающихся вводом заказов, отправлять заказы с отрицательной суммой заказа. Приложение уже разрешает использовать отрицательные позиции, что прекрасно работает до тех пор, пока остаток заказа составляет положительный общий итог.

Кажется, что Magento очень старается, чтобы не иметь отрицательный общий итог. Просмотр собранных итогов показывает, что Magento применяет подарочную карту на обратную сумму. Если я отключу подарочную карту, то она будет использовать кредит магазина (даже если кредит не существует). Я подозреваю, что это просто причуды (и, возможно, красная сельдь).

Может ли кто-нибудь помочь определить, где Magento устанавливает 0 в качестве максимальной общей суммы, и как мы можем выполнить запрос? Я не хочу просто принудительно устанавливать сумму, так как я хочу, чтобы Magento вычислял все нормально, только с учетом отрицательного итогового итога.

Суть вопроса заключается в технической выполнимости, но как только она будет решена, меня интересуют любые «ошибки» или мысли, которые могут отговорить использовать отрицательные итоговые суммы с нетехнической точки зрения.

Morgon
источник
1
Можете ли вы сказать нам, почему вы этого хотите?
отметки
@benmarks - Как я знаю, вы знаете, иногда «это то, что хочет клиент», превосходят логику и разум. Они хотят предоставить своим продавцам (используя специальную форму заказа) полную свободу при создании заказа и ценах (что уже работает, даже для позиций с отрицательной ценой), если общее количество заказа превышает 0. Это просто требует это шаг вперед, чтобы весь заказ был отрицательным, если это необходимо). Спасибо за любую помощь, вы можете предоставить!
Моргон
Можете ли вы привести пример из реальной жизни, где это было бы полезно?
Джеймс Анелай - TheExtensionLab
Как вы собираетесь бороться с кредитовыми авизо?
Майкель Коек
@MaikelKoek - Клиент на самом деле не делает кредитовые авизо как есть, поэтому я не думаю, что это повлияет.
Моргон

Ответы:

4

Это кажется очень рискованным решением. Если вы внедрили его, вам потребуется переопределить слишком большую часть ядра, что делает сайт чрезвычайно сложным для обновления и поддержки.

Выполнение поиска в ядре Magento для max(0результатов поиска в следующих областях:

  • Enterprise_CustomerBalance_Model_Observer::creditmemoDataImport()
  • Enterprise_GiftCard_Model_Catalog_Product_Price_Giftcard::getFinalPrice()
  • Mage_Bundle_Model_Product_Price::getFinalPrice()
  • Mage_Catalog_Model_Product_Type_Price::getFinalPrice()
  • Mage_Catalog_Model_Product_Type_Configurable_Price::getFinalPrice()
  • Mage_Catalog_Model_Product_Type_Grouped_Price::getFinalPrice()
  • Mage_CatalogRule_Helper_Data::calcPriceRule()
  • Mage_Downloadable_Model_Product_Price::getFinalPrice()
  • Mage_SalesRule_Model_Validator::process()
  • Mage_Tax_Block_Sales_Order_Tax::_initSubtotal()
  • Mage_Tax_Model_Sales_Total_Quote_Tax (multiple uses)

И многое другое в шаблонах в областях adminhtml и frontend. Возможно, вам придется переписать многие из этих моделей для достижения желаемой функциональности.

Вы можете рассмотреть альтернативы ниже:

  • Дайте продавцам логины в админку Magento и разрешите им создавать заказы оттуда - полный контроль над ценами товаров и т. Д.
  • Используйте кредит магазина, если клиент должен получить кредит обратно (я полагаю, для этого будет заказ с отрицательным итогом?)

Если вы предоставите сценарий, в котором заказ закончится с отрицательным итогом, а также обоснование этого, то сообщество сможет дать вам лучший ответ. Трудно решить такую ​​проблему, пока вы не поймете ценность бизнеса для решения.

jharrison.au
источник
Хороший ответ Мне это нравится :)
Рама Чандран М