L'API d'intégrations Customix vous permet de récupérer vos commandes personnalisées dans vos propres systèmes : les fichiers d'impression générés par Customix et tout ce que vos clients ont saisi lors de la personnalisation, comme les noms, les textes personnalisés, les couleurs et les dispositions choisies. Utilisez-la lorsqu'un outil de production, un tableur ou une plateforme d'automatisation comme Make a besoin des détails de vos commandes sans que personne ait à les copier à la main.
Pour obtenir une clé API, accédez à Paramètres dans la barre latérale gauche, ouvrez l'onglet Intégrations, puis cliquez sur Créer une clé dans la carte Clé API. Consultez Comment obtenir la clé API Customix pour plus de détails.
🔑 Authentification
Toutes les requêtes nécessitent votre clé API dans l'en-tête :
Authorization: Bearer <your_api_key>🌐 URL de base
https://app.customix.io/api/integrations/v1📘 Endpoints
1. Obtenir la liste des commandes
Endpoint :
GET /ordersDescription : récupère vos commandes personnalisées, les plus récentes en premier par défaut.
Paramètres :
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
shop | string | ✅ | Nom de la boutique Shopify. Si l'URL de votre boutique est abcdef.myshopify.com, alors shop=abcdef |
limit | integer | ⬜ | La valeur par défaut est 50, la valeur maximale est 250 |
created_at_min | date | ⬜ | Affiche les commandes créées à partir de cette date incluse (format : 2025-01-21) |
created_at_max | date | ⬜ | Affiche les commandes créées jusqu'à cette date incluse (format : 2025-01-30) |
order_status | string | ⬜ | created : affiche uniquement les commandes ouvertes. paid : affiche uniquement les commandes payées. fulfilled : affiche uniquement les commandes traitées. |
order_by | string | ⬜ | La valeur par défaut est « ordered_at desc ». Peut aussi être « ordered_at asc », « id asc » ou « id desc » |
En-têtes :
| En-tête | Valeur |
|---|---|
Authorization | Bearer API_KEY |
Exemple de requête :
GET https://app.customix.io/api/integrations/v1/orders?shop=abcdef&limit=2Réponse :
{
"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éponses d'erreur :
| Code | Message | Description |
|---|---|---|
| 401 | Unauthorized | Jeton invalide ou manquant |
| 403 | Forbidden | Vous n'avez pas l'autorisation de consulter les commandes de cette boutique |
2. Obtenir une commande spécifique
Endpoint :
GET /orders/{id}Description : récupère une commande, avec ses fichiers d'impression et ses valeurs de personnalisation.
Paramètres :
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
shop | string | ✅ | Nom de la boutique Shopify. Si l'URL de votre boutique est abcdef.myshopify.com, alors shop=abcdef |
id | integer | ✅ | ID de commande Shopify, dans le chemin |
En-têtes :
| En-tête | Valeur |
|---|---|
Authorization | Bearer API_KEY |
Content-Type | application/json |
Exemple de requête :
GET https://app.customix.io/api/integrations/v1/orders/123456789?shop=abcdefRéponse : une seule commande dans data, avec les mêmes champs qu'une entrée de la liste ci-dessus :
{
"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" }
]
}
]
}
}(Abrégée ici : la vraie réponse inclut tous les champs affichés dans l'exemple de liste.)
Réponses d'erreur :
| Code | Message | Description |
|---|---|---|
| 401 | Unauthorized | Jeton invalide ou manquant |
| 403 | Forbidden | Vous n'avez pas l'autorisation de consulter cette commande |
| 404 | Not Found | Commande introuvable |
3. Obtenir la personnalisation d'une commande spécifique
Endpoint :
GET /orders/{order_id}/customizations/{public_customization_id}Description : récupère une personnalisation d'une commande.
Paramètres :
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
shop | string | ✅ | Nom de la boutique Shopify. Si l'URL de votre boutique est abcdef.myshopify.com, alors shop=abcdef |
order_id | integer | ✅ | ID de commande Shopify, dans le chemin |
public_customization_id | string | ✅ | Le public_customization_id de la personnalisation, dans le chemin. Il figure dans la réponse de la commande, et sur la commande dans Shopify sous la forme de la propriété d'article _cm-customization-id |
En-têtes :
| En-tête | Valeur |
|---|---|
Authorization | Bearer API_KEY |
Content-Type | application/json |
Exemple de requête :
GET https://app.customix.io/api/integrations/v1/orders/123456789/customizations/01jjavmg7t7vqj5z6qvxwpc9kd?shop=abcdefRéponse : la personnalisation seule, non encapsulée dans 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éponses d'erreur :
| Code | Message | Description |
|---|---|---|
| 401 | Unauthorized | Jeton invalide ou manquant |
| 403 | Forbidden | Vous n'avez pas l'autorisation de consulter cette personnalisation |
| 404 | Not Found | Commande introuvable, ou personnalisation introuvable |
🖊️ Valeurs de personnalisation
Chaque personnalisation inclut des values : une entrée pour chaque champ de personnalisation enregistré avec la commande, soit les mêmes détails que ceux visibles comme propriétés d'article sur la commande dans Shopify. Chaque entrée comporte :
- key : l'identifiant du champ dans votre modèle. Il reste identique d'une commande à l'autre pour le même champ du même modèle ; utilisez-le donc pour faire correspondre les champs dans votre intégration.
- label : le nom de l'option que vos clients ont vu, par exemple « Name ». Il peut être vide sur les commandes plus anciennes.
- type : le type d'option, par exemple
text-field,color-picker,font-swatch,image-swatch,layout-swatch,date-pickeroufile-upload. - value : ce que votre client a choisi ou saisi, toujours sous forme de texte.
Comment value se présente pour chaque type d'option :
- Texte : exactement ce que votre client a saisi.
- Sélecteur de couleur : le code couleur choisi par votre client.
- Nuanciers de police, d'image, de couleur et de contour : la valeur du nuancier choisi par votre client.
- Nuanciers de disposition : le nom de la disposition choisie par votre client, tel qu'il était nommé au moment de la commande.
- Sélecteurs de date et d'heure : la date ou l'heure choisie par votre client.
- Fichiers et vecteurs importés : un lien vers le fichier importé par votre client.
- Palettes et polices de nuage de mots : les couleurs ou les polices choisies par votre client, séparées par des virgules.
- Les options sans forme textuelle, comme les styles de carte, les lieux ou les titres Spotify, renvoient une valeur vide : utilisez les fichiers d'impression pour celles-ci.
⚠️ Codes d'erreur courants
| Code | Description |
|---|---|
| 400 | Bad Request |
| 401 | Unauthorized : clé API invalide ou manquante |
| 403 | Forbidden : aucune autorisation pour cette boutique, ou l'accès à l'API n'est pas disponible avec votre offre actuelle |
| 404 | Not Found |
| 422 | Nom de boutique manquant : le paramètre shop est obligatoire |
| 500 | Internal Server Error |
📌 Remarques
- Toutes les réponses sont au format JSON.
- Limite de débit :
2 requests/second. - Contactez [email protected] pour toute question.
Mis à jour le : 14/09/2026