Przejdź do treści

Instalacja skryptu

Najprostszym sposobem instalacji kompatybilnym z każdym frameworkiem jest zainstalowanie skryptu PaczkoAPI bezpośrednio na stronie.

Dodanie skryptów na stronę

Aby zainstalować komponent PaczkoAPI na stronie należy dodać następujące skrypty (najlepiej na końcu sekcji body):

html
<script type="module" src="https://paczkoapi.pl/lib/index.lazy.mjs"></script>
<script nomodule src="https://paczkoapi.pl/lib/index.js"></script>

Pierwszy z nich jest modułem ESM - bardzo lekkim wrapperem na właściwy komponent z wbudowanym lazy loadingiem. Drugi zapewnia działanie dla starszych przeglądarek nieobsługujących modułów ES.

Bez lazy loadingu

Możliwe (choć niezalecane) załadowanie skryptów bez wbudowanego lazy loadingu.

html
<script type="module" src="https://paczkoapi.pl/lib/index.mjs"></script>
<script nomodule src="https://paczkoapi.pl/lib/index.js"></script>

Cały kod zostanie wtedy załadowany od razu, a nie w momencie inicjalizacji komponentu.

Inicjalizacja komponentu

Dodajemy w kodzie HTML element w miejscu, gdzie chcemy zainicjalizować selektor punktów:

html
<div id="selector"></div>

W skrypcie inicjalizujemy komponent PaczkoAPI:

javascript
// Tworzymy komponent selektora
const selector = paczkoapi.createSelector('#selector', {
    providers: ['inpost', 'dhl'],
    // Obsługa zdarzenia wybrania punktu odbioru
    onPointSelected: point => {
        console.log(point);
    },
    // ... pozostałe opcje
});

Wszystkie opcje konfiguracji komponentu opisane są na tej stronie.

Ponieważ paczkoapi jest zbudowane jako ES module, cały kod powinien być owrappowany w event listener na zdarzenie DOMContentLoaded:

javascript
window.addEventListener('DOMContentLoaded', async () => {
    /// ... tutaj cały kod
});

Ustawienie adresu użytkownika

W celu znalezienia najbliższych punktów odbioru musimy przekazać do komponentu adres użytkownika. Najczęściej odbywać się to będzie przy przejściu z kroku adresu do kroku wyboru formy dostawy.

Zakładając, że mamy formularz z adresem, możemy obsłużyć go następująco:

javascript
const form = document.querySelector('form');

form.addEventListener('submit', async e => {
    e.preventDefault();

    await selector.setAddress({
        city: form.city.value,
        postalCode: form.postalCode.value,
        street: form.address.value,
    });

    // metoda setAddress jest asynchroniczna
    // możemy poczekać tutaj na załadowanie najbliższych punktów
});

Przykład na żywo

Poniżej znajduje się link do interaktywnego przykładu użycia komponentu PaczkoAPI. Pozwala na żywo eksperymentować z jego działaniem:

Open in StackBlitz

Uwaga

W przykładzie nie działa poprawnie mapa punktów DHL. Jest to związane ze specyfiką działania środowiska StackBlitz i nie występuje w praktyce.