Uno de nuestros clientes ha pedido la capacidad de su personal de entrada de pedidos para enviar pedidos con un total negativo. La aplicación ya permite líneas de pedido negativas, lo que funciona bien siempre que el resto del pedido genere un Gran Total positivo.
Parece que Magento se esfuerza mucho por no tener un total de orden negativo. Ver los totales recopilados muestra que Magento aplicará una tarjeta de regalo por el monto inverso. Si desactivo la tarjeta de regalo, aplica el crédito de la tienda (incluso si el crédito no existe). Sospecho que esto es solo una peculiaridad (y posiblemente un arenque rojo).
¿Alguien puede ayudar a determinar dónde Magento fuerza 0 como su cantidad total máxima total y cómo podríamos cumplir con la solicitud? No quiero simplemente forzar el total, ya que quiero que Magento calcule todo normalmente, solo con la asignación de un Gran Total negativo.
El espíritu de la pregunta es la viabilidad técnica, pero una vez que se aborde, me interesarán las "trampas" o pensamientos que puedan disuadir el uso de totales de pedidos negativos desde un punto de vista no técnico.
fuente
Respuestas:
Esto parece una decisión muy arriesgada. Si lo implementó, necesitaría anular demasiado del núcleo, haciendo que el sitio sea extremadamente difícil de actualizar y admitir.
Al realizar una búsqueda en el núcleo de Magento para obtener
max(0
resultados en las siguientes áreas: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)
Y muchos más en plantillas en las áreas adminhtml y frontend. Es posible que deba volver a escribir muchos de estos modelos para lograr la funcionalidad deseada.
Es posible que desee considerar las alternativas a continuación:
Si proporciona un escenario en el que un pedido terminaría con un total negativo, y también el razonamiento detrás de él, entonces la comunidad podrá darle una mejor respuesta. Es difícil resolver un problema como este hasta que comprenda el valor comercial detrás de la decisión.
fuente