Wszystko, co warto wiedzieć, zanim zainstalujesz.
Szczegółowe spojrzenie na to, jak działa Międzynarodowy numer kierunkowy PrestaShop: flagi i normalizacja E.164, dlaczego zbudowaliśmy go w ten sposób i jaka myśl stoi za powyższymi funkcjami.
Problem: numery telefonów nieczytelne, niemożliwe do porównania i do użycia
W sklepie wielokrajowym numery telefonów trafiają do bazy we wszystkich możliwych formatach: 601 234 567, 601234567, plus 48 601 234 567, 0048 601 234 567, 48-601-234-567. Skutek: nie da się wykryć duplikatów klientów, eksporty do CRM albo ERP trzeba czyścić ręcznie, usługi SMS transakcyjnych odrzucają co trzeci numer, a zespoły handlowe tracą czas na przeformatowanie przed każdym połączeniem międzynarodowym.
Rozwiązanie: jeden format, czytelny UX, gwarancja po stronie serwera
Moduł dodaje wybór numeru kierunkowego z flagą bezpośrednio na polach telefon i telefon komórkowy, wszędzie tam, gdzie się pojawiają: w formularzu rejestracji, w zarządzaniu adresami, w checkoucie pięcioetapowym albo jednostronicowym. Klient od razu widzi, jaki numer kierunkowy jest zastosowany, może go zmienić dwoma kliknięciami, a lista filtruje się natychmiastowym wyszukiwaniem. Po stronie bazy, niezależnie od tego, co wpisze klient, zawsze otrzymujesz czysty, znormalizowany format gotowy do użycia.
Automatyczna synchronizacja z krajem dostawy
Gdy klient wybiera swój kraj w formularzu adresowym, numer kierunkowy w selektorze telefonu zmienia się automatycznie. Wybór Czech przełącza na plus 420, wybór Niemiec na plus 49, bez ręcznej interwencji. Ta synchronizacja działa także przy przeładowaniach AJAX natywnego checkoutu PrestaShop (zdarzenie updatedAddressForm). Przy mocno personalizowanych motywach zabezpieczeniem jest MutationObserver z debounce.
Gwarantowana normalizacja E.164 po stronie serwera
Normalizacja po stronie przeglądarki zabezpiecza UX, ale nie wystarcza. Jeśli zamówienie powstaje przez REST API PrestaShop, przez back office, przez import CSV albo przez inny moduł operujący na klasie Address, formularz JS nigdy się nie wykonuje. Dlatego moduł podłącza też hooki actionObjectAddressAddBefore i actionObjectAddressUpdateBefore: przed każdym INSERT albo UPDATE na tabeli ps_address pola phone i phone_mobile przechodzą przez normalizację po stronie serwera. Żadna droga obejścia nie jest możliwa.
Stosowane reguły normalizacji
Dla adresu przypisanego do kraju o numerze kierunkowym plus 48: numer zaczynający się od plus jest zachowywany bez zmian (usuwane są tylko spacje i separatory). W numerze zaczynającym się od 00 sekwencja 00 jest zastępowana znakiem plus. W numerze zaczynającym się od 0 (krajowy prefiks trunk) zero jest usuwane i zastępowane znakiem plus wraz z numerem kierunkowym kraju. Numer zaczynający się już od numeru kierunkowego bez plusa otrzymuje po prostu dodany plus. Numer krajowy bez żadnego prefiksu, jak polskie 601234567, otrzymuje numer kierunkowy kraju. Te reguły są zgodne z międzynarodową normą E.164 używaną przez wszystkich operatorów telekomunikacyjnych i profesjonalne usługi SMS.
Kraje preferowane i UX selektora
Domyślnie na górze listy przypięte są Francja, Belgia, Luksemburg, Szwajcaria, Wielka Brytania, Stany Zjednoczone, Niemcy, Hiszpania, Włochy i Holandia. Ta lista jest w pełni konfigurowalna z back office (kody ISO rozdzielone przecinkami), więc dla polskiego sklepu wystarczy wpisać PL, DE, CZ, SK, UA i pozostałe rynki, na których działasz. Reszta krajów pojawia się poniżej, w kolejności alfabetycznej. Pasek wyszukiwania pozwala natychmiast znaleźć kraj po nazwie, kodzie ISO albo numerze kierunkowym. Cała lista jest budowana z krajów aktywnych w Twoim sklepie, odczytywanych bezpośrednio z natywnej kolumny ps_country.call_prefix.
Zero zależności, natywne flagi Unicode
Moduł nie zawiera żadnej zewnętrznej biblioteki. Żadnego intl-tel-input do utrzymywania, żadnej wtyczki jQuery, żadnego ciężkiego frameworka CSS. Flagi to emoji Unicode (Regional Indicator Symbols) wspierane natywnie przez wszystkie nowoczesne przeglądarki i systemy. Arkusz stylów waży mniej niż 4 kB, a skrypt mniej niż 16 kB. Żadnego dodatkowego wywołania sieciowego, żadnego zewnętrznego CDN, żadnego wycieku danych do podmiotów trzecich.
Na razie nie ma opinii o produkcie.