const response =awaitfetch('https://alterproduct.com/public-api/v1/auth/check',{method:'GET',headers:{'x-alter-access-key':'YOUR_API_KEY','x-alter-access-token':'YOUR_API_TOKEN','Content-Type':'application/json',}});const result =await response.json();console.log(result);
Przykładowe zapytanie (axios)
importaxiosfrom'axios';const result =await axios.get('https://alterproduct.com/public-api/v1/auth/check',{headers:{'x-alter-access-key':'YOUR_API_KEY','x-alter-access-token':'YOUR_API_TOKEN','Content-Type':'application/json',}});console.log(result.data);
Lista dostępnych endpointów dla /public-api. Endpointy pozwalają uwierzytelniać zapytania, zarządzać zamówieniami klientów, uzyskiwać dostęp do produktów storefrontu, generować sesje embed i tokeny dostępu oraz pobierać publiczne lub chronione pliki dla uwierzytelnionego storefrontu.
Metoda
Endpoint
Opis
Scope
GET
/public-api/v1/auth/check
Sprawdza, czy podane dane API są poprawne dla bieżącego storefrontu (test auth/health).
(dowolny uwierzytelniony)
GET
/public-api/v1/customer-orders
Pobiera paginowaną listę zamówień dla uwierzytelnionego storefrontu.
orders:read
GET
/public-api/v1/customer-orders/:id
Pobiera szczegóły pojedynczego zamówienia.
orders:read
POST
/public-api/v1/customer-orders/batch
Pobiera listę zamówień na podstawie tablicy identyfikatorów.
orders:read
PATCH
/public-api/v1/customer-orders/:id/status
Aktualizuje status zamówienia.
orders:write
PATCH
/public-api/v1/customer-orders/:orderId/quantity
Aktualizuje ilości dla wybranych pozycji zamówienia.
GET https://alterproduct.com/public-api/v1/customer-orders
Ten endpoint zwraca paginowaną listę zamówień klientów dla uwierzytelnionego storefrontu. Zwykle używa się go do synchronizacji systemów zewnętrznych (np. backendu sklepu lub paneli) z zamówieniami tworzonymi przez customizer.
Przykładowe zapytanie
const params =newURLSearchParams({// Filters (optional)name:'T-shirt',// stringcategory_id:12,// numberorder_status:'pending',// string// Pagination (optional)offset:0,// number >= 0limit:20,// number 1-50// Sorting (optional)order_by:'created_at',// id | created_at | design_namedirection:'DESC'// ASC | DESC});const url =`https://alterproduct.com/public-api/v1/customer-orders?${params.toString()}`;const res =awaitfetch(url,{method:'GET',headers:{'x-alter-access-key':'YOUR_API_KEY','x-alter-access-token':'YOUR_API_TOKEN','Content-Type':'application/json'}});const data =await res.json();console.log(data);
GET https://alterproduct.com/public-api/v1/customer-orders/:id
Ten endpoint zwraca pełne szczegóły pojedynczego zamówienia klienta — w tym status, przypisany projekt, model 3D, link do edycji, wybrany wariant oraz łączną cenę.
Przykładowe zapytanie (fetch)
const res =awaitfetch('https://alterproduct.com/public-api/v1/customer-orders/1',{method:'GET',headers:{'x-alter-access-key':'YOUR_API_KEY','x-alter-access-token':'YOUR_API_TOKEN','Content-Type':'application/json'}});const data =await res.json();console.log(data);
Pozwala zmienić status konkretnego zamówienia klienta. Status można też zmienić ręcznie w panelu zamówień Customizera lub przez API.
Kontekst
Gdy klient kliknie „Dodaj do koszyka” w Customizerze, powstaje zamówienie w trybie edytowalnym ze statusem shopping_cart i nadal może być edytowane przez: https://alterproduct.com/app/customizer/{customizerId}/{orderId}. Po przejściu do statusów realizacji takich jak paid, processing, completed lub cancelled, edycja przez klienta zostaje zablokowana.
Dostępne wartości statusu (enum)
Status
Opis
shopping_cart
Zamówienie jest w procesie koszyka i nadal może być edytowane przez klienta
editable
Zamówienie pozostaje edytowalne przez klienta
processing
Zamówienie przeszło przez checkout
paid
Zamówienie jest opłacone i oczekuje na realizację
completed
Zamówienie zostało zrealizowane
cancelled
Zamówienie zostało anulowane
Edytowalne etapy klienta są obsługiwane przez statusy takie jak „shopping_cart” i „editable”. Statusy końcowe (np. „paid”, „processing”, „completed”, „cancelled”) blokują dalszą edycję.
Przykładowe zapytanie (fetch)
const res =awaitfetch('https://alterproduct.com/public-api/v1/customer-orders/1/status',{method:'PATCH',headers:{'x-alter-access-key':'YOUR_API_KEY','x-alter-access-token':'YOUR_API_TOKEN','Content-Type':'application/json'},body:JSON.stringify({status:'processing'})});const data =await res.json();console.log(data);
Przykładowa odpowiedź
{"success":true,"message":"Order status updated.","orderId":1,"newStatus":"processing"}
Ten endpoint pozwala zaktualizować ilość dla konkretnego wariantu (productItem) w jednym zamówieniu.
Przykładowe zapytanie
Body JSON:
{"items":[{"orderDetailId":1,"quantity":3}]}
fetch (Node.js):
const response =awaitfetch('https://alterproduct.com/public-api/v1/customer-orders/1/quantity',{method:'PATCH',headers:{'x-alter-access-key':'YOUR_API_KEY','x-alter-access-token':'YOUR_API_TOKEN','Content-Type':'application/json'},body:JSON.stringify({items:[{orderDetailId:1,quantity:3}// ID pozycji z zamówienia (productItem)]})});const result =await response.json();console.log(result);
Ten endpoint służy do trwałego usunięcia zamówienia klienta — np. gdy projekt został porzucony lub anulowany przed produkcją. Po usunięciu zamówienia nie można go już otworzyć ani edytować.
Przykładowe zapytanie (fetch, Node.js)
const response =awaitfetch('https://alterproduct.com/public-api/v1/customer-orders/1',{method:'DELETE',headers:{'x-alter-access-key':'YOUR_API_KEY','x-alter-access-token':'YOUR_API_TOKEN','Content-Type':'application/json'}});const result =await response.json();console.log(result);
POST https://alterproduct.com/public-api/v1/embed/session
Ten endpoint tworzy krótkotrwały token sesji embed (JWT), który pozwala Twojej aplikacji bezpiecznie otworzyć narzędzia Alter Product (viewer, configurator, customizer) dla konkretnego zasobu (projektu lub zamówienia) oraz zweryfikowanego origin. Token ma minimalne uprawnienia i wygasa automatycznie (TTL: 3600s).
Przykładowe zapytanie (fetch, Node.js)
const response =awaitfetch('https://alterproduct.com/public-api/v1/embed/session',{method:'POST',headers:{'x-alter-access-key':'YOUR_API_KEY','x-alter-access-token':'YOUR_API_TOKEN','Content-Type':'application/json'},body:JSON.stringify({tool:'customizer',// Tool to open: viewer | configurator | customizerorigin:'https://yourstore.com',// Domain where embed will be rendered (must be allowed in settings)designId:123// Resource identifier (provide designId OR orderId)})});const result =await response.json();console.log(result);
GET https://alterproduct.com/public-api/v1/files/public/products/:productId/:size
Ten endpoint zwraca publiczny obraz podglądu produktu. Nie wymaga uwierzytelnienia i ma włączony CORS, więc można go używać bezpośrednio w przeglądarkach lub aplikacjach frontendowych.