Passer au contenu principal
PUT
/
endpoint
Importer et mettre à jour des produits
curl --request PUT \
  --url https://api.example.com/endpoint
Cet endpoint importe vos produits dans votre compte Kameleoon. C’est la méthode préférée pour importer votre catalogue si vous avez plus de 50K produits. Nous recommandons fortement d’utiliser cet endpoint également pour mettre à jour la liste des produits et leurs propriétés, plutôt que de réimporter complètement votre catalogue quotidiennement.
Si vous utilisez exclusivement cet endpoint pour importer votre catalogue, assurez-vous que toutes les catégories ont d’abord été importées via l’endpoint d’import de catégories. Tout produit sans catégorie connue sera ignoré lors du processus d’import.
Les données sont envoyées sous forme de chaîne JSON dans le corps de la requête.

Limite de débit

  • La limite de requêtes API (Rate Limit) est fixée à 40 requêtes par minute, avec un maximum d’1 requête toutes les 1,5 secondes.
  • La limite de poids des requêtes API (Weight Limit) est plafonnée à 35 mégaoctets par requête.

Requête HTTP

PUT https://api.products.kameleoon.com/import/products

Liste des paramètres de requête

ParamètreTypeRequisDescription
shop_idStringOuiVotre Store Key. Vous pouvez la trouver dans Recommendations > Settings > Store settings dans l’application Kameleoon. Vous pouvez également contacter votre Customer Success Manager pour obtenir la clé.
shop_secretStringOuiVotre Secret Key. Vous pouvez la trouver dans Recommendations > Settings > Store settings dans l’application Kameleoon. Vous pouvez également contacter votre Customer Success Manager pour obtenir la clé.
itemsListOuiUne liste d’articles produits. Trouvez dans ce tableau les paramètres requis pour items
webhookStringNonL’URL Webhook est l’endroit où une requête POST sera envoyée à la fin de l’import.
L’objectif du webhook est de notifier le développeur une fois qu’une requête est terminée. Une fois que tous les produits de l’appel API ont été importés et sont entièrement disponibles, une requête POST sera envoyée au webhook désigné.Exemple d’une requête réussie :
{
	"status": "success"
}
Exemple d’une requête échouée :
{
	"status": "error", 
	"message": "MESSAGE"
}

Liste des paramètres pour l’objet items

Si vous souhaitez mettre à jour uniquement certains produits, vous devez fournir toutes les valeurs des paramètres obligatoires pour chaque produit dans la requête. Si l’une des propriétés obligatoires d’un produit est omise, le produit sera ignoré lors de l’import et aucune modification ne sera apportée à notre base de données. Par exemple, si vous souhaitez mettre à jour uniquement le prix d’un produit, vous devez inclure tous ses paramètres obligatoires, tels que category, name, picture, tags, etc.Pour les propriétés non obligatoires, toute valeur omise entraînera la suppression de ces propriétés de notre base de données.
ParamètreTypeRequisDescription
idString (longueur max 64)OuiUn ID unique attribué à l’article
group_idString (longueur max 64)OptionnelL’ID associé au groupe d’articles
nameString (longueur max 255)OuiLe nom de l’article
priceFloat (doit être positif)OuiLe prix de l’article. Pour fournir des prix dans plusieurs lieux, utilisez plutôt l’objet locations.
oldpriceFloat (doit être positif)OptionnelLe prix précédent de l’article
currencyStringOuiLa devise dans laquelle le champ price a été spécifié
urlStringOuiUne URL à associer à l’article
pictureStringOuiUne URL contenant une image de l’article
availableBooleanOuiIndique si l’article est disponible à l’achat. Utilisez l’endpoint update products pour le mettre à jour ultérieurement
categoriesArray of stringsOuiChaque chaîne représente un ID de catégorie auquel ce produit appartient.
locationsArrayOptionnelTableau des prix de l’article à différents endroits. Trouvez dans ce tableau les paramètres requis pour locations
accessoriesArray of stringsOptionnelContient les IDs de produits des accessoires associés à l’article
seasonalityArray of integersOptionnelReprésente les mois de l’année (Janvier=1, Décembre=12) où vous souhaitez promouvoir cet article
brandStringOptionnelLe nom de la marque de l’article
barcodeIntegerOptionnelUne valeur de code-barres pour l’article
price_marginIntegerOptionnelLa marge de prix pour l’article
tagsArray of stringsOptionnelUne liste de mots-clés que vous souhaitez associer à l’article
is_childBooleanOptionnelIndique si cet article est un enfant d’un autre article
is_fashionBooleanOptionnelIndique si cet article est un article de mode
is_newBooleanOptionnelIndique si cet article est un nouvel article
fashionObjectOptionnelDéfinit plusieurs paramètres supplémentaires pour les articles de mode. Trouvez dans ce tableau les paramètres requis pour fashion
stock_quantityIntegerOptionnelLa quantité de l’article en stock
type_prefixStringOptionnelUn préfixe pour distinguer le type d’article
modelStringOptionnelLe nom du modèle de l’article
paramsObjectOptionnelAjoutez des paramètres personnalisés. Trouvez dans ce tableau les paramètres requis pour params
merchantStringOptionnelLe marchand que vous souhaitez associer à l’article
ratingIntegerOptionnelUne valeur entre 1 et 5. La note utilisateur que vous souhaitez attribuer à l’article
leftoversStringOptionnelUne description du stock restant. Par exemple, “one” représente un produit disponible en une seule unité, “few” représente un produit en quantités limitées (jusqu’à 10 unités), et “lot” représente un produit disponible en quantités de 10 unités ou plus
creation_dateStringOptionnelDoit être au format yyyy-mm-dd. C’est la date de création de l’article

