Zezwalanie na ujemne zamówienie, z sumą całkowitą mniejszą niż 0

15

Jeden z naszych klientów poprosił o możliwość złożenia przez personel wprowadzający zamówienia zamówień o ujemnej sumie zamówień. Aplikacja już dopuszcza ujemne elementy zamówienia, które działają dobrze, o ile reszta zamówienia daje dodatnią sumę całkowitą.

Wygląda na to, że Magento bardzo stara się nie mieć ujemnej sumy zamówień. Analiza zebranych sum pokazuje, że Magento zastosuje kartę podarunkową na odwrotną kwotę. Jeśli wyłączę kartę podarunkową, dotyczy to Kredytu sklepowego (nawet jeśli kredyt nie istnieje). Podejrzewam, że to tylko dziwactwo (i prawdopodobnie czerwony śledź).

Czy ktokolwiek może pomóc wskazać, gdzie Magento wymusza 0 jako maksymalną sumę całkowitą oraz w jaki sposób możemy spełnić prośbę? Nie chcę po prostu ustawiać sumy na siłę, ponieważ chcę, aby Magento obliczał wszystko normalnie, tylko z uwzględnieniem ujemnej sumy całkowitej.

Istotą tego pytania jest techniczna wykonalność, ale kiedy to zostanie rozwiązane, jestem zainteresowany wszelkimi „gotchami” lub myślami, które mogą zniechęcić do stosowania sum ujemnych z nietechnicznego punktu widzenia.

Morgon
źródło
1
Czy możesz nam powiedzieć, dlaczego tego chcesz?
zyskuje
@benmarks - jak wiem, czasami „tego właśnie chce klient” przebija logikę i rozum. Chcą dać swoim sprzedawcom (za pomocą niestandardowego formularza zamówienia) pełną swobodę przy tworzeniu zamówień i cenach (co już działa, nawet w przypadku elementów zamówienia o ujemnej cenie - o ile suma zamówień jest większa niż 0. To po prostu zajmuje jest to krok dalej, aby w razie potrzeby całe zamówienie było ujemne). Dzięki za wszelką pomoc, którą możesz udzielić!
Morgon,
Czy możesz podać prawdziwy świat, w którym byłoby to przydatne?
James Anelay - TheExtensionLab
Jak sobie poradzisz z notami kredytowymi?
Maikel Koek
@MaikelKoek - Klient tak naprawdę nie robi faktur korygujących, więc nie sądzę, aby miało to jakikolwiek wpływ.
Morgon,

Odpowiedzi:

4

To wydaje się bardzo ryzykowną decyzją. Jeśli go zaimplementowałeś, będziesz musiał zastąpić zbyt wiele rdzenia, co bardzo utrudni aktualizację i obsługę witryny.

Przeprowadzenie wyszukiwania w rdzeniu Magento w celu uzyskania max(0zwrotów skutkuje w następujących obszarach:

  • 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)

I wiele innych w szablonach w obszarach adminhtml i frontend. Konieczne może być przepisanie wielu z tych modeli, aby osiągnąć pożądaną funkcjonalność.

Możesz rozważyć poniższe alternatywy:

  • Daj sprzedawcom loginy do obszaru administracyjnego Magento i pozwól im tworzyć zamówienia stamtąd - pełna kontrola cen produktów itp.
  • Użyj kredytu sklepowego, jeśli klient powinien odzyskać kredyt (zakładam, że po to byłoby zamówienie z sumą ujemną?)

Jeśli podasz scenariusz, w którym zamówienie zakończy się ujemną sumą, a także uzasadnienie, społeczność będzie w stanie udzielić lepszej odpowiedzi. Trudno rozwiązać taki problem, dopóki nie zrozumiesz wartości biznesowej stojącej za decyzją.

jharrison.au
źródło
Dobry ans. Lubię to :)
Rama Chandran M