Files
interblue.pl/docs/dpd-pickup-checkout-fix-plan.md
2026-03-31 22:07:39 +02:00

42 lines
1.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.