2.9 KiB
2.9 KiB
Modyfikacje modulu empikmarketplace
2026-03-11 - powiadomienia i AUTO_INCREMENT
Problem
Przy nieudanym imporcie zamowienia z EMPIK do PrestaShop:
- Nie bylo powiadomienia email o bledzie importu.
- Powstawaly dziury w numeracji zamowien (
id_order) poROLLBACK.
Zmodyfikowane pliki
src/Processor/OrderProcessor.php
- Dodano
use Mail;. - Dodano stala
ERROR_NOTIFICATION_EMAIL. - W
import()po bledzie dodano:ROLLBACK,resetOrderAutoIncrement(),- log bledu,
sendFailureNotification(...).
- Dodano metode
resetOrderAutoIncrement(). - Dodano metode
sendFailureNotification().
mails/pl/empik_import_error.html
- Dodany szablon HTML maila z placeholderami:
{empik_order_id}{error_date}{error_message}{stack_trace}
mails/pl/empik_import_error.txt
- Dodana tekstowa wersja szablonu maila.
2026-03-15 - dokladniejsza diagnoza blednych zamowien
Cel
W mailu z bledem importu bylo widac tylko ogolny komunikat:
Invalid order data for order: ....
Brakowalo informacji, ktore pole w danych zamowienia bylo niepoprawne.
Zmodyfikowane pliki
src/OrderFulfiller/OrderFulfiller.php
- Rozszerzono walidacje w
validate($data). - Zamiast jednego ogolnego bledu zbierana jest lista konkretnych problemow, np.:
- oba adresy puste:
customer.shipping_addressicustomer.billing_address, - puste
order_id, - puste
order_lines, - puste
order_state, - puste
total_price.
- oba adresy puste:
- Rzucany wyjatek zawiera teraz liste tych bledow (
Validation errors: ...).
src/Processor/OrderProcessor.php
- W
import()dosendFailureNotification(...)przekazywany jest payload zamowienia ($data). sendFailureNotification(...)przyjmuje teraz trzeci argument:array $orderData = [].- Dodano metode
buildOrderContext(array $orderData)budujaca skrot payloadu do maila:order_idorder_statetotal_priceshipping_priceorder_lines_counthas_shipping_addresshas_billing_address
- Do placeholderow maila dodano:
{order_context}{order_context_html}
mails/pl/empik_import_error.html
- Dodano sekcje
Szczegoly zamowieniaz placeholderem{order_context_html}.
mails/pl/empik_import_error.txt
- Dodano sekcje
Szczegoly zamowieniaz placeholderem{order_context}.
Efekt
Kolejny mail z nieudanym importem pokazuje:
- konkretny powod walidacji,
- skrot kluczowych pol payloadu zamowienia,
- stack trace.
To powinno wystarczyc do szybkiej diagnozy, co bylo nie tak w danych zamowienia z EMPIK.
Po aktualizacji modulu
Jesli modul empikmarketplace zostanie zaktualizowany i nadpisze zmiany, trzeba ponownie naniesc modyfikacje:
OrderProcessor.php(import, auto-increment, powiadomienia,buildOrderContext).OrderFulfiller.php(rozszerzona walidacja i szczegolowe komunikaty).- Szablony maili
mails/pl/empik_import_error.htmlimails/pl/empik_import_error.txt.