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

1.8 KiB
Raw Blame History

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.