Ingest Product Information
  • 14 Mar 2024
  • 4 Minutes to read

    Ingest Product Information


      Article Summary

      Overview

      Ingest API provides a service to insert a new item to your Product Catalog. Utilizing the Ingest API, you can bypass the latency of the Clickstream Product Integration Method for product-related field inserts. As Catalog API provides endpoints to insert Product Catalog, you can send requests to insert your Product Catalogs directly.

      Your title goes here
      You can refer here to read Ingest API v1 documentation. Please bear in mind that it will be deprecated very soon.

      Endpoint and Headers

      POST https://catalog.api.useinsider.com/v2/ingest

      Headers

      HeadersSample ValueDescription
      X-PARTNER-NAMEmy-parter-nameThis is your partner name. Navigate to Inone > Inone Settings > Account Preferences to copy your partner name. The partner name should be lowercase.
      X-REQUEST-TOKEN1a2b3c4d5e6fThis key is required to authorize your request. Refer to API Authentication Tokens to generate your Catalog API token.

      Body Parameters

      The following product fields should be sent as parameters in the object with their field name and data type as stated. If any of the required fields is not sent through Catalog API, the respective product is not updated or inserted.

      your title goes here
      If any undefined attribute is sent through Catalog API, the respective product(s) will be updated without the undefined attribute(s). Refer here to check product catalog attribute list.
      Field NameDescriptionData TypeRequired
      item_idUnique product IDStringYes
      localeLanguage of the websiteStringYes
      nameName of the productStringYes
      urlURL address of the productStringYes
      image_urlURL address of the product imageStringYes
      categoryCategory tree of the productArray (of string)Yes
      descriptionProduct descriptionStringNo
      priceUnit price of the product. Object key is currency (string) and value is  values will be in float type.Object {String:Float}Yes
      original_priceOriginal price of the product without any discount. Object key is currency (string) and value is  values will be in float type.Object {String:Float}Yes
      in_stockStock status of the productIntegerYes
      variantsOther variants of the given product IDArray (of string)No
      brandBrand information of the productStringNo
      colorColor information of the productStringNo
      sizeSize information of the productStringNo
      groupcodeInformation for group product variants.StringNo
      product_attributesObject of the custom product attributesObject {key:value}No
      Your title goes here
      The discount rate is automatically calculated based on the price and original price values you provided in the payload.

      Sample Example

      Sample Request

      Products in JSON format can be sent as batches if they are packed inside a comma-separated list.

      [
        {
          "item_id": "2159967",
          "category": [
            "Home",
            "Garden Supplies",
            "Outdoor Furniture"
          ],
          "locale": "en_US",
          "image_url": "https://mywebsite.com/images/furniture.jpg",
          "name": "Red Bean Bag",
          "url": "https://mywebsite.com/read-bean-bag",
          "in_stock": 0,
          "price": {
            "USD": 49.9
          },
          "original_price": {
            "USD": 49.9
          },
          "product_attributes": {
            "brand_attribute": "bag brand",
            "shipping_attribute": "Free Shipping",
            "online_exclusive": "Online Exclusive",
            "new_arrival_attribute": "New Arrival",
            "id_product_attiribute": "2159967",
            "stock_code": "2159967",
            "item_code": "2159967"
          }
        }
      ]

      Sample Response

      Catalog API returns responses with status code 200 for successful requests. Successful responses display the number of valid products to be inserted and the full information about the failed products.

      {
        "success": true,
        "message": {
          "invalidRatio": 0,
          "valid": {
            "count": 1
          },
          "invalid": {
            "count": 0,
            "details": []
          },
          "warnings": {
            "count": 1,
            "details": [
              {
                "message": "Product attribute keys are not included in partners attribute.(brand_attribute)is not included in partner attribute map.",
                "count": 1,
                "document_ids": [
                  "2159967:en_US"
                ]
              },
              {
                "message": "Product attribute keys are not included in partners attribute.(id_product_attiribute)is not included in partner attribute map.",
                "count": 1,
                "document_ids": [
                  "2159967:en_US"
                ]
              },
              {
                "message": "Product attribute keys are not included in partners attribute.(item_code)is not included in partner attribute map.",
                "count": 1,
                "document_ids": [
                  "2159967:en_US"
                ]
              },
              {
                "message": "Product attribute keys are not included in partners attribute.(new_arrival_attribute)is not included in partner attribute map.",
                "count": 1,
                "document_ids": [
                  "2159967:en_US"
                ]
              }
            ]
          }
        }
      }

      Sample Request

      You can also use the Ingest endpoint to introduce products that need to be recorded within the same group. To this end, the group code field should be included in each product information. Below, you can see a sample request that introduces products in the same group to your Product Catalog.

      [
        {
          "item_id": "2159967",
          "category": [
            "Home",
            "Garden Supplies",
            "Outdoor Furniture"
          ],
          "locale": "en_US",
          "image_url": "https://mywebsite.com/images/furniture.jpg",
          "name": "Red Bean Bag",
          "url": "https://mywebsite.com/read-bean-bag",
          "in_stock": 1,
          "price": {
            "USD": 40.9
          },
          "original_price": {
            "USD": 49.9
          },
          "groupcode": "GRP-10000"
        },
        {
          "item_id": "2159968",
          "category": [
            "Home",
            "Garden Supplies",
            "Outdoor Furniture"
          ],
          "locale": "en_US",
          "image_url": "https://mywebsite.com/images/furniture2.jpg",
          "name": "Red Bean Bag 2",
          "url": "https://mywebsite.com/read-bean-bag2",
          "in_stock": 1,
          "price": {
            "USD": 11.3
          },
          "original_price": {
            "USD": 12.3
          },
          "groupcode": "GRP-10000"
        }
      ]

      Sample Response

      Ingest API can also return successful responses with warnings in the response body. These warnings refer to optional attributes being entered by the user wrongly. In such cases, products in the requests are still processed. However, product attributes causing the warnings are ignored and not inserted in the Product Catalog of the partner. Below, you can see a sample request and a Catalog API response that contains a warning.

      [
        {
          "name": "Name of the Product",
          "item_id": "Item-123",
          "description": "A sample description",
          "in_stock": 1,
          "price": {
            "TRY": 35.5
          },
          "url": "https://my-website.com/my-sample-product",
          "image_url": "https://my-website.com/my-sample-product/image.png",
          "brand": "my-brand-bame",
          "locale": "en_US",
          "product_attributes": {
            "stock_code": "01020304"
          },
          "google_title": "Google title of my product",
          "original_price": {
            "TRY": 35.5
          }
        }
      ]

      In the example below, if the stock_code attribute is not defined as a Product Attribute for you before requesting the Catalog API, responses include a warning message as below.

      {
        "success": true,
        "message": {
          "invalidRatio": 0,
          "valid": {
            "count": 1
          },
          "invalid": {
            "count": 0,
            "details": []
          },
          "warnings": {
            "count": 1,
            "details": [
              {
                "message": "Product attribute keys are not included in partners attribute.(stock_code)is not included in partner attribute map.",
                "count": 1,
                "document_ids": [
                  "Item-123:en_US"
                ]
              }
            ]
          }
        }
      }

      400 Invalid Data Exception; Couldn’t Parse JSON

      {
          "status": false,
          "message": "Request data is not in valid JSON format."
      }

      400 Maximum Allowed Record Count

      {
      	"status": false,
      	"message": "Maximum allowed request size is exceeded."
      }

      400 Maximum Allowed Request Size

      {
      	"status": false,
      	"message": "Maximum allowed request size is exceeded."
      }

      401 Partner Cannot Be Validated

      {
      	"status": false,
      	"message": "Partner does not have necessary integration settings for Catalog API."
      }

      401 Wrong Token Usage

      {
      	"status": false,
      	"message": "Partner token authentication failed."
      }

      500 Internal Server Error

      {
      	"status": false,
      	"message": "Internal server error."
      }

      Limitations

      • For all the limitations, refer here. 

      Was this article helpful?


      ESC

      Eddy, a super-smart generative AI, opening up ways to have tailored queries and responses