
LIVE PULL API
Integrację z DoorVision przez API można zrealizować na kilka sposobów, ale zalecanym przez nas rozwiązaniem jest Live Pull API.
Pobieranie modeli drzwi z platformy sklepowej
Aby wizualizować drzwi z Państwa platformy sklepowej, DoorVision potrzebuje dostępu do wszystkich istotnych informacji o drzwiach, w tym do dostępnych opcji filtrowania i sortowania. Dane te muszą być dostępne przez API.
Platforma sklepowa powinna udostępniać poniższe endpointy API, dzięki którym DoorVision będzie dynamicznie pobierać potrzebne dane. Implementacja techniczna może się różnić, ponieważ przygotujemy indywidualny adapter wykonujący niezbędne wywołania API. Takie podejście zapewnia elastyczność co do struktury danych, o ile dostarczone zostaną wszystkie wymagane informacje.
Poniższy projekt API to najprostsza możliwa implementacja, złożona z następujących kluczowych endpointów:
-
Pobranie drzwi według zewnętrznego ID
-
Pobranie stronicowanej listy drzwi (na podstawie tablicy zewnętrznych ID)
-
Pobranie opcji filtrowania i sortowania
-
Pobranie stronicowanej listy drzwi (na podstawie filtrów i opcji sortowania wybranych przez użytkownika)
1.) Pobranie drzwi według zewnętrznego ID
Ten endpoint przyjmuje na wejściu zewnętrzne ID i zwraca następujące pola w odpowiedzi JSON:
Title | Type | Required | Description |
|---|---|---|---|
External Id | string | number | Yes | Unikalny identyfikator modelu drzwi na Państwa platformie sklepowej (np. numer lub kod produktu) |
Name | string | Yes | Nazwa modelu drzwi. |
Price | number | No | Cena modelu drzwi (w pensach). |
DoorType | “single” | “double” | Yes | Określa, czy model drzwi jest jednoskrzydłowy, czy dwuskrzydłowy. |
Enabled | boolean | No | Określa, czy model drzwi ma być wyświetlany w DoorVision. |
Shop Link* | string | Yes | Link do modelu drzwi na Państwa platformie sklepowej. |
Image url | string | Yes | Zdjęcie frontalne modelu drzwi bez pustej przestrzeni wokół. Dłuższy bok powinien mieć około 1 000 px. |
Thumbnail url | string | No | Tak samo jak zdjęcie frontalne, ale dłuższy bok powinien mieć około 350 px. |
* Link do sklepu można zdefiniować indywidualnie dla każdego modelu drzwi albo określić ogólną strukturę URL, z której link będzie tworzony na podstawie zewnętrznego ID. Przykładowo struktura URL „https://www.brandname.com/collections/internal-doors/products/<externalId>” prowadzi do modelu drzwi o danym zewnętrznym ID.
Przykład:
URL: https://www.brandname.com/api/door/<externalId>
Wynik:
2.) Pobranie stronicowanej listy drzwi (wejście: tablica zewnętrznych ID)
Aby wyświetlać użytkownikom DoorVision listę drzwi oznaczonych przez nich jako ulubione, platforma sklepowa musi udostępniać endpoint zwracający stronicowaną listę drzwi dla tablicy zewnętrznych ID. Przechowywaniem zewnętrznych ID oznaczonych jako ulubione zajmuje się DoorVision.
Przykład:
URL: https://www.brandname.com/api/doors/
Parametry zapytania:
-
externalIds: Array<string>
-
page: number
-
pageSize: number
Wynik:
3.) Pobranie opcji filtrowania i sortowania
Ten endpoint zwraca wszystkie dostępne opcje filtrowania i sortowania.
Najwyższy poziom filtra stanowi lista kategorii, np. „Marka”, „Styl drzwi”, „Przeszklenie”, „Wykończenie”.
Kategoria ma następujące właściwości:
-
id: string
-
name: string
-
description: string (opcjonalnie)
-
enabled: boolean
-
options: lista obiektów
-
id: string
-
name: string (opcjonalnie)
-
count: string (opcjonalnie)
-
Liczba drzwi objętych tą opcją kategorii filtra
Opcje sortowania mają postać listy obiektów:
-
id: string
-
name: string
Przykład:
URL: https://www.brandname.com/api/filterOptions/
Parametry:
-
doorType: single | double (opcjonalnie)
-
selectedSortingOptionId: string (opcjonalnie)
-
selectedCategoryOptions (opcjonalnie)
-
Tablica obiektów:
-
categoryId: string
-
selectedOptionIds: Array<string>
-
-
Wynik:
4.) Pobranie stronicowanej listy drzwi
To główne zapytanie, które zwraca stronicowaną listę drzwi dla wybranych filtrów, posortowaną według przekazanej opcji sortowania.
Przykład:
URL: https://www.brandname.com/api/doors/
Parametry:
-
doorType: single | double (opcjonalnie)
-
selectedSortingOptionId: string (opcjonalnie)
-
selectedCategoryOptions:
-
Tablica obiektów:
-
categoryId: string
-
selectedOptionIds: Array<string>
-
-
-
page: number
-
pageSize: number
Wynik: