- 14 Mar 2024
- 4 Minutes to read
Ingest Product Information
- Updated on 14 Mar 2024
- 4 Minutes to read
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.
Endpoint and Headers
Headers
Headers | Sample Value | Description |
---|---|---|
X-PARTNER-NAME | my-parter-name | This is your partner name. Navigate to Inone > Inone Settings > Account Preferences to copy your partner name. The partner name should be lowercase. |
X-REQUEST-TOKEN | 1a2b3c4d5e6f | This 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.
Field Name | Description | Data Type | Required |
---|---|---|---|
item_id | Unique product ID | String | Yes |
locale | Language of the website | String | Yes |
name | Name of the product | String | Yes |
url | URL address of the product | String | Yes |
image_url | URL address of the product image | String | Yes |
category | Category tree of the product | Array (of string) | Yes |
description | Product description | String | No |
price | Unit price of the product. Object key is currency (string) and value is values will be in float type. | Object {String:Float} | Yes |
original_price | Original 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_stock | Stock status of the product | Integer | Yes |
variants | Other variants of the given product ID | Array (of string) | No |
brand | Brand information of the product | String | No |
color | Color information of the product | String | No |
size | Size information of the product | String | No |
groupcode | Information for group product variants. | String | No |
product_attributes | Object of the custom product attributes | Object {key:value} | No |
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.