Jakie są definicje statusów zamówienia? LUB: Gdzie powinienem zintegrować swój stan zamówienia?

25

Chcę zdefiniować niektóre stany zamówienia, takie jak „otrzymano płatność kartą kredytową”, pytanie dotyczy tego, do którego statusu należą. Czy istnieje definicja dla każdego z wbudowanych statusów?

Edycja: Wygląda na to, że pomieszałem „status” i „stan”, mam nadzieję, że i tak wyjdzie z kontekstu. Obwiniam tłumaczenie niemieckiego Magento (State => Status, Status => Zustand)

Fabian Schmengler
źródło

Odpowiedzi:

42

Zgodnie z „Ostatecznym przewodnikiem po Magento” [1] statusy zamówień są zdefiniowane w następujący sposób:

  • Oczekujące: Zamówienia oczekujące to zupełnie nowe zamówienia, które nie zostały przetworzone. Zazwyczaj zamówienia te muszą być zafakturowane i wysłane.
  • Oczekujące PayPal: Oczekujące zamówienia PayPal to zupełnie nowe zamówienia, które nie zostały rozliczone przez PayPal. [...]
  • Przetwarzanie: Przetwarzanie oznacza, że ​​zamówienia zostały zafakturowane lub wysłane, ale nie oba.
  • Zrealizowane: zamówienia oznaczone jako ukończone zostały zafakturowane i wysłane.
  • Anulowane: anulowanych zamówień należy użyć, jeśli zamówienia zostały anulowane lub jeśli nie zostały opłacone.
  • Zamknięte: zamówienia zamknięte to zamówienia, do których przypisano notę ​​kredytową, a klient otrzymał zwrot pieniędzy za swoje zamówienie.
  • Wstrzymane: Zlecenia wstrzymane muszą zostać wstrzymane przed kontynuowaniem jakichkolwiek dalszych działań.

W związku z tym należałoby podać stan „otrzymano płatność kartą kredytową” processing, pod warunkiem że zamówienie nie zostało jeszcze wysłane.


Aligent Consulting [2] stworzył schemat blokowy dla stanów zamówienia:

przepływ stanu zamówienia magento


Źródła:

  1. Adam McCombs i Robert Banh: „The Definitive Guide to Magento”, Apress, 2009 (ISBN 1430272287, 9781430272281)
  2. https://twitter.com/aligent/status/509487359172177921/photo/1
Fabian Schmengler
źródło
Jestem za odpowiedziami na pytania - ale to po prostu wydaje się niskiej jakości. Odpowiedź „kopiuj i wklej”, którą w przeciwnym razie można by łatwo znaleźć w Internecie, nie wnosi tak naprawdę dużej wartości do tej witryny.
Ben Lessani - Sonassi
4
@sonassi: Szanuję twoją opinię i nie twierdzę, że pytanie jest najwyższej jakości, ale szukałem tego przez chwilę i nie znalazłem jeszcze powiązanych pytań tutaj ani na SO, więc może to pomóc komuś innemu w przyszłości.
Fabian Schmengler
Uważam to za bardzo pomocne. Czasami łatwiej znaleźć rzeczy na stosie niż w Google, ponieważ stos jest wstępnie filtrowany w porównaniu do Google, że tak powiem. a jeśli to nasienia, niech tak będzie. Zapewniają wartość. Jestem całkowicie w porządku z siewem.
ahnbizcad
2

Różne stany porządku są zdefiniowane w Mage_Sales_Model_Order:

const STATE_NEW             = 'new';
const STATE_PENDING_PAYMENT = 'pending_payment';
const STATE_PROCESSING      = 'processing';
const STATE_COMPLETE        = 'complete';
const STATE_CLOSED          = 'closed';
const STATE_CANCELED        = 'canceled';
const STATE_HOLDED          = 'holded';
const STATE_PAYMENT_REVIEW  = 'payment_review';
Stefan
źródło
+1 Czy to można zastąpić? Czy istnieje sposób, aby uzyskać to z reszty interfejsu API? np. / config / sales /ossibleStatusList?
Mzn
1
Zastąpić stałe? Dlaczego chcesz je zastąpić? Możesz zdefiniować nowe statusy zamówień w backend (System> Statusy zamówień). Jeśli masz na myśli „zmień status zamówienia”, tak, jest to możliwe. I tak, możesz również uzyskać status zamówienia z API (metoda sales_order.info lub metoda sales_order.list)
Stefan
tak, miałem na myśli zmianę listy, a nie stałe. Czy wiesz, jak mogę uzyskać dostęp do sales_order.info w pozostałej części interfejsu API? jaki jest punkt końcowy? Próbowałem / salesorders / info względny adres URL
Mzn
Nie powinno być trudne, zobacz tutaj ogólnie dostęp: magento.stackexchange.com/a/33187/6291 i informacje o sales_order.info tutaj: devdocs.magento.com/guides/m1x/api/soap/sales/salesOrder/ … Powodzenia!
Stefan
Dzięki za odpowiedź, ale interfejs SOAP jest naprawdę inny niż interfejs REST. Z jakiegoś powodu nie mogę znaleźć tego, o czym mówisz w dokumentach interfejsu API REST: devdocs.magento.com/swagger/index.html Czy możesz to tam zobaczyć? Może nie jest uwzględniony w interfejsie API REST?
Mzn
1

W rzeczywistości, ponieważ statusy zamówień 1,5 można zdefiniować w sekcji Administrator, a xml nie jest preferowanym sposobem dodawania / zmieniania stanów lub statusów. Zrób różnicę między stanem a statusem. Stan „status przetwarzania” to „otrzymano płatność kartą kredytową”

Aktualizacja : Statusy zamówień można tworzyć i modyfikować w admin / sales_order_status /, nie trzeba nic robić w XML Można przypisać status tylko wtedy, gdy zamówienie jest w odpowiednim stanie. Domyślnie zamówienie przechodzi w stan Przetwarzania, gdy zostaje zafakturowane lub wysłane.

Petar Dzhambazov
źródło
Czy miał to być komentarz do odpowiedzi Sebastiana Linda? Jeśli chodzi o stany i statusy, wygląda na to, że je pomieszałem (ponownie ...), dzięki za korektę.
Fabian Schmengler
-1

Możesz połączyć swój nowy stan z istniejącymi statusami zamówień lub utworzyć zupełnie nowy. Po prostu zmodyfikuj plik konfiguracyjny modułu sprzedaży w następujący sposób (app \ code \ core \ Mage \ Sales \ etc \ config.xml) w nowym stanie:

<?xml version="1.0"?>
<config>
  <!-- ... -->
  <global>
    <sales>
      <order>
        <statuses>
          <new_status>
            <label>New Status</label>
            <description>Your Description here</description>
          </new_status>
        </statuses>
        <states>
          <new>
            <label>New</label>
            <statuses>
              <new_status/>
            </statuses>
            <visible_on_front/>
          </new>
        </states>
      </order>
    </sales>
  </global>
</config>

Odśwież pamięć podręczną, gotowe.

Sebastian Lind
źródło
2
Obawiam się, że nic z tej odpowiedzi nie jest właściwe.
zyskuje
1
Nie edytuj rdzenia Magento. Zamiast tego utwórz konfigurację we własnym module. Magento połączy twoje pliki konfiguracyjne z twoim rdzeniem.
Jacques