86 lines
2.9 KiB
Markdown
86 lines
2.9 KiB
Markdown
# 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`.
|