Customix Integrations API pozwala pobierać personalizowane zamówienia do własnych systemów: pliki do druku wygenerowane przez Customix i wszystko, co klienci wprowadzili podczas personalizacji, np. imiona, własne teksty, kolory i wybrane układy. Użyj go, gdy narzędzie produkcyjne, arkusz kalkulacyjny lub platforma automatyzacji, taka jak Make, potrzebuje szczegółów zamówień bez ręcznego kopiowania.
Aby uzyskać klucz API, przejdź do Ustawienia na lewym pasku bocznym, otwórz kartę Integracje, a następnie kliknij Utwórz klucz na karcie Klucz API. Szczegóły znajdziesz w artykule How can get Customix API key.
🔑 Uwierzytelnianie
Wszystkie żądania wymagają klucza API w nagłówku:
Authorization: Bearer <your_api_key>🌐 Bazowy URL
https://app.customix.io/api/integrations/v1📘 Punkty końcowe
1. Pobierz listę zamówień
Punkt końcowy:
GET /ordersOpis: pobiera Twoje personalizowane zamówienia, domyślnie od najnowszych.
Parametry:
| Parametr | Typ | Wymagany | Opis |
|---|---|---|---|
shop | string | ✅ | Nazwa sklepu Shopify. Jeśli adres URL Twojego sklepu to abcdef.myshopify.com, to shop=abcdef |
limit | integer | ⬜ | Domyślnie 50, wartość maksymalna to 250 |
created_at_min | date | ⬜ | Pokaż zamówienia utworzone w tej dacie lub później (format: 2025-01-21) |
created_at_max | date | ⬜ | Pokaż zamówienia utworzone w tej dacie lub wcześniej (format: 2025-01-30) |
order_status | string | ⬜ | created: pokaż tylko otwarte zamówienia. paid: pokaż tylko opłacone zamówienia. fulfilled: pokaż tylko zrealizowane zamówienia. |
order_by | string | ⬜ | Domyślnie 'ordered_at desc'. Może to być także 'ordered_at asc', 'id asc' lub 'id desc' |
Nagłówki:
| Nagłówek | Wartość |
|---|---|
Authorization | Bearer API_KEY |
Przykładowe żądanie:
GET https://app.customix.io/api/integrations/v1/orders?shop=abcdef&limit=2Odpowiedź:
{
"data": [
{
"shop": "abcdef.myshopify.com",
"order_id": 123456789,
"order_number": "#1001",
"currency": "USD",
"customer": "John Doe",
"email": "[email protected]",
"ip": "123.123.123.123",
"total_price": 123.45,
"financial_status": "paid",
"fulfillment_status": "fulfilled",
"ordered_at": "2025-01-21 01:01:01",
"customizations": [
{
"id": "01jjavmg7t7vqj5z6qvxwie14b",
"public_customization_id": "01jjavmg7t7vqj5z6qvxwpc9kd",
"campaign_id": "01jphjdfmtxhaio94h0wd0kv0c",
"shopify_line_item_id": 11106133639222,
"shopify_product_id": 11179841648222,
"shopify_variant_id": 11191300929074,
"platform": "shopify",
"line_item_quantity": 1,
"files": [
{
"id": "01jb3092vabc7m8qw4cdqv09we",
"name": "default",
"path": "https://d6opbaohxg209.cloudfront.net/temp/extracted_67d7d664c7awe/Accessory/Laptop.png"
}
],
"values": [
{ "key": "100001", "label": "Name", "type": "text-field", "value": "Emma" },
{ "key": "layout_100003", "label": "Layout", "type": "layout-swatch", "value": "Portrait" },
{ "key": "100004", "label": "Color", "type": "color-picker", "value": "#1a2b3c" }
]
}
]
}
]
}Odpowiedzi z błędem:
| Kod | Komunikat | Opis |
|---|---|---|
| 401 | Unauthorized | Nieprawidłowy lub brakujący token |
| 403 | Forbidden | Nie masz uprawnień do wyświetlania zamówień tego sklepu |
2. Pobierz konkretne zamówienie
Punkt końcowy:
GET /orders/{id}Opis: pobiera jedno zamówienie wraz z plikami do druku i wartościami personalizacji.
Parametry:
| Parametr | Typ | Wymagany | Opis |
|---|---|---|---|
shop | string | ✅ | Nazwa sklepu Shopify. Jeśli adres URL Twojego sklepu to abcdef.myshopify.com, to shop=abcdef |
id | integer | ✅ | ID zamówienia Shopify, w ścieżce |
Nagłówki:
| Nagłówek | Wartość |
|---|---|
Authorization | Bearer API_KEY |
Content-Type | application/json |
Przykładowe żądanie:
GET https://app.customix.io/api/integrations/v1/orders/123456789?shop=abcdefOdpowiedź: pojedyncze zamówienie w data, z tymi samymi polami co jeden wpis z powyższej listy:
{
"data": {
"shop": "abcdef.myshopify.com",
"order_id": 123456789,
"order_number": "#1001",
"customizations": [
{
"id": "01jjavmg7t7vqj5z6qvxwie14b",
"public_customization_id": "01jjavmg7t7vqj5z6qvxwpc9kd",
"line_item_quantity": 1,
"files": [
{ "id": "01jb3092vabc7m8qw4cdqv09we", "name": "default", "path": "https://d6opbaohxg209.cloudfront.net/temp/extracted_67d7d664c7awe/Accessory/Laptop.png" }
],
"values": [
{ "key": "100001", "label": "Name", "type": "text-field", "value": "Emma" }
]
}
]
}
}(Tutaj skrócone. Prawdziwa odpowiedź zawiera wszystkie pola pokazane w przykładzie listy.)
Odpowiedzi z błędem:
| Kod | Komunikat | Opis |
|---|---|---|
| 401 | Unauthorized | Nieprawidłowy lub brakujący token |
| 403 | Forbidden | Nie masz uprawnień do wyświetlania tego zamówienia |
| 404 | Not Found | Nie znaleziono zamówienia |
3. Pobierz personalizację konkretnego zamówienia
Punkt końcowy:
GET /orders/{order_id}/customizations/{public_customization_id}Opis: pobiera jedną personalizację zamówienia.
Parametry:
| Parametr | Typ | Wymagany | Opis |
|---|---|---|---|
shop | string | ✅ | Nazwa sklepu Shopify. Jeśli adres URL Twojego sklepu to abcdef.myshopify.com, to shop=abcdef |
order_id | integer | ✅ | ID zamówienia Shopify, w ścieżce |
public_customization_id | string | ✅ | public_customization_id personalizacji, w ścieżce. Znajdziesz go w odpowiedzi z zamówieniem oraz w zamówieniu w Shopify jako właściwość pozycji _cm-customization-id |
Nagłówki:
| Nagłówek | Wartość |
|---|---|
Authorization | Bearer API_KEY |
Content-Type | application/json |
Przykładowe żądanie:
GET https://app.customix.io/api/integrations/v1/orders/123456789/customizations/01jjavmg7t7vqj5z6qvxwpc9kd?shop=abcdefOdpowiedź: sama personalizacja, nieopakowana w data:
{
"id": "01jjavmg7t7vqj5z6qvxwie14b",
"public_customization_id": "01jjavmg7t7vqj5z6qvxwpc9kd",
"campaign_id": "01jphjdfmtxhaio94h0wd0kv0c",
"shopify_line_item_id": 11106133639222,
"shopify_product_id": 11179841648222,
"shopify_variant_id": 11191300929074,
"platform": "shopify",
"line_item_quantity": 1,
"files": [
{
"id": "01jb3092vabc7m8qw4cdqv09we",
"name": "default",
"path": "https://d6opbaohxg209.cloudfront.net/temp/extracted_67d7d664c7awe/Accessory/Laptop.png"
}
],
"values": [
{ "key": "100001", "label": "Name", "type": "text-field", "value": "Emma" },
{ "key": "layout_100003", "label": "Layout", "type": "layout-swatch", "value": "Portrait" }
]
}Odpowiedzi z błędem:
| Kod | Komunikat | Opis |
|---|---|---|
| 401 | Unauthorized | Nieprawidłowy lub brakujący token |
| 403 | Forbidden | Nie masz uprawnień do wyświetlania tej personalizacji |
| 404 | Not Found | Nie znaleziono zamówienia lub nie znaleziono personalizacji |
🖊️ Wartości personalizacji
Każda personalizacja zawiera values: po jednym wpisie dla każdego pola personalizacji zapisanego w zamówieniu, czyli te same szczegóły, które widzisz jako właściwości pozycji zamówienia w Shopify. Każdy wpis zawiera:
- key: identyfikator pola w Twoim szablonie. Pozostaje taki sam w każdym zamówieniu dla tego samego pola tego samego szablonu, więc używaj go do mapowania pól w integracji.
- label: nazwa opcji widoczna dla klientów, na przykład „Name”. W starszych zamówieniach może być pusta.
- type: rodzaj opcji, na przykład
text-field,color-picker,font-swatch,image-swatch,layout-swatch,date-pickerlubfile-upload. - value: to, co klient wybrał lub wpisał, zawsze jako tekst.
Jak value wygląda dla poszczególnych rodzajów opcji:
- Tekst: dokładnie to, co wpisał klient.
- Selektor koloru: kod koloru wybrany przez klienta.
- Próbki czcionek, obrazów, kolorów i obrysu: wartość próbki wybranej przez klienta.
- Próbki układu: nazwa układu wybranego przez klienta, taka jak w chwili składania zamówienia.
- Selektory daty i godziny: data lub godzina wybrana przez klienta.
- Przesłane pliki i wektory: link do pliku przesłanego przez klienta.
- Palety i czcionki chmury słów: kolory lub czcionki wybrane przez klienta, oddzielone przecinkami.
- Opcje, które nie mają postaci tekstowej, takie jak style map, lokalizacje czy utwory ze Spotify, zwracają pustą wartość. Dla nich użyj plików do druku.
⚠️ Typowe kody błędów
| Kod | Opis |
|---|---|
| 400 | Bad Request |
| 401 | Unauthorized: nieprawidłowy lub brakujący klucz API |
| 403 | Forbidden: brak uprawnień do tego sklepu lub dostęp do API nie jest dostępny w Twoim obecnym planie |
| 404 | Not Found |
| 422 | Brak nazwy sklepu: parametr shop jest wymagany |
| 500 | Internal Server Error |
📌 Uwagi
- Wszystkie odpowiedzi są w formacie JSON.
- Limit żądań:
2 requests/second. - W razie pytań napisz na adres [email protected].
Zaktualizowano: 14/09/2026