1.8 KiB
1.8 KiB
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_CARTw moduledpdpoland(najpewniejopc_prestateam_1_7zonepagecheckoutps). - 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.jsmodules/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.placeOrderdodać 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_codedla bieżącego koszyka wps_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.