Na ile rozumiem, przyjęcie płatności przez payu powinno skutkować zmianą statusy zlecenia na 'completed'. Nie zmienia. Z tego co widzę w kodzie, commerce_payu działa tak samo jak inne metody płatności:
zapisuje transakcje ze statusem "COMMERCE_PAYMENT_STATUS_SUCCESS".

Nie rozumiem czy:

  • Wszystko działa ok
  • commerce_payu ma robić coś jeszcze żeby zmieniać status zlecenia
  • commerce_payu robi wszystko ok, a błąd jest gdzieś indziej

Jeśli ktoś rozumie, proszę o wyjaśnienie.

Comments

arturro’s picture

Assigned: marcin.wosinek » arturro

Szukam info i dopytuję Rayana, znam to od dawna i też mnie to drażni. Przypisuję do siebie.

arturro’s picture

Status: Active » Needs review

Nie dostałem odpowiedzi. Na tyle co doczytałem i sprawdziłem na innych modułach.

Płatności poprawnie zgłaszają wpłatę, bilansuje się to. Co dalej zrobisz to już Twoja sprawa.

Są 3 statusy:
- pending
- processing
- completed

Pending masz po zamknięciu ale bez wpłaty.
Processing jak dojdzie offline z informacją od np.: PayU, że wpłata nastąpiła. Wtedy "pakujesz produkt" i wysyłasz i ręcznie zmieniasz na:
Completed, czyli od strony sprzedawcy zakończona transakcja.

Tak wg. mnie powinno to wyglądać.

Tylko commerce nie zmienia z automatu Pending na Processing. Najprościej i globalnie wg. mnie na tą chwilę można to obejść przez regułę taką jak poniżej i tutaj: http://www.drupalcommerce.org/node/2737#comment-3770

Do testów jest rules i cała koncepcja, jak ktoś znajdzie lepszą proszę o info.

{ "rules_change_order_status_pending_to_processing" : {
    "LABEL" : "change order status pending to processing",
    "PLUGIN" : "reaction rule",
    "REQUIRES" : [ "commerce_order", "commerce_payment" ],
    "ON" : [ "commerce_payment_order_paid_in_full" ],
    "DO" : [
      { "commerce_order_update_state" : { "commerce_order" : [ "commerce_order" ], "order_state" : "pending" } },
      { "commerce_order_update_status" : { "commerce_order" : [ "commerce_order" ], "order_status" : "processing" } }
    ]
  }
}
arturro’s picture

Status: Needs review » Closed (fixed)

brak odzewu, wg mnie to działa więc zamykam.

marcin.wosinek’s picture

Ad #2
Zgadza się: commerce specjalnie nie zmienia stanu zamówienia po zapłaceniu, zostawia to logice sklepu (rules lub custom code); źródło:
http://www.drupalcommerce.org/questions/3164/why-my-order-status-still-p...

Z wymienionych przez Ryana dwóch eventach, w przypadku PayU zdaje się mieć tylko sens "commerce_payment_order_paid_in_full" ; "commerce_checkout_complete" będzie miało sens tam gdzie płatność jest po wysłaniu towaru (np. za pobraniem).