Permitindo um pedido negativo, com o Total geral menor que 0

15

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.

Morgon
fonte
11
Você pode nos dizer por que você quer isso?
benmarks 14/01
@benmarks - Como eu sei, às vezes 'é isso que o cliente quer' supera a lógica e a razão. Eles querem dar ao pessoal de vendas (usando um formulário de pedido personalizado) total liberdade na criação e nos preços dos pedidos (o que já funciona, mesmo para itens de linha com preços negativos - desde que o total do pedido seja superior a 0. Isso é apenas um passo adiante para permitir que todo o pedido seja negativo, se desejado). Obrigado por qualquer ajuda que você pode fornecer!
Morgon
Você pode dar um exemplo do mundo real onde isso seria útil?
James Anelay - TheExtensionLab 15/01
Como você vai lidar com as notas de crédito?
Maikel Koek
@MaikelKoek - O cliente não faz realmente as notas de crédito, então não acho que isso teria algum impacto.
Morgon

Respostas:

4

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(0resultados 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:

  • Dê ao pessoal de vendas logins na área administrativa do Magento e permita que eles criem pedidos a partir daí - controle total sobre o preço dos itens, etc.
  • Use o crédito da loja se o cliente estiver recebendo o crédito de volta (presumo que seja para isso que seria um pedido com total negativo?)

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.

jharrison.au
fonte
Boa ans. Eu gosto disso :)
Rama Chandran M