Один из наших клиентов попросил сотрудников, занимающихся вводом заказов, отправлять заказы с отрицательной суммой заказа. Приложение уже разрешает использовать отрицательные позиции, что прекрасно работает до тех пор, пока остаток заказа составляет положительный общий итог.
Кажется, что Magento очень старается, чтобы не иметь отрицательный общий итог. Просмотр собранных итогов показывает, что Magento применяет подарочную карту на обратную сумму. Если я отключу подарочную карту, то она будет использовать кредит магазина (даже если кредит не существует). Я подозреваю, что это просто причуды (и, возможно, красная сельдь).
Может ли кто-нибудь помочь определить, где Magento устанавливает 0 в качестве максимальной общей суммы, и как мы можем выполнить запрос? Я не хочу просто принудительно устанавливать сумму, так как я хочу, чтобы Magento вычислял все нормально, только с учетом отрицательного итогового итога.
Суть вопроса заключается в технической выполнимости, но как только она будет решена, меня интересуют любые «ошибки» или мысли, которые могут отговорить использовать отрицательные итоговые суммы с нетехнической точки зрения.
источник
Ответы:
Это кажется очень рискованным решением. Если вы внедрили его, вам потребуется переопределить слишком большую часть ядра, что делает сайт чрезвычайно сложным для обновления и поддержки.
Выполнение поиска в ядре 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. Возможно, вам придется переписать многие из этих моделей для достижения желаемой функциональности.
Вы можете рассмотреть альтернативы ниже:
Если вы предоставите сценарий, в котором заказ закончится с отрицательным итогом, а также обоснование этого, то сообщество сможет дать вам лучший ответ. Трудно решить такую проблему, пока вы не поймете ценность бизнеса для решения.
источник