メインコンテンツへスキップ
PUT
/
endpoint
商品のインポートと更新
curl --request PUT \
  --url https://api.example.com/endpoint
このエンドポイントは、商品を Kameleoon アカウントにインポートします。50,000 点以上の商品がある場合は、これがカタログをインポートする推奨方法です。 毎日カタログを完全に再インポートするのではなく、商品リストとそのプロパティの更新にもこのエンドポイントを使用することを強くお勧めします。
カタログのインポートに完全にこのエンドポイントを利用する場合は、カテゴリインポートエンドポイントを使用して、まずすべてのカテゴリがインポートされていることを確認してください。既知のカテゴリがない商品は、インポートプロセス中に無視されます。
データは、リクエスト本文に JSON 文字列として送信されます。

レート制限

  • API リクエスト制限(Rate Limit)は 1 分間に 40 リクエストで、最大で 1.5 秒に 1 リクエストです。
  • API リクエスト重量制限(Weight Limit)は 1 リクエストあたり最大 35 メガバイトに制限されています。

HTTP リクエスト

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

クエリパラメーターのリスト

パラメーター必須説明
shop_idStringYesストアキー。Kameleoon アプリの Recommendations > Settings > Store settings で確認できます。キーについては、カスタマーサクセスマネージャーにもお問い合わせいただけます。
shop_secretStringYesシークレットキー。Kameleoon アプリの Recommendations > Settings > Store settings で確認できます。キーについては、カスタマーサクセスマネージャーにもお問い合わせいただけます。
itemsListYes商品アイテムのリスト。items に必要なパラメーターはこの表を参照してください。
webhookStringNoWebhook URL。インポート完了時に POST リクエストが送信されます。
webhook の目的は、リクエストが完了したことを開発者に通知することです。API 呼び出しで指定されたすべての商品がインポートされ完全に利用可能になると、指定された Webhook に POST リクエストが送信されます。成功したリクエストの例:
{
	"status": "success"
}
失敗したリクエストの例:
{
	"status": "error", 
	"message": "MESSAGE"
}

items オブジェクトのパラメーターリスト

特定の商品のみを更新したい場合は、リクエストで各商品のすべての必須パラメーター値を指定する必要があります。商品の必須プロパティのいずれかが省略された場合、インポート中にその商品は無視され、データベースには変更が加えられません。たとえば、商品の価格のみを更新したい場合でも、カテゴリ、名前、画像、タグなどのすべての必須パラメーターを含める必要があります。必須でないプロパティについて、省略された値はデータベースからプロパティが削除される結果となります。
パラメーター必須説明
idString (最大長 64)Yesアイテムに割り当てられた一意の ID
group_idString (最大長 64)Optionalアイテムグループに関連付けられた ID
nameString (最大長 255)Yesアイテムの名前
priceFloat (正の値である必要があります)Yesアイテムの価格。複数の場所で価格を提供するには、代わりに locations オブジェクトを使用してください。
oldpriceFloat (正の値である必要があります)Optionalアイテムの以前の価格
currencyStringYesprice フィールドで指定された通貨
urlStringYesアイテムに関連付ける URL
pictureStringYesアイテムの画像を含む URL
availableBooleanYesアイテムが購入可能かどうかを示します。後で更新するには、商品更新エンドポイントを使用してください
categoriesArray of stringsYes各文字列は、この商品が属するカテゴリ ID を表します。
locationsArrayOptional異なる場所でのアイテムの価格の配列。locations に必要なパラメーターはこの表を参照してください。
accessoriesArray of stringsOptionalアイテムに関連するアクセサリの商品 ID を含みます
seasonalityArray of integersOptionalこのアイテムを宣伝したい年の月(1 月=1、12 月=12)を表します
brandStringOptionalアイテムのブランド名
barcodeIntegerOptionalアイテムのバーコード値
price_marginIntegerOptionalアイテムの価格マージン
tagsArray of stringsOptionalアイテムに関連付けたいキーワードのリスト
is_childBooleanOptionalこのアイテムが別のアイテムの子であるかどうかを示します
is_fashionBooleanOptionalこのアイテムがファッションアイテムかどうかを示します
is_newBooleanOptionalこのアイテムが新しいアイテムかどうかを示します
fashionObjectOptionalファッションアイテム用のいくつかの追加パラメーターを定義します。fashion に必要なパラメーターはこの表を参照してください。
stock_quantityIntegerOptional在庫数量
type_prefixStringOptionalアイテムタイプを区別するためのプレフィックス
modelStringOptionalアイテムのモデル名
paramsObjectOptionalカスタムパラメーターを追加します。params に必要なパラメーターはこの表を参照してください。
merchantStringOptionalアイテムに関連付けたいマーチャント
ratingIntegerOptional1 から 5 の間の値。アイテムに割り当てたいユーザー評価
leftoversStringOptional残在庫の説明。たとえば、“one” は単一ユニットとして利用可能な商品を表し、“few” は限定数量(最大 10 ユニット)で入手可能な商品を表し、“lot” は 10 ユニット以上の数量で入手可能な商品を表します
creation_dateStringOptional形式 yyyy-mm-dd で指定する必要があります。これはアイテムが作成された日付です

locations オブジェクトのパラメーターリスト

複数の場所がある場合に、場所に固有の価格、在庫、その他の情報を提供するために locations オブジェクトを使用します。商品アイテムオブジェクト内に locations オブジェクトを渡します。
パラメーター必須説明
locationStringYes価格を指定する場所。locations フィールドが提供される場合、このフィールドは必須です。
priceFloat (正の値である必要があります)Optionalこの場所での価格。
oldpriceFloat (正の値である必要があります)Optionalアイテムの以前の価格(たとえば、セール品の通常価格)。
stock_quantityInt (正の値である必要があります)Optional在庫の数量。
sizesArray of StringsOptionalアイテムのサイズオプションのリスト。
weightInt (正の値である必要があります)Optionalアイテムの重量。
delivery_typesObjectOptionalアイテムの利用可能性を示します。delivery_types に必要なパラメーターはこの表を参照してください。

delivery_types オブジェクトのパラメーターリスト

パラメーター必須説明
storeInt (正の値である必要があります)Yes店頭で利用可能な数量
deliveryInt (正の値である必要があります)Yes配送で利用可能な数量
deliveryInt (正の値である必要があります)Yes倉庫で利用可能な数量

Params オブジェクトのパラメーターリスト

params オブジェクトを使用すると、アイテムのカスタムパラメーター値を指定できます。商品 items オブジェクトの中に params オブジェクトを渡します。
パラメーター必須説明
nameStringYesパラメーターの名前
valueArray of StringsYesパラメーターの値の配列
unitStringOptional値の測定単位。

Fashion オブジェクトのパラメーターリスト

fashion オブジェクトを使用すると、ファッションアイテムに関する追加情報を指定できます。商品 items オブジェクトの中に fashion オブジェクトを渡します。
パラメーター必須説明
genderStringOptionalアイテムに関連付ける性別。たとえば、“m”、“f”、または “female”。
sizesArray of StringsOptionalアイテムのサイズリスト。
typeStringYesファッションアイテムのタイプ。たとえば、“jacket”。

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,
}