42 lines
1.8 KiB
Markdown
42 lines
1.8 KiB
Markdown
# Plan naprawy DPD Pickup (checkout)
|
||
|
||
## Cel
|
||
Zablokować możliwość złożenia zamówienia bez wybranego punktu dla metody **DPD Pickup – automaty paczkowe** na checkout `https://www.interblue.pl/zam%C3%B3wienie`.
|
||
|
||
## 1. Potwierdzenie scenariusza i trybu checkout
|
||
- Sprawdzić aktywny tryb `CUSTOM_CART` w module `dpdpoland` (najpewniej `opc_prestateam_1_7` z `onepagecheckoutps`).
|
||
- Odtworzyć błąd: wybór DPD Pickup bez wyboru punktu i próba kliknięcia `#btn_place_order`.
|
||
|
||
## 2. Naprawa walidacji JS po stronie DPD
|
||
Pliki:
|
||
- `modules/dpdpoland/js/pudo-opc-prestateam-1.7.js`
|
||
- `modules/dpdpoland/js/pudo-opc-prestateam-8.js`
|
||
|
||
Zakres:
|
||
- Zamienić wywołanie nieistniejącej funkcji `handleDpdShippingPudo()` na istniejącą `handleDpdPudo()`.
|
||
- Dodać ponowną inicjalizację po przeładowaniu sekcji przewoźników (`opc-load-carrier:completed`, `opc-update-carrier:completed`).
|
||
|
||
## 3. Dodatkowa walidacja przy kliknięciu "Złóż zamówienie" (OPC)
|
||
Plik:
|
||
- `modules/onepagecheckoutps/views/js/front/onepagecheckoutps.js`
|
||
|
||
Zakres:
|
||
- W `Review.placeOrder` dodać warunek: jeśli wybrany carrier to DPD Pickup/SwipBox i punkt nie jest ustawiony, przerwać submit i pokazać komunikat.
|
||
- Zabezpieczyć przypadki, gdzie sama blokada przycisku mogłaby zostać ominięta.
|
||
|
||
## 4. Walidacja backendowa (twarda blokada)
|
||
Plik:
|
||
- `modules/onepagecheckoutps/onepagecheckoutps.php`
|
||
|
||
Zakres:
|
||
- Przed finalnym utworzeniem zamówienia sprawdzić:
|
||
- czy wybrany przewoźnik to DPD Pickup/SwipBox,
|
||
- czy istnieje wpis `pudo_code` dla bieżącego koszyka w `ps_dpdpoland_pudo_cart`.
|
||
- Przy braku punktu: zwrócić błąd i zatrzymać proces zamówienia.
|
||
|
||
## 5. Testy regresji
|
||
- DPD Pickup bez punktu -> zamówienie zablokowane.
|
||
- DPD Pickup z punktem -> zamówienie przechodzi.
|
||
- Inni przewoźnicy -> bez regresji.
|
||
- Zmiana przewoźnika (tam/powrót) -> poprawny stan walidacji i przycisku.
|