API-ul de integrare Customix îți permite să preiei comenzile personalizate în propriile sisteme: fișierele de imprimare generate de Customix și tot ce au introdus clienții în timpul personalizării, cum ar fi nume, texte personalizate, culori și aspecte alese. Folosește-l când un instrument de producție, o foaie de calcul sau o platformă de automatizare precum Make are nevoie de detaliile comenzilor tale, fără ca cineva să le copieze manual.
Pentru a obține o cheie API, mergi la Setări în bara laterală din stânga, deschide fila Integrări, apoi fă clic pe Creați cheia în cardul Cheie API. Consultă Cum obții cheia API Customix pentru detalii.
🔑 Autentificare
Toate cererile necesită cheia ta API în antet:
Authorization: Bearer <your_api_key>🌐 URL de bază
https://app.customix.io/api/integrations/v1📘 Endpointuri
1. Obținerea listei de comenzi
Endpoint:
GET /ordersDescriere: preia comenzile tale personalizate, implicit cele mai noi primele.
Parametri:
| Parametru | Tip | Obligatoriu | Descriere |
|---|---|---|---|
shop | string | ✅ | Numele magazinului Shopify. Dacă URL-ul magazinului tău este abcdef.myshopify.com, atunci shop=abcdef |
limit | integer | ⬜ | Valoarea implicită este 50, valoarea maximă este 250 |
created_at_min | date | ⬜ | Afișează comenzile create la această dată sau după ea (format: 2025-01-21) |
created_at_max | date | ⬜ | Afișează comenzile create la această dată sau înainte de ea (format: 2025-01-30) |
order_status | string | ⬜ | created: afișează doar comenzile deschise. paid: afișează doar comenzile plătite. fulfilled: afișează doar comenzile onorate. |
order_by | string | ⬜ | Valoarea implicită este 'ordered_at desc'. Poate fi și 'ordered_at asc', 'id asc' sau 'id desc' |
Anteturi:
| Antet | Valoare |
|---|---|
Authorization | Bearer API_KEY |
Exemplu de cerere:
GET https://app.customix.io/api/integrations/v1/orders?shop=abcdef&limit=2Răspuns:
{
"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" }
]
}
]
}
]
}Răspunsuri de eroare:
| Cod | Mesaj | Descriere |
|---|---|---|
| 401 | Unauthorized | Token invalid sau lipsă |
| 403 | Forbidden | Nu ai permisiunea de a vedea comenzile acestui magazin |
2. Obținerea unei comenzi specifice
Endpoint:
GET /orders/{id}Descriere: preia o comandă, cu fișierele de imprimare și valorile de personalizare.
Parametri:
| Parametru | Tip | Obligatoriu | Descriere |
|---|---|---|---|
shop | string | ✅ | Numele magazinului Shopify. Dacă URL-ul magazinului tău este abcdef.myshopify.com, atunci shop=abcdef |
id | integer | ✅ | ID-ul comenzii Shopify, în cale |
Anteturi:
| Antet | Valoare |
|---|---|
Authorization | Bearer API_KEY |
Content-Type | application/json |
Exemplu de cerere:
GET https://app.customix.io/api/integrations/v1/orders/123456789?shop=abcdefRăspuns: o singură comandă în data, cu aceleași câmpuri ca o intrare din lista de mai sus:
{
"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" }
]
}
]
}
}(Prescurtat aici — răspunsul real include toate câmpurile afișate în exemplul din listă.)
Răspunsuri de eroare:
| Cod | Mesaj | Descriere |
|---|---|---|
| 401 | Unauthorized | Token invalid sau lipsă |
| 403 | Forbidden | Nu ai permisiunea de a vedea această comandă |
| 404 | Not Found | Comanda nu a fost găsită |
3. Obținerea personalizării unei comenzi specifice
Endpoint:
GET /orders/{order_id}/customizations/{public_customization_id}Descriere: preia o personalizare a unei comenzi.
Parametri:
| Parametru | Tip | Obligatoriu | Descriere |
|---|---|---|---|
shop | string | ✅ | Numele magazinului Shopify. Dacă URL-ul magazinului tău este abcdef.myshopify.com, atunci shop=abcdef |
order_id | integer | ✅ | ID-ul comenzii Shopify, în cale |
public_customization_id | string | ✅ | public_customization_id al personalizării, în cale. Se găsește în răspunsul comenzii și în comanda din Shopify, ca proprietate de articol _cm-customization-id |
Anteturi:
| Antet | Valoare |
|---|---|
Authorization | Bearer API_KEY |
Content-Type | application/json |
Exemplu de cerere:
GET https://app.customix.io/api/integrations/v1/orders/123456789/customizations/01jjavmg7t7vqj5z6qvxwpc9kd?shop=abcdefRăspuns: personalizarea singură, fără a fi încadrată în 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" }
]
}Răspunsuri de eroare:
| Cod | Mesaj | Descriere |
|---|---|---|
| 401 | Unauthorized | Token invalid sau lipsă |
| 403 | Forbidden | Nu ai permisiunea de a vedea această personalizare |
| 404 | Not Found | Comanda sau personalizarea nu a fost găsită |
🖊️ Valorile personalizării
Fiecare personalizare include values — câte o intrare pentru fiecare câmp de personalizare salvat cu comanda, aceleași detalii pe care le vezi ca proprietăți ale articolului în comanda din Shopify. Fiecare intrare are:
- key: identificatorul câmpului în șablonul tău. Rămâne același de la o comandă la alta pentru același câmp al aceluiași șablon, așa că folosește-l pentru a asocia câmpurile în integrarea ta.
- label: numele opțiunii văzut de clienți, de exemplu „Name”. Poate fi gol în comenzile mai vechi.
- type: tipul opțiunii, de exemplu
text-field,color-picker,font-swatch,image-swatch,layout-swatch,date-pickersaufile-upload. - value: ce a ales sau a introdus clientul, întotdeauna sub formă de text.
Cum arată value pentru fiecare tip de opțiune:
- Text: exact ce a scris clientul.
- Selector de culoare: codul culorii alese de client.
- Mostre de font, imagine, culoare și contur: valoarea mostrei alese de client.
- Mostre de aspect: numele aspectului ales de client, așa cum se numea în momentul plasării comenzii.
- Selectoare de dată și oră: data sau ora alese de client.
- Încărcări de fișiere și vectori: un link către fișierul încărcat de client.
- Palete și fonturi pentru nor de cuvinte: culorile sau fonturile alese de client, separate prin virgule.
- Opțiunile care nu au o formă text, precum stilurile de hartă, locațiile sau piesele Spotify, vin cu valoare goală; pentru acestea, folosește fișierele de imprimare.
⚠️ Coduri de eroare frecvente
| Cod | Descriere |
|---|---|
| 400 | Bad Request |
| 401 | Unauthorized — cheie API invalidă sau lipsă |
| 403 | Forbidden — nu ai permisiune pentru acest magazin sau accesul la API nu este disponibil în planul tău actual |
| 404 | Not Found |
| 422 | Numele magazinului lipsește — parametrul shop este obligatoriu |
| 500 | Internal Server Error |
📌 Note
- Toate răspunsurile sunt în format JSON.
- Limită de cereri:
2 requests/second. - Scrie la [email protected] pentru întrebări.
Actualizat la: 14/09/2026