Liste des paramètres pour l’objet locations

Utilisez l’objet locations pour fournir des informations sur les prix, les stocks et d’autres informations spécifiques à un lieu lorsque vous avez plusieurs lieux. Passez l’objet locations à l’intérieur de l’objet items des produits.
ParamètreTypeRequisDescription
locationStringOuiLe lieu pour lequel vous souhaitez spécifier un prix. Ce champ est requis si le champ locations est fourni.
priceFloat (doit être positif)OptionnelLe prix à cet endroit.
oldpriceFloat (doit être positif)OptionnelLe prix précédent de l’article (par exemple, le prix régulier d’un article en solde).
stock_quantityInt (doit être positif)OptionnelLa quantité de l’article en stock.
sizesArray of StringsOptionnelUne liste d’options de taille pour l’article.
weightInt (doit être positif)OptionnelLe poids de l’article.
delivery_typesObjectOptionnelIndique la disponibilité de l’article. Trouvez dans ce tableau les paramètres requis pour delivery_types

Liste des paramètres pour l’objet delivery_types

ParamètreTypeRequisDescription
storeInt (doit être positif)OuiNombre d’articles disponibles en magasin
deliveryInt (doit être positif)OuiNombre d’articles disponibles à la livraison
deliveryInt (doit être positif)OuiNombre d’articles disponibles dans l’entrepôt

Liste des paramètres pour l’objet Params

L’objet params vous permet de spécifier des valeurs de paramètres personnalisées pour l’article. Passez l’objet params à l’intérieur de l’objet items des produits.
ParamètreTypeRequisDescription
nameStringOuiLe nom du paramètre
valueArray of StringsOuiTableau de valeurs pour le paramètre
unitStringOptionnelUnité de mesure pour les valeurs.

Liste des paramètres pour l’objet Fashion

L’objet fashion vous permet de spécifier des informations supplémentaires sur les articles de mode. Passez l’objet fashion à l’intérieur de l’objet items des produits.
ParamètreTypeRequisDescription
genderStringOptionnelUn genre à associer à l’article. Par exemple, “m”, “f” ou “female”.
sizesArray of StringsOptionnelListe des tailles pour l’article.
typeStringOuiLe type d’article de mode. Par exemple, “jacket”.

Exemple de requête JSON

{
    "id": "myID", // String (max 64). Required
    "group_id": "myGroup", // String (max 64). Optional
    "name": "myItem", // String (max 255). Required
    "price": "1", // Float (positive). Required
    "oldprice": "2", // Float (positive). Optional
    "currency": "USD", // Currency code: USD, EUR. Required.
    "url": "https://example.com/product", // String (URL). Required
    "picture": "https://example.com/product/image.png", // String (URL). Required
    "available": true, // Boolean (true, false). Required
    "categories": ["ID1", "ID2", ...], // Array of categories IDs. Required.
    "locations": [ 
    {
        "location": "USA",
        "delivery_types": {
            "store": 10,
            "stock": 50  }
    },
    {
        "location": "CAN",
        "price": 60
    }
    ], // Array of prices in locations. See below. Optional
    "accessories": ["ID", "ID", ...], // Array of product IDs. Optional
    "seasonality": [1, 2, ...], // Array of integers (months: 1-12). Optional
    "brand": "...", // String. Optional
    "barcode": "...", // String. Optional
    "price_margin": "...",// Integer. Optional
    "tags": ["TAG1", "TAG2", ...], // Array of strings. Optional
    "is_child": false, // Boolean (true, false). Optional
    "is_fashion": true, // Boolean (true, false). Optional
    "is_new": false, // Boolean (true, false). Optional
    "fashion": {
        "gender": "m",
        "sizes": ["48", "50", "52"],
        "type": "jacket"
    }, // Object. See below. Optional
    "stock_quantity": 60, // Int (positive). Optional
    "type_prefix": "...", // String. Optional
    "model": "Widget 3000", // String. Optional
    "params": [ 
    {
        "name": "Param 1",
        "value": ["bluetooth", "wi-fi"]
    }, 
    {
        "name": "Param 2",
        "value": [23]
    }
    ], // Array of params data. See below. Optional
    "merchant": "...", // String. Optional
    "rating": 4, // Integer (1-5). Optional
    "leftovers": "one", // String (one, few, lot). Optional
    "creation_date": "...", // String. Optional. Format yyyy-mm-dd,
}