Produkty sklepowe są dostarczane od różnych dostawców. Konieczne jest utworzenie wielu zamówień dla każdego dostawcy na podstawie jego produktów w koszyku podczas jednej transakcji. Czy jest jakieś rozszerzenie do realizacji tego zadania, czy powinienem zacząć opracowywać niestandardowy moduł kasy. Co z gorącymi punktami do stworzenia takiej wizji rozszerzenia doświadczonych programistów Magento? Czy możesz mi wyjaśnić architekturę przepływów gotowych do użycia w Magento (możliwie jak na poziomie kodu)? Wielkie dzięki!
checkout
code
order-splitting
mageUz
źródło
źródło
Odpowiedzi:
Jest to wykonalne dość łatwo dzięki przepisaniu
checkout/type_onepage
modelu.W tej klasie przesłoń
saveOrder()
metodę w następujący sposób:Pamiętaj jednak, że w Magento płatność jest powiązana z fakturą, a każda faktura jest powiązana z zamówieniem.
W konsekwencji oznacza to, że jak tylko będziesz mieć wiele zamówień, rozdzielisz również płatności . Jest to możliwe tylko wtedy, gdy metoda płatności nie wymaga interakcji użytkownika podczas płatności.
AKTUALIZACJA : Oryginalna odpowiedź przekazana do
parent::save()
której musiała byćparent:saveOrder()
. Zostało to teraz naprawione w przykładowym kodzie.źródło
saveOrder
jest nadal obecna i aktywna w Magento CE 1.9, tak jak zawsze była.Poniższe jest testowane w CE wer. 1.9.0.x.
WAŻNE Musisz dostosować metody płatności, aby odzyskać całkowitą kwotę z oferty.
źródło
$group[] = $item; // all other items in one order
może pomieścić wiele elementów na zamówienie, możesz łatwo modyfikować, tak aby każdy sprzedawca miał swój własny$group
.$quote->Mage::getModel('sales/quote')->load($lastOrder->getQuoteId())
. Wtedy istnieje wiele sumy można pobrać z$quote
, z których jeden jest$quote->getGrandTotal()