Specyfikacja techniczna - InPost Pay Plugin

Specyfikacja techniczna - InPost Pay Plugin

Minimalne wymagania środowiskowe

  1. PHP: wersja >= 7.4 (zalecane ≥ 8.1)

Wymagane rozszerzenia PHP:

  • curl (komunikacja z API Inpost)

  • json (obsługa danych JSON)

  • mbstring (operacje na stringach UTF-8)

  • openssl (weryfikacja podpisów i bezpieczeństwo komunikacji)

  • dom, simplexml, pdo_mysql (wymagane przez WooCommerce)

  • soap (wymagane tylko w przypadku niektórych integracji WooCommerce)

  1. WordPress: wersja >= 6.0 (zalecane najnowsze stabilne wydanie)

  2. WooCommerce: wersja >= 7.0.0 (zalecane >= 9.0.0)

  3. Serwer: Apache lub Nginx z obsługą mod_rewrite i pełnym wsparciem dla HTTPS

  4. Baza danych: MySQL >= 5.7 lub MariaDB >= 10.3

  5. SSL: sklep musi działać w pełni na HTTPS, brak wsparcia dla HTTP

Integracje i kompatybilność

  • Koszyk i produkty złożone: wsparcie dla Composite Products

  • Bloki: kompatybilność z Gutenberg / WooCommerce Blocks

  • Page Buildery: kompatybilność z Elementor

  • Języki: kompatybilność z Polylang, WPML

  • Waluty: kompatybilność z Curcy, FoxCurrency, YayCurrency, WPML Currency

  • Wysyłka: pełna integracja z metodami InPost PL - Wtyczka logistyczna

Konfiguracja i środowisko sklepu

  • WP-Cron: musi być aktywny. Rekomendowane dodatkowe ustawienie crona systemowego (np. co minutę php wp-cron.php) dla stabilniejszej obsługi zadań w tle.

  • Cache/CDN: wymagane wykluczenie ścieżek API /wp-json/inpost/* z cache i CDN, aby uniknąć błędów synchronizacji koszyka.

  • Konflikty wtyczek: wtyczki, które ingerują w sesję WooCommerce (np. niestandardowe cache koszyka), mogą powodować problemy - wymagana indywidualna weryfikacja.

  • Działające REST API: ścieżka /wp-json/ musi być poprawnie dostępna z zewnątrz (bez przekierowań ani blokad).

  • LiteSpeed Cache: w przypadku sklepów działających z LiteSpeed wymagane jest dodanie wyjątków w konfiguracji wtyczki LiteSpeed Cache (wykluczenie dynamicznych żądań koszyka i checkoutu oraz cache’owania widoków i assetów).

  • Hooki i filtry w motywach: customowe motywy mogą modyfikować lub usuwać standardowe hooki WooCommerce, co wpływa na integrację - wymagana zgodność z podstawowymi hookami koszyka i checkoutu. Szczegółowa lista wymaganych hooków oraz zasady integracji motywu znajdują się w sekcji “Wymagania dotyczące motywu” poniżej.

Wymagania dotyczące motywu

Dla prawidłowego działania wtyczki InPost Pay motyw sklepu musi spełniać poniższe wymagania techniczne.

Hooki WooCommerce

Wtyczka korzysta z mechanizmu hooków WooCommerce do wyświetlania widgetu InPost Pay w odpowiednich miejscach sklepu.

Motyw musi implementować standardowe akcje WooCommerce - ich brak uniemożliwia poprawne osadzenie widgetu.

Na stronie produktu:

  • woocommerce_before_add_to_cart_form

  • woocommerce_before_variations_form

  • woocommerce_before_add_to_cart_button

  • woocommerce_before_single_variation

  • woocommerce_before_add_to_cart_quantity

  • woocommerce_after_add_to_cart_quantity

  • woocommerce_after_add_to_cart_button

  • woocommerce_after_variations_form

  • woocommerce_after_add_to_cart_form

  • woocommerce_product_meta_start

  • woocommerce_product_meta_end

  • woocommerce_after_single_product_summary

Na stronie koszyka:

  • woocommerce_before_cart

  • woocommerce_before_cart_table

  • woocommerce_before_cart_contents

  • woocommerce_cart_contents

  • woocommerce_cart_coupon

  • woocommerce_after_cart_contents

  • woocommerce_after_cart_table

  • woocommerce_cart_collaterals

  • woocommerce_before_cart_totals

  • woocommerce_cart_totals_before_shipping

  • woocommerce_before_shipping_calculator

  • woocommerce_after_shipping_calculator

  • woocommerce_cart_totals_after_shipping

  • woocommerce_cart_totals_before_order_total

  • woocommerce_cart_totals_after_order_total

  • woocommerce_proceed_to_checkout

  • woocommerce_after_cart_totals

  • woocommerce_after_cart

W przypadku posiadania wyżej wymienionych hook’ów, należy sprawdzić czy w szablonie, najczęściej w pliku functions.php nie występuje funkcja remove_all_actions(‘nazwa_hook’), która usuwa wszystkie podpięte akcje z danego hook’a

Hook wp_body_open()

W pliku header.php motywu powinno znajdować się wywołanie funkcji:
<?php wp_body_open(); ?>

(zazwyczaj tuż po otwarciu znacznika <body>.

Brak tego hooka powoduje błąd w konsoli przeglądarki: Uncaught (in promise) ReferenceError: IPPWidgetOptions is not defined i uniemożliwia załadowanie widgetu InPost Pay.

Strona podziękowania (TYP)

  1. Wtyczka InPost Pay wykorzystuje mechanizm Virtual Page do dynamicznego generowania strony podziękowania po zakończonej transakcji.

  • Adres strony: /inpost-pay/thank-you-page

  • Strona nie istnieje w bazie danych WordPressa - jest tworzona dynamicznie przez wtyczkę na podstawie zarejestrowanego slug’a i szablonu PHP.

  • Motyw musi umożliwiać renderowanie layoutu również dla strony wirtualnych (np. poprzez index.php)

 

  1. W przypadku serwerów Apache: Aby strona Thank You Page (TYP) mogła się poprawnie wyświetlać należy zadbać również o prawidłowy plik .htaccess. Wymagany jest podstawowy blok konfiguracyjny WordPressa:

# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress

 

Przed ręczną konfiguracją zaleca się najpierw odświeżenie reguł WordPressa poprzez panel administracyjny. WordPress automatycznie wygeneruje lub przywróci domyślny blok .htaccess, który zapewnia prawidłowe przekierowanie żądań (w tym strony /inpost-pay/thank-you-page) do index.php:

  • przejdź do Ustawienia,

  • kliknij w “Bezpośrednie odnośniki (permalinks)”,

  • kliknij “Zapisz Zmiany”,

  • sprawdź zawartość .htaccess

Jeśli po zapisaniu ustawień plik .htaccess się zgadza, a strona TYP nadal zwraca błąd 404, należy upewnić się, że serwer obsługuje moduł mod_rewrite dla Apache, lub odpowiedni blok rewrite dla Nginx.

Zalecenia dodatkowe

  • Regularne aktualizacje WordPress, WooCommerce i wtyczek.

  • Stosowanie aktualnych certyfikatów TLS.

  • W sklepach o dużym ruchu: rekomendowane Redis/Memcached dla cache sesji i kolejek.

  • Wtyczka obecnie nie spełnia w pełni standardów WordPress.org i WPCS - możliwe stopniowe dostosowanie kodu podczas dalszego rozwoju.