Um de nossos clientes solicitou a capacidade de seu pessoal de entrada de pedidos enviar pedidos com um total negativo de pedidos. O aplicativo já permite itens de linha negativos, o que funciona bem desde que o restante do pedido produza um total geral positivo.
Parece que o Magento se esforça muito para não ter um total negativo de pedidos. Observar os totais coletados mostra que o Magento aplicará um cartão de presente pelo valor inverso. Se eu desativar o cartão-presente, ele aplicará Crédito da loja (mesmo que não exista crédito). Eu suspeito que isso é apenas uma peculiaridade (e possivelmente um arenque vermelho).
Alguém pode ajudar a identificar onde o Magento força 0 como seu valor máximo total total e como podemos atender à solicitação? Não quero simplesmente definir o total à força, pois quero que o Magento calcule tudo normalmente, apenas com a permissão de um total geral negativo.
O espírito da questão é a viabilidade técnica, mas, uma vez abordado, estou interessado em quaisquer "truques" ou pensamentos que possam dissuadir o uso de totais de ordens negativas do ponto de vista não técnico.
fonte
Respostas:
Parece uma decisão muito arriscada. Se você o implementasse, seria necessário substituir muito do núcleo, tornando o site extremamente difícil de atualizar e dar suporte.
A realização de uma pesquisa no núcleo Magento por
max(0
resultados de retorno nas seguintes á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)
E muito mais em modelos nas áreas de administração e front-end. Pode ser necessário reescrever muitos desses modelos para obter a funcionalidade desejada.
Você pode considerar as alternativas abaixo:
Se você fornecer um cenário em que um pedido terminaria com um total negativo e também o raciocínio por trás dele, a comunidade poderá fornecer uma resposta melhor. É difícil resolver um problema como esse até você entender o valor comercial por trás da decisão.
fonte