API Produits
Créez, lisez, mettez à jour et supprimez des produits via l'API REST avec filtrage, pagination et recherche.
4 min de lecture
Sur cette page
Lister les produits
Récupérez une liste paginée de produits avec recherche et filtres optionnels.
GET https://app.kataio.com/api/v1/products?page=1&limit=20&search=chemise&status=ACTIVE&categoryId=cat_001
Authorization: Bearer {accessToken}
Paramètres de requête
page— Numéro de page (par défaut : 1)limit— Éléments par page (par défaut : 20, max : 100)search— Recherche plein texte sur le nom, SKU et la descriptionstatus— Filtrer par statut :ACTIVE,DRAFT,ARCHIVEDcategoryId— Filtrer par ID de catégorietype— Filtrer par type de produit :SIMPLE,VARIABLE,BUNDLEsortBy— Champ de tri :name,price,createdAt,updatedAtsortOrder— Direction du tri :ascoudesc
Réponse (200)
{
"data": [
{
"id": "prod_01H8X...",
"name": "Chemise Oxford Bleue",
"sku": "CHM-OXF-BLU-001",
"type": "VARIABLE",
"status": "ACTIVE",
"price": 49.90,
"compareAtPrice": 69.90,
"currency": "EUR",
"categoryId": "cat_001",
"description": "Chemise Oxford en coton premium...",
"weight": 0.35,
"weightUnit": "kg",
"variantCount": 3,
"createdAt": "2026-03-10T14:30:00.000Z",
"updatedAt": "2026-03-15T09:12:00.000Z"
}
],
"meta": {
"page": 1,
"limit": 20,
"total": 47,
"totalPages": 3
}
}
Obtenir un produit
Récupérez un produit par son ID, incluant ses variantes et attributs personnalisés.
GET https://app.kataio.com/api/v1/products/prod_01H8X...
Authorization: Bearer {accessToken}
Réponse (200)
{
"data": {
"id": "prod_01H8X...",
"name": "Chemise Oxford Bleue",
"sku": "CHM-OXF-BLU-001",
"type": "VARIABLE",
"status": "ACTIVE",
"price": 49.90,
"compareAtPrice": 69.90,
"currency": "EUR",
"categoryId": "cat_001",
"description": "Chemise Oxford en coton premium...",
"weight": 0.35,
"weightUnit": "kg",
"images": [
{ "url": "https://cdn.kataio.com/products/chm-oxf-blu-001.jpg", "position": 0, "alt": "Chemise Oxford Bleue" }
],
"variants": [
{ "id": "var_01...", "sku": "CHM-OXF-BLU-S", "name": "Taille S", "price": 49.90, "stock": 24 },
{ "id": "var_02...", "sku": "CHM-OXF-BLU-M", "name": "Taille M", "price": 49.90, "stock": 38 },
{ "id": "var_03...", "sku": "CHM-OXF-BLU-L", "name": "Taille L", "price": 49.90, "stock": 15 }
],
"customAttributes": {
"matiere": "Coton 100%",
"coupe": "Regular fit",
"col": "Boutonné"
},
"createdAt": "2026-03-10T14:30:00.000Z",
"updatedAt": "2026-03-15T09:12:00.000Z"
}
}
Créer un produit
POST https://app.kataio.com/api/v1/products
Authorization: Bearer {accessToken}
Content-Type: application/json
{
"name": "Pantalon Chino Beige",
"sku": "PNT-CHN-BEG-001",
"type": "SIMPLE",
"status": "DRAFT",
"price": 59.90,
"currency": "EUR",
"categoryId": "cat_003",
"description": "Pantalon chino coupe droite en coton stretch.",
"weight": 0.5,
"weightUnit": "kg"
}
name, sku, type et price sont requis lors de la création d'un produit. Tous les autres champs sont optionnels mais recommandés pour des fiches complètes.
Mettre à jour un produit
Mettez à jour un ou plusieurs champs d'un produit existant. Incluez uniquement les champs que vous souhaitez modifier.
PATCH https://app.kataio.com/api/v1/products/prod_01H8X...
Authorization: Bearer {accessToken}
Content-Type: application/json
{
"price": 44.90,
"status": "ACTIVE",
"compareAtPrice": 59.90
}
Supprimer un produit
Suppression douce d'un produit. Le produit est marqué comme supprimé mais conservé dans la base de données à des fins d'audit.
DELETE https://app.kataio.com/api/v1/products/prod_01H8X...
Authorization: Bearer {accessToken}
ARCHIVED à la place.
Produits associés
Depuis v2.12. Liens à sens unique d'un produit vers ceux qu'il recommande. Types : RELATED, UPSELL, CROSS_SELL, ACCESSORY. Un lien par (cible, type). GET /products/{id} les renvoie dans relationsFrom[] avec l'id, le sku, le nameI18n, le price et le status de la cible. Les boutiques qui le gèrent les reçoivent au push (WooCommerce upsell_ids / cross_sell_ids, pour les cibles déjà publiées sur cette boutique).
POST /api/v1/products/{id}/relations { "relatedProductId": "…", "type": "UPSELL", "position": 0 }
PATCH /api/v1/products/{id}/relations/{relationId} { "type": "ACCESSORY", "position": 2 }
DELETE /api/v1/products/{id}/relations/{relationId}
400si un produit est lié à lui-même,404produit inconnu,409déjà lié avec ce type.- Permission
products:update(write:products pour les clés API).
Dupliquer & modèles
Depuis v2.12. POST /products/{id}/duplicate accepte un corps optionnel. Sans corps, comportement inchangé (copie DRAFT, SKU généré, pas d'EAN, liens copiés).
{
"sku": "TEE-BLK-M-2",
"nameI18n": { "fr": "T-shirt noir M", "en": "Black tee M" },
"copyChannels": false,
"copyMedia": true,
"copyRelations": true,
"asTemplate": false
}
sku—409s'il existe.copyChannelscopie uniquement les activations de canaux (jamais les identifiants distants).copyMediarattache les mêmes fichiers.asTemplate: truemarque la copie comme modèle : un produit qui sert de point de départ et n'est jamais poussé vers un canal. Les modèles apparaissent dansGET /productsavec"isTemplate": true; filtre?filter[isTemplate]=true|false.- « Partir d'un modèle » = dupliquer un modèle avec vos propres
sku/nameI18n.