Files
interblue.pl/docs/empik.md
2026-03-15 20:22:14 +01:00

2.9 KiB

Modyfikacje modulu empikmarketplace

2026-03-11 - powiadomienia i AUTO_INCREMENT

Problem

Przy nieudanym imporcie zamowienia z EMPIK do PrestaShop:

  1. Nie bylo powiadomienia email o bledzie importu.
  2. Powstawaly dziury w numeracji zamowien (id_order) po ROLLBACK.

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_address i customer.billing_address,
    • puste order_id,
    • puste order_lines,
    • puste order_state,
    • puste total_price.
  • Rzucany wyjatek zawiera teraz liste tych bledow (Validation errors: ...).

src/Processor/OrderProcessor.php

  • W import() do sendFailureNotification(...) przekazywany jest payload zamowienia ($data).
  • sendFailureNotification(...) przyjmuje teraz trzeci argument: array $orderData = [].
  • Dodano metode buildOrderContext(array $orderData) budujaca skrot payloadu do maila:
    • order_id
    • order_state
    • total_price
    • shipping_price
    • order_lines_count
    • has_shipping_address
    • has_billing_address
  • Do placeholderow maila dodano:
    • {order_context}
    • {order_context_html}

mails/pl/empik_import_error.html

  • Dodano sekcje Szczegoly zamowienia z placeholderem {order_context_html}.

mails/pl/empik_import_error.txt

  • Dodano sekcje Szczegoly zamowienia z placeholderem {order_context}.

Efekt

Kolejny mail z nieudanym importem pokazuje:

  1. konkretny powod walidacji,
  2. skrot kluczowych pol payloadu zamowienia,
  3. 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:

  1. OrderProcessor.php (import, auto-increment, powiadomienia, buildOrderContext).
  2. OrderFulfiller.php (rozszerzona walidacja i szczegolowe komunikaty).
  3. Szablony maili mails/pl/empik_import_error.html i mails/pl/empik_import_error.txt.