Amazon SP API Get Products
Version | Date | Created / Updated | Notes |
---|---|---|---|
v1.0 | 20.02.2025 | Bogomil | First publish |
v.1.1 | 25.03.2025 | Danail Deltchev | Added GTIN Mapping |
v1.2 | 28.05.2025 | Bogomil | Add logic for Images |
v1.3 | 30.05.2025 | Bogomil | Additional skipped attributes |
v1.4 | 23.06.2025 | Bogomil | Additional logic for main images |
v1.5 | 24.06.2025 | Bogomil | Logic for B2C prices |
v1.6 | 10.07.2025 | Bogomil | Logic for browseNodes |
All triggers, validations etc are as per the abstraction - Get Products General Requirements
In order to obtain the whole product data we have to first call all ASINS from the seller account and then call each ASIN separately to obtain the rest of the details. We want to store only the complete product data in Hemi.
Please note we want to define attributes which we want to skip and ignore like:
Attribute Name | Comment |
---|---|
marketplaceId | |
language_tag | |
currency | |
unit | Does not apply for the internal field mapped attributes |
<v1.3>standardized_values</v1.3> |
Get Listings
API Call: [https://sellingpartnerapi-na.amazon.com/listings/2021-08-01/items/](https://sellingpartnerapi-na.amazon.com/listings/2021-08-01/items/A1MB0QC1GB5DLQ){sellerId}
Seller Id should be obtained for each channel Channel Amazon - Merchant ID
Query Params:
marketplaceIds
-Based on the Amazon Country we want to use the correct Amazon Marketplace Id
includedData
- Hardcoded like “summaries,attributes,issues,offers,fulfillmentAvailability,procurement,relationships,productTypes”
pageSize
- Hardcoded as “20”
We need to make sure we are using correctly the pagination which is the nextToken
from the response
Sample Response:
{
"numberOfResults": 681,
"pagination": {
"nextToken": "9HkIVcuuPmX_bm51o3-igBfN45pxW4Ru7ElIM6GCECYCuXJKzT26f0xjpu7CBc_x3-4x2ES2EmBwt_JvE7qiRmnS29PTy0aT8f_bmHbjiYDW6NndWPr4GlmnnzjBw6wiQ9TVf1fcSJx6Y6PuQP_OFx1l1vj7KQoFIa7pWiOPHyYLvwml64qnuvBC3yR_QXEHd_vhpiziBxU="
},
"items": [
{
"sku": "R50 79553X-D3",
"summaries": [
{
"marketplaceId": "ATVPDKIKX0DER",
"asin": "B00958G5FM",
"productType": "AREA_DEODORIZER",
"conditionType": "new_new",
"status": [
"BUYABLE"
],
"itemName": "Air Wick® Freshmatic Automatic Spray Air Freshener Refill, Fresh Waters Scent, 6.17 Oz.",
"createdDate": "2025-02-26T18:39:11.912Z",
"lastUpdatedDate": "2025-02-26T19:53:14.826Z",
"mainImage": {
"link": "https://m.media-amazon.com/images/I/41wDYpjcGgL.jpg",
"height": 500,
"width": 500
}
}
],
"productTypes": [
{
"marketplaceId": "ATVPDKIKX0DER",
"productType": "AREA_DEODORIZER"
}
],
"relationships": [],
"attributes": {
"condition_type": [
{
"value": "new_new",
"marketplace_id": "ATVPDKIKX0DER"
}
],
"merchant_suggested_asin": [
{
"value": "B00958G5FM",
"marketplace_id": "ATVPDKIKX0DER"
}
],
"merchant_shipping_group": [
{
"value": "legacy-template-id",
"marketplace_id": "ATVPDKIKX0DER"
}
],
"skip_offer": [
{
"value": false,
"marketplace_id": "ATVPDKIKX0DER"
}
],
"fulfillment_availability": [
{
"fulfillment_channel_code": "DEFAULT",
"quantity": 5,
"marketplace_id": "ATVPDKIKX0DER"
}
],
"unit_count": [
{
"type": {
"value": "Count",
"language_tag": "en_US"
},
"value": 1.0,
"marketplace_id": "ATVPDKIKX0DER"
}
],
"purchasable_offer": [
{
"currency": "USD",
"audience": "ALL",
"our_price": [
{
"schedule": [
{
"value_with_tax": 17.99
}
]
}
],
"marketplace_id": "ATVPDKIKX0DER"
}
],
"product_description": [
{
"language_tag": "en_US",
"value": "Airwick, 5.89 OZ, Freshmatic Refill, Fresh Waters Scent, Eliminates Unpleasant Odors, Lasts For Up To 2 Months At Low Setting, Use With Airwick Freshmatic Kit, TV #228-207.",
"marketplace_id": "ATVPDKIKX0DER"
}
]
},
"issues": [
{
"code": "90004205",
"message": "Based on the data from '[item_form.value]', the 'Count' on the field '\"type.value\"' for the attribute 'Unit Count Type' is not a valid value. Please provide a valid value.",
"severity": "ERROR",
"attributeNames": [
"unit_count"
],
"categories": [
"INVALID_ATTRIBUTE"
]
},
{
"code": "90220",
"message": "'Unit Count' is required but not supplied.",
"severity": "ERROR",
"attributeNames": [
"unit_count"
],
"categories": [
"MISSING_ATTRIBUTE"
],
"enforcements": {
"actions": [
{
"action": "SEARCH_SUPPRESSED"
}
],
"exemption": {
"status": "NOT_EXEMPT"
}
}
},
{
"code": "18374",
"message": "This ASIN is a potential duplicate of ASIN B0063KD1ES. Please review the ASINs and let us know whether both ASINs represent the same product or not.",
"severity": "ERROR",
"categories": [
"DUPLICATE"
],
"enforcements": {
"actions": [
{
"action": "SEARCH_SUPPRESSED"
}
],
"exemption": {
"status": "NOT_EXEMPT"
}
}
}
],
"offers": [
{
"marketplaceId": "ATVPDKIKX0DER",
"offerType": "B2C",
"price": {
"currency": "USD",
"currencyCode": "USD",
"amount": "17.99"
},
"audience": {
"value": "ALL",
"displayName": "Sell on Amazon"
}
}
],
"fulfillmentAvailability": [
{
"fulfillmentChannelCode": "DEFAULT",
"quantity": 5
}
],
"procurement": []
},
{
"sku": "R50 96717X",
"summaries": [
{
"marketplaceId": "ATVPDKIKX0DER",
"asin": "B01MQDZ36O",
"productType": "AREA_DEODORIZER",
"conditionType": "new_new",
"status": [
"DISCOVERABLE",
"BUYABLE"
],
"itemName": "Air Wick Pure Air Freshener Spray, Purple Lavender, 5.5oz",
"createdDate": "2025-02-25T18:11:56.278Z",
"lastUpdatedDate": "2025-02-25T18:11:56.278Z",
"mainImage": {
"link": "https://m.media-amazon.com/images/I/31UVYtZ1f6L.jpg",
"height": 375,
"width": 500
}
}
],
"productTypes": [
{
"marketplaceId": "ATVPDKIKX0DER",
"productType": "AREA_DEODORIZER"
}
],
"relationships": [],
"attributes": {
"condition_type": [
{
"value": "new_new",
"marketplace_id": "ATVPDKIKX0DER"
}
],
"merchant_suggested_asin": [
{
"value": "B01MQDZ36O",
"marketplace_id": "ATVPDKIKX0DER"
}
],
"merchant_shipping_group": [
{
"value": "legacy-template-id",
"marketplace_id": "ATVPDKIKX0DER"
}
],
"skip_offer": [
{
"value": false,
"marketplace_id": "ATVPDKIKX0DER"
}
],
"fulfillment_availability": [
{
"fulfillment_channel_code": "DEFAULT",
"quantity": 5,
"marketplace_id": "ATVPDKIKX0DER"
}
],
"main_product_image_locator": [
{
"media_location": "https://m.media-amazon.com/images/I/61+k3XVCimL.jpg",
"marketplace_id": "ATVPDKIKX0DER"
}
],
"purchasable_offer": [
{
"currency": "USD",
"audience": "ALL",
"our_price": [
{
"schedule": [
{
"value_with_tax": 13.99
}
]
}
],
"marketplace_id": "ATVPDKIKX0DER"
}
],
"product_description": [
{
"language_tag": "en_US",
"value": "Airwick, 5.89 OZ, Freshmatic Refill, Fresh Waters Scent, Eliminates Unpleasant Odors, Lasts For Up To 2 Months At Low Setting, Use With Airwick Freshmatic Kit, TV #228-207.",
"marketplace_id": "ATVPDKIKX0DER"
}
]
},
"issues": [],
"offers": [
{
"marketplaceId": "ATVPDKIKX0DER",
"offerType": "B2C",
"price": {
"currency": "USD",
"currencyCode": "USD",
"amount": "13.99"
},
"audience": {
"value": "ALL",
"displayName": "Sell on Amazon"
}
}
],
"fulfillmentAvailability": [
{
"fulfillmentChannelCode": "DEFAULT",
"quantity": 5
}
],
"procurement": []
},
{
"sku": "R50 84473",
"summaries": [
{
"marketplaceId": "ATVPDKIKX0DER",
"asin": "B01E7EML9M",
"productType": "AREA_DEODORIZER",
"conditionType": "new_new",
"status": [
"DISCOVERABLE",
"BUYABLE"
],
"itemName": "Air Wick Scented Oil Air Freshener, Fresh Waters Scent, Triple Refills, 0.67 oz (Pack of 6, 18 Total Refills)",
"createdDate": "2025-02-25T18:00:15.860Z",
"lastUpdatedDate": "2025-02-25T18:00:15.860Z",
"mainImage": {
"link": "https://m.media-amazon.com/images/I/41J7CXs1guL.jpg",
"height": 375,
"width": 500
}
}
],
"productTypes": [
{
"marketplaceId": "ATVPDKIKX0DER",
"productType": "AREA_DEODORIZER"
}
],
"relationships": [],
"attributes": {
"condition_type": [
{
"value": "new_new",
"marketplace_id": "ATVPDKIKX0DER"
}
],
"merchant_suggested_asin": [
{
"value": "B01E7EML9M",
"marketplace_id": "ATVPDKIKX0DER"
}
],
"merchant_shipping_group": [
{
"value": "legacy-template-id",
"marketplace_id": "ATVPDKIKX0DER"
}
],
"skip_offer": [
{
"value": false,
"marketplace_id": "ATVPDKIKX0DER"
}
],
"fulfillment_availability": [
{
"fulfillment_channel_code": "DEFAULT",
"quantity": 5,
"marketplace_id": "ATVPDKIKX0DER"
}
],
"main_product_image_locator": [
{
"media_location": "https://m.media-amazon.com/images/I/81pJlHQBo6L.jpg",
"marketplace_id": "ATVPDKIKX0DER"
}
],
"purchasable_offer": [
{
"currency": "USD",
"audience": "ALL",
"our_price": [
{
"schedule": [
{
"value_with_tax": 59.99
}
]
}
],
"marketplace_id": "ATVPDKIKX0DER"
}
],
"product_description": [
{
"language_tag": "en_US",
"value": "Airwick, 5.89 OZ, Freshmatic Refill, Fresh Waters Scent, Eliminates Unpleasant Odors, Lasts For Up To 2 Months At Low Setting, Use With Airwick Freshmatic Kit, TV #228-207.",
"marketplace_id": "ATVPDKIKX0DER"
}
]
},
"issues": [],
"offers": [
{
"marketplaceId": "ATVPDKIKX0DER",
"offerType": "B2C",
"price": {
"currency": "USD",
"currencyCode": "USD",
"amount": "59.99"
},
"audience": {
"value": "ALL",
"displayName": "Sell on Amazon"
}
}
],
"fulfillmentAvailability": [
{
"fulfillmentChannelCode": "DEFAULT",
"quantity": 5
}
],
"procurement": []
}
]
}
Response Mapping: Please note the mapping is for get better understanding what we are mapping against internal fields only, everything else which is part of the attributes node we want to store as Item/Variation Attributes
Amazon FIeld | Hemi FIeld | Comment | |||||
---|---|---|---|---|---|---|---|
numberOfResults |
|||||||
pagination |
|||||||
nextToken |
Used for pagination | ||||||
items |
|||||||
sku |
Product > SKU | ||||||
summaries |
|||||||
marketplaceId |
N/A | ||||||
asin |
Listing > Channel Item ID | ||||||
productType |
Listing > Primary Category ID | ||||||
conditionType |
Product > ConditionID | Conditions mappings: |
new_new->New (with tags) new_open_box->New other (see details, without tags/box) new_oem->New (with tags) refurbished_refurbished->Seller refurbished (Re-manufactured) used_like_new-> Line New used_very_good-> Very Good used_good->Used - Good used_acceptable->Used - Acceptable collectible_like_new-> Line New collectible_very_good-> Very Good collectible_good-> Good. collectible_acceptable-> Acceptable club_club->For parts or not working
If we receive a condition which is not mapped to our internal conditions we want to use New (with tags) as a default condition | status |
N/A | itemName |
Product > Title Listing > Title | createdDate |
N/A | lastUpdatedDate |
N/A | mainImage |
link |
N/A | height |
N/A | width |
N/A | productTypes |
marketplaceId |
N/A | productType |
N/A | relationships |
attributes |
supplier_declared_dg_hz_regulation |
value |
N/A | marketplace_id |
N/A | bullet_point |
language_tag |
N/A | value |
N/A | marketplace_id |
N/A | condition_type |
value |
N/A | marketplace_id |
N/A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
merchant_suggested_asin |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
value |
N/A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
marketplace_id |
N/A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
merchant_shipping_group |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
value |
N/A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
marketplace_id |
N/A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
skip_offer |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
value |
N/A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
marketplace_id |
N/A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fulfillment_availability |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fulfillment_channel_code |
N/A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
quantity |
N/A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
marketplace_id |
N/A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
purchasable_offer |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
currency |
N/A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
audience |
N/A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
our_price |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
schedule |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
value_with_tax |
N/A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
marketplace_id |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
product_description |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
language_tag |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
value |
Listing > Description |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
marketplace_id |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
issues |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
code |
N/A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
message |
N/A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
severity |
N/A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
attributeNames |
N/A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
categories |
N/A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
offers |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
marketplaceId |
N/A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
offerType |
N/A | <v1.5> Please note we want to store only the B2C prices from Amazon. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Based on the "offerType": "B2C" we know that we want to obtain the price if we have "offerType": "B2B” we skip the price</v1.5> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
price |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
currency |
N/A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
currencyCode |
Listing > Currency | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
amount |
Listing > Price | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
audience |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
value |
N/A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
displayName |
N/A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fulfillmentAvailability |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fulfillmentChannelCode |
N/A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
quantity |
Based on the quantity we want to set the Listing > Listing Status. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
If quantity ≤ 0 want to set Listing > Listing Status = Inactive else as Active | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
procurement |
N/A |
Sample Empty Response 200:
{
"numberOfResults": 0,
"items": []
}
Sample Error Response 403:
{
"errors": [
{
"code": "Unauthorized",
"message": "Access to requested resource is denied.",
"details": ""
}
]
}
We want to return it in the terminal and in the log.
Limits
Usage Plan:
Rate (requests per second) | Burst |
---|---|
5 | 5 |
Get Catalog
Get Catalog will allow us to obtain the rest of the product information like attributes, images, etc and we want to use the Amazon taxonomy in order the map the correct values and store the correct attribute names. Thus after we have obtained all the seller SKUs and ASINs we want to call each ASIN individually in order to obtain the whole listing details and store them in Hemi.
API Call: `https://sellingpartnerapi-na.amazon.com/catalog/2020-12-01/items/{asin}`
API Docs: https://developer-docs.amazon.com/sp-api/docs/catalog-items-api-v2020-12-01-reference#getcatalogitem
Query Params:
marketplaceIds
-Based on the Amazon Country we want to use the correct Amazon Marketplace Id
includedData
- Hardcoded like “attributes,identifiers,images,productTypes,salesRanks,summaries,variations”
Sample Request:
Sample Response:
{
"asin": "B008O5B6B0",
"attributes": {
"skip_offer": [
{
"value": false,
"marketplace_id": "ATVPDKIKX0DER"
}
],
"item_weight": [
{
"unit": "pounds",
"value": 0.59,
"marketplace_id": "ATVPDKIKX0DER"
}
],
"hazmat": [
{
"aspect": "proper_shipping_name",
"value": "AEROSOLS",
"marketplace_id": "ATVPDKIKX0DER"
},
{
"aspect": "united_nations_regulatory_id",
"value": "UN1950",
"marketplace_id": "ATVPDKIKX0DER"
},
{
"aspect": "transportation_regulatory_class",
"value": "2.1",
"marketplace_id": "ATVPDKIKX0DER"
},
{
"aspect": "exception",
"value": "AE_LimitedQuantity",
"marketplace_id": "ATVPDKIKX0DER"
},
{
"aspect": "exception",
"value": "AU_LimitedQuantity",
"marketplace_id": "ATVPDKIKX0DER"
},
{
"aspect": "exception",
"value": "BR_LimitedQuantity",
"marketplace_id": "ATVPDKIKX0DER"
},
{
"aspect": "exception",
"value": "CA_LimitedQuantity",
"marketplace_id": "ATVPDKIKX0DER"
},
{
"aspect": "exception",
"value": "CN_GroundOnly",
"marketplace_id": "ATVPDKIKX0DER"
},
{
"aspect": "exception",
"value": "DE_LimitedQuantity",
"marketplace_id": "ATVPDKIKX0DER"
},
{
"aspect": "exception",
"value": "ES_LimitedQuantity",
"marketplace_id": "ATVPDKIKX0DER"
},
{
"aspect": "exception",
"value": "FR_LimitedQuantity",
"marketplace_id": "ATVPDKIKX0DER"
},
{
"aspect": "exception",
"value": "GB_LimitedQuantity",
"marketplace_id": "ATVPDKIKX0DER"
},
{
"aspect": "exception",
"value": "IN_GroundOnly",
"marketplace_id": "ATVPDKIKX0DER"
},
{
"aspect": "exception",
"value": "IT_LimitedQuantity",
"marketplace_id": "ATVPDKIKX0DER"
},
{
"aspect": "exception",
"value": "JP_GroundOnly",
"marketplace_id": "ATVPDKIKX0DER"
},
{
"aspect": "exception",
"value": "MX_LimitedQuantity",
"marketplace_id": "ATVPDKIKX0DER"
},
{
"aspect": "exception",
"value": "SG_LimitedQuantity",
"marketplace_id": "ATVPDKIKX0DER"
},
{
"aspect": "exception",
"value": "TR_LimitedQuantity",
"marketplace_id": "ATVPDKIKX0DER"
},
{
"aspect": "exception",
"value": "US_ORMD",
"marketplace_id": "ATVPDKIKX0DER"
}
],
"item_package_quantity": [
{
"value": 1,
"marketplace_id": "ATVPDKIKX0DER"
}
],
"scent": [
{
"language_tag": "en_US",
"value": "Fresh Waters",
"marketplace_id": "ATVPDKIKX0DER"
}
],
"item_dimensions": [
{
"width": {
"unit": "inches",
"value": 2.59
},
"length": {
"unit": "inches",
"value": 2.59
},
"height": {
"unit": "inches",
"value": 5.63
},
"marketplace_id": "ATVPDKIKX0DER"
}
],
"brand": [
{
"language_tag": "en_US",
"value": "Air Wick",
"marketplace_id": "ATVPDKIKX0DER"
}
],
"unspsc_code": [
{
"value": "47131812",
"marketplace_id": "ATVPDKIKX0DER"
}
],
"is_expiration_dated_product": [
{
"value": false,
"marketplace_id": "ATVPDKIKX0DER"
}
],
"scent_duration": [
{
"unit": "days",
"value": 60.0,
"marketplace_id": "ATVPDKIKX0DER"
}
],
"externally_assigned_product_identifier": [
{
"value": "062338795539",
"type": "upc",
"marketplace_id": "ATVPDKIKX0DER"
},
{
"value": "0062338795539",
"type": "ean",
"marketplace_id": "ATVPDKIKX0DER"
}
],
"item_form": [
{
"language_tag": "en_US",
"value": "Spray",
"marketplace_id": "ATVPDKIKX0DER"
}
],
"item_type_keyword": [
{
"value": "aerosol-air-fresheners",
"marketplace_id": "ATVPDKIKX0DER"
}
],
"number_of_items": [
{
"value": 1,
"marketplace_id": "ATVPDKIKX0DER"
}
],
"item_package_dimensions": [
{
"length": {
"unit": "inches",
"value": 4.0
},
"width": {
"unit": "inches",
"value": 4.0
},
"height": {
"unit": "inches",
"value": 7.0
},
"marketplace_id": "ATVPDKIKX0DER"
}
],
"ghs": [
{
"classification": [
{
"class": "irritant"
}
],
"marketplace_id": "ATVPDKIKX0DER"
}
],
"recommended_uses_for_product": [
{
"language_tag": "en_US",
"value": "Indoor spaces (hotels/motels, health care facilities, nursing homes, office buildings, industrial facilities, restrooms)",
"marketplace_id": "ATVPDKIKX0DER"
}
],
"size": [
{
"language_tag": "en_US",
"value": "1 Count (Pack of 1)",
"marketplace_id": "ATVPDKIKX0DER"
}
],
"part_number": [
{
"value": "6233879553",
"marketplace_id": "ATVPDKIKX0DER"
}
],
"pesticide_marking": [
{
"marking_type": "epa_registration_number",
"registration_status": "fifra_not_considered_pesticide",
"marketplace_id": "ATVPDKIKX0DER"
}
],
"variation_theme": [
{
"name": "ITEM_PACKAGE_QUANTITY",
"marketplace_id": "ATVPDKIKX0DER"
}
],
"item_package_weight": [
{
"unit": "pounds",
"value": 1.0,
"marketplace_id": "ATVPDKIKX0DER"
}
],
"manufacturer": [
{
"language_tag": "en_US",
"value": "RECKITT BENCKISER",
"marketplace_id": "ATVPDKIKX0DER"
}
],
"item_name": [
{
"language_tag": "en_US",
"value": "Air Wick Freshmatic Automatic Spray Air Freshener, Fresh Waters Scent, 1 Refill, 6.17 Ounce",
"marketplace_id": "ATVPDKIKX0DER"
}
],
"list_price": [
{
"currency": "USD",
"value_with_tax": 6.79,
"marketplace_id": "ATVPDKIKX0DER"
}
],
"batteries_required": [
{
"value": false,
"marketplace_id": "ATVPDKIKX0DER"
}
],
"power_source_type": [
{
"language_tag": "en_US",
"value": "Air Powered",
"marketplace_id": "ATVPDKIKX0DER"
}
],
"product_site_launch_date": [
{
"value": "2012-07-23T15:38:36.125Z",
"marketplace_id": "ATVPDKIKX0DER"
}
],
"unit_count": [
{
"type": {
"language_tag": "en_US",
"value": "Count"
},
"value": 1.0,
"marketplace_id": "ATVPDKIKX0DER"
}
],
"area_odor_remover_type": [
{
"value": "area_deodorizer",
"marketplace_id": "ATVPDKIKX0DER"
}
],
"batteries_included": [
{
"value": false,
"marketplace_id": "ATVPDKIKX0DER"
}
]
},
"identifiers": [
{
"marketplaceId": "ATVPDKIKX0DER",
"identifiers": [
{
"identifier": "0062338795539",
"identifierType": "EAN"
},
{
"identifier": "062338795539",
"identifierType": "UPC"
}
]
}
],
"images": [
{
"marketplaceId": "ATVPDKIKX0DER",
"images": [
{
"variant": "MAIN",
"link": "https://m.media-amazon.com/images/I/81QvIdpnqYL.jpg",
"height": 2000,
"width": 2000
},
{
"variant": "MAIN",
"link": "https://m.media-amazon.com/images/I/41kJq8Cbq4L.jpg",
"height": 500,
"width": 500
},
{
"variant": "MAIN",
"link": "https://m.media-amazon.com/images/I/41kJq8Cbq4L._SL75_.jpg",
"height": 75,
"width": 75
},
{
"variant": "PT01",
"link": "https://m.media-amazon.com/images/I/71O8fk-MD7L.jpg",
"height": 1000,
"width": 1000
},
{
"variant": "PT01",
"link": "https://m.media-amazon.com/images/I/61pA-tMLuQL.jpg",
"height": 500,
"width": 500
},
{
"variant": "PT01",
"link": "https://m.media-amazon.com/images/I/61pA-tMLuQL._SL75_.jpg",
"height": 75,
"width": 75
},
{
"variant": "PT02",
"link": "https://m.media-amazon.com/images/I/7188jCm4LcL.jpg",
"height": 2560,
"width": 2560
},
{
"variant": "PT02",
"link": "https://m.media-amazon.com/images/I/41oHCwhg9iL.jpg",
"height": 500,
"width": 500
},
{
"variant": "PT02",
"link": "https://m.media-amazon.com/images/I/41oHCwhg9iL._SL75_.jpg",
"height": 75,
"width": 75
},
{
"variant": "PT03",
"link": "https://m.media-amazon.com/images/I/71O2qFmM13L.jpg",
"height": 2000,
"width": 2000
},
{
"variant": "PT03",
"link": "https://m.media-amazon.com/images/I/41AvEslPaAL.jpg",
"height": 500,
"width": 500
},
{
"variant": "PT03",
"link": "https://m.media-amazon.com/images/I/41AvEslPaAL._SL75_.jpg",
"height": 75,
"width": 75
},
{
"variant": "PT04",
"link": "https://m.media-amazon.com/images/I/81tW1qcQMJL.jpg",
"height": 2560,
"width": 2560
},
{
"variant": "PT04",
"link": "https://m.media-amazon.com/images/I/51-9NEHVgtL.jpg",
"height": 500,
"width": 500
},
{
"variant": "PT04",
"link": "https://m.media-amazon.com/images/I/51-9NEHVgtL._SL75_.jpg",
"height": 75,
"width": 75
},
{
"variant": "PT05",
"link": "https://m.media-amazon.com/images/I/81vh0IRVxCL.jpg",
"height": 2560,
"width": 2560
},
{
"variant": "PT05",
"link": "https://m.media-amazon.com/images/I/41QGrn+DWuL.jpg",
"height": 500,
"width": 500
},
{
"variant": "PT05",
"link": "https://m.media-amazon.com/images/I/41QGrn+DWuL._SL75_.jpg",
"height": 75,
"width": 75
},
{
"variant": "PT06",
"link": "https://m.media-amazon.com/images/I/716G6tlOIPL.jpg",
"height": 2000,
"width": 2000
},
{
"variant": "PT06",
"link": "https://m.media-amazon.com/images/I/41Xhy7YQmRL.jpg",
"height": 500,
"width": 500
},
{
"variant": "PT06",
"link": "https://m.media-amazon.com/images/I/41Xhy7YQmRL._SL75_.jpg",
"height": 75,
"width": 75
},
{
"variant": "PT07",
"link": "https://m.media-amazon.com/images/I/61uv1wgWkKL.jpg",
"height": 1000,
"width": 1000
},
{
"variant": "PT07",
"link": "https://m.media-amazon.com/images/I/41htmZrPWPL.jpg",
"height": 500,
"width": 500
},
{
"variant": "PT07",
"link": "https://m.media-amazon.com/images/I/41htmZrPWPL._SL75_.jpg",
"height": 75,
"width": 75
}
]
}
],
"productTypes": [
{
"marketplaceId": "ATVPDKIKX0DER",
"productType": "AREA_DEODORIZER"
}
],
"ranks": [
{
"marketplaceId": "ATVPDKIKX0DER",
"ranks": [
{
"title": "Health & Household",
"link": "https://www.amazon.com/gp/bestsellers/hpc",
"value": 933118,
"rank": 933118
},
{
"title": "Air Freshener Sprays",
"link": "https://www.amazon.com/gp/bestsellers/hpc/15356221",
"value": 4056,
"rank": 4056
}
]
}
],
"salesRanks": [
{
"marketplaceId": "ATVPDKIKX0DER",
"ranks": [
{
"title": "Health & Household",
"link": "https://www.amazon.com/gp/bestsellers/hpc",
"value": 933118,
"rank": 933118
},
{
"title": "Air Freshener Sprays",
"link": "https://www.amazon.com/gp/bestsellers/hpc/15356221",
"value": 4056,
"rank": 4056
}
]
}
],
"summaries": [
{
"marketplaceId": "ATVPDKIKX0DER",
"brandName": "Air Wick",
"browseNode": "15356221",
"itemName": "Air Wick Freshmatic Automatic Spray Air Freshener, Fresh Waters Scent, 1 Refill, 6.17 Ounce",
"manufacturer": "RECKITT BENCKISER",
"sizeName": "1 Count (Pack of 1)"
}
],
"variations": [
{
"marketplaceId": "ATVPDKIKX0DER",
"asins": [
"B07B438ZBL"
],
"variationType": "CHILD"
}
]
}
Response Mapping: Please note the mapping is for get better understanding what we are mapping against internal fields only every else which is part of the attributes node we want to store as Item/Variation Attributes
Amazon FIeld | Hemi FIeld | Comment | |||
---|---|---|---|---|---|
asin |
Pick the ASIN form the Get Listings Response | ||||
attributes |
Please note we will have additional logic for some of the attributes because they will be mapped to specific fields and also there are multi level attributes which we have to store with the correct structure. | ||||
skip_offer |
We want to map the attribute against the taxonomy and store the attribute title in Hemi | ||||
value |
|||||
marketplace_id |
|||||
item_weight |
|||||
value |
Product > Weight |
||||
unit |
If the unit is different from grams based on the unit we want to convert it. | ||||
Possible units - Pounds, Stones, Kilograms, Grams | |||||
marketplace_id |
|||||
hazmat |
|||||
aspect |
|||||
value |
|||||
marketplace_id |
|||||
item_package_quantity |
|||||
value |
|||||
marketplace_id |
|||||
scent |
|||||
language_tag |
|||||
value |
|||||
marketplace_id |
|||||
item_dimensions |
|||||
width |
|||||
unit |
If the unit is different from cm we want to convert the value to centimeters. | ||||
Possible Units - Inches, Foots, Centimeters, Meters | |||||
value |
Product > Width |
||||
length |
|||||
unit |
If the unit is different from cm we want to convert the value to centimeters. | ||||
Possible Units - Inches, Foots, Centimeters, Meters | |||||
value |
Product > Length |
||||
height |
|||||
unit |
If the unit is different from cm we want to convert the value to centimeters. | ||||
Possible Units - Inches, Foots, Centimeters, Meters | |||||
value |
Product > Height |
||||
marketplace_id |
|||||
brand |
|||||
language_tag |
|||||
value |
Listing > Item Attributtes AND |
||||
Product > Brand |
|||||
marketplace_id |
|||||
unspsc_code |
|||||
value |
|||||
marketplace_id |
|||||
is_expiration_dated_product |
|||||
value |
|||||
marketplace_id |
|||||
scent_durationscent_duration |
|||||
unit |
|||||
value |
|||||
marketplace_id |
|||||
externally_assigned_product_identifier |
|||||
value |
|||||
type |
|||||
marketplace_id |
|||||
item_form |
|||||
language_tag |
|||||
value |
|||||
marketplace_id |
|||||
item_type_keyword |
|||||
value |
|||||
marketplace_id |
|||||
number_of_items |
|||||
value |
|||||
marketplace_id |
|||||
item_package_dimensions |
|||||
length |
|||||
unit |
|||||
value |
|||||
width |
|||||
unit |
|||||
value |
|||||
height |
|||||
unit |
|||||
value |
|||||
marketplace_id |
|||||
ghs |
|||||
classification |
|||||
class |
|||||
marketplace_id |
|||||
recommended_uses_for_product |
|||||
language_tag |
|||||
value |
|||||
marketplace_id |
|||||
size |
|||||
language_tag |
|||||
value |
|||||
marketplace_id |
|||||
part_number |
|||||
value |
Listing > Item Attributes |
AND
Product
> MPN
| |
| | | marketplace_id
| | | |
| | pesticide_marking
| | | | |
| | | marking_type
| | | |
| | | registration_status
| | | |
| | | marketplace_id
| | | |
| | variation_theme
| | | | |
| | | name
| | | Based on the variation_theme
we will know which attributes we have to add as Variation Specifics.
For example variation_theme
= SIZE/COLOR this means we want to add Size And Color as Variation Specifics if we have info in variations node from where we get the Variation Group.
There will be some cases where we wont be able to map the attribute thus we will need a mapping which is provided below. |
| | | marketplace_id
| | | |
| | item_package_weight
| | | | |
| | | unit
| | | |
| | | value
| | | |
| | | marketplace_id
| | | |
| | manufacturer
| | | | |
| | | language_tag
| | | |
| | | value
| | | |
| | | marketplace_id
| | | |
| | item_name
| | | | |
| | | language_tag
| | | |
| | | value
| | | |
| | | marketplace_id
| | | |
| | list_price
| | | | |
| | | currency
| | | |
| | | value_with_tax
| | Listing
> RRP
| |
| | | marketplace_id
| | | |
| | batteries_required
| | | | |
| | | value
| | | |
| | | marketplace_id
| | | |
| | power_source_type
| | | | |
| | | language_tag
| | | |
| | | value
| | | |
| | | marketplace_id
| | | |
| identifiers
| | | | | |
| | marketplaceId
| | | N/A | |
| | identifiers
| | | | |
| | | identifier
| | (Listing
> Marketplace EAN
AND
Product
> EAN
)
OR
Product
> UPC
OR
Product
> ISBN
<v1.1>
OR
Product
> GTIN
</v1.1> | Based on the identifierType
we shall decide where to store the identifier |
| | | identifierType
| | | Based on the Type we know where to store the identifier. Possible values UPC, EAN, or ISBN. |
| images
| | | | | |
| | marketplaceId
| | | N/A | |
| | images
| | | | |
| | | variant
| | | <v1.2>Based on the variant if we have MAIN we want to store the image as Product > Main Image AND Listing Amazon > Main Image and all other images as Product > Additional Images
AND
Listing Amazon > More Images.
<v1.4> If for some reason we have more than one main image on the catalog we want to get the one with the highest "height” and "width”.
Also we want to store only image which "height” and "width” are > 100. </1.4>
There is one tricky part we receive the same image couple of time with different dimensions we need to make sure we store only unique images with the highest height and wight |
| | | link
| | Product > Main Image
AND
Listing Amazon > Main Image
Product > Additional Images
AND
Listing Amazon > More Images</v1.2> | |
| | | height
| | N/A | |
| | | width
| | N/A | |
| productTypes
| | | | | |
| | marketplaceId
| | | N/A | |
| | productType
| | | N/A | |
| ranks
| | | | | |
| | marketplaceId
| | | N/A | |
| | ranks
| | | | |
| | | title
| | N/A | |
| | | link
| | N/A | |
| | | value
| | N/A | |
| | | rank
| | N/A | |
| salesRanks
| | | | | |
| | marketplaceId
| | | N/A | |
| | ranks
| | | | |
| | | title
| | N/A | |
| | | link
| | N/A | |
| | | value
| | N/A | |
| | | rank
| | N/A | |
| summaries
| | | | | |
| | marketplaceId
| | | N/A | |
| | brandName
| | | N/A | |
| | browseNode
| | | Listing
> Item Attributes
| <v1.6>
We want to build additional logic and map the browseNode id against our list of browseNodes and if we have a match between the ids to store the Amazon Category Path.
In this case instead of an ID we will have the complete category path which we can use as raw data.
If for some reason the browseNode is missing from our list we want to store the browseNode id
</v1.6> |
| | itemName
| | | N/A | |
| | manufacturer
| | | N/A | |
| | sizeName
| | | N/A | |
| variations
| | | | | |
| | marketplaceId
| | | N/A | |
| | asins
| | | Listing > Variation Group
| Please note this is an array field but if we have variationType
= CHILD we will always have one ASIN return if the variationType
= PARENT we will receive all ASINs and we do not want to store them in Hemi.
This should not happened but we want to have it as a validation |
| | variationType
| | | N/A | |
<v1.6>BrowseNode list:
</1.6> Apart from the mapping we will have to set as default also some of the internal fields because we are not receiving them from the marketplace.
Hemi Field | Default Value |
---|---|
Listing > Listing Status | Based on the quantity level either Active or Inactive |
Listing > Product Status | Product Published |
Listing > Dispatch Time Max | -1 |
Listing > Immediate Payment | Yes |
Listing > VAT | -1 |
In order to make this feasible we will have the standard mappings which are based on existing fields in our system which will always import this information if presented. If any of the details are missing we leave them empty unless the field is required as per our standards.
Regarding the attributes they depends on the product type and we want to store as much as possible data. There are Single Object Array Attribute, Multi Object Array Attribute, Multi Level Object Array Attribute and Single Attribute The structure is outline in the table below.
Type | Example | Item Specific Name Example | Item Specific Value Example (We expect the enum Title if any) |
---|---|---|---|
Single Object Array Attribute | "hazmat": [ |
{
"aspect": "proper_shipping_name",
"value": "AEROSOLS",
"marketplace_id": "ATVPDKIKX0DER"
}
] | Hazmat Information > Hazmat Aspect Hazmat Information > Value | proper_shipping_name AEROSOLS | | Multi Object Array Attribute | "hazmat": [ { "aspect": "proper_shipping_name", "value": "AEROSOLS", "marketplace_id": "ATVPDKIKX0DER" }, { "aspect": "united_nations_regulatory_id", "value": "UN1950", "marketplace_id": "ATVPDKIKX0DER" }, { "aspect": "transportation_regulatory_class", "value": "2.1", "marketplace_id": "ATVPDKIKX0DER" }, { "aspect": "exception", "value": "AE_LimitedQuantity", "marketplace_id": "ATVPDKIKX0DER" } ] | Hazmat Information [1] > Hazmat Aspect Hazmat Information [1] > Value Hazmat Information [2] > Hazmat Aspect Hazmat Information [2] > Value Hazmat Information [3] > Hazmat Aspect Hazmat Information [3] > Value Hazmat Information [4] > Hazmat Aspect Hazmat Information [4] > Value | proper_shipping_name AEROSOLS united_nations_regulatory_id UN1950 transportation_regulatory_class 2.1 exception AE_LimitedQuantity | | Multi Level Object Array Attribute | "clothing": [ { "material": [ "cotton" "wool" ], “value”:”100%” }, { "material": [ "cotton" "wool" ], “value”:”50%” }
] | Clothing[1] > Material[1] Clothing[1] > Material[2] Clothing[1] > Value Clothing[2] > Material[1] Clothing[2] > Material[2] Clothing[2] > Value
| Cotton Wool 100% Cotton Wool 50% | | Single Attribute | "item_form": [ { "language_tag": "en_US", "value": "Spray", "marketplace_id": "ATVPDKIKX0DER" } ] | Item Form > Value | Spray |
Since we wont be receiving the variation theme exact attribute names we will have to make additional mapping and for example to know that COLOR_NAME = COLOR attribute.
Variation Theme Attribute | Attribute |
---|---|
COLOR | COLOR |
COLOR_NAME | COLOR |
CONFIGURATION | CONFIGURATION |
CUSTOMER_PACKAGE_TYPE | CUSTOMER_PACKAGE_TYPE |
DESIGN_NAME | DESIGN |
EDITION | EDITION |
FLAVOR_NAME | FLAVOR |
GOLF_CLUB_FLEX | GOLF_CLUB_FLEX |
GOLF_CLUB_LOFT | GOLF_CLUB_LOFT |
HAND_ORIENTATION | HAND_ORIENTATION |
HEAD_SIZE_NAME | HEAD_SIZE |
ITEM_DISPLAY_LENGTH | ITEM_DISPLAY_LENGTH |
ITEM_DISPLAY_WEIGHT | ITEM_DISPLAY_WEIGHT |
ITEM_PACKAGE_QUANTITY | ITEM_PACKAGE_QUANTITY |
ITEM_SHAPE | ITEM_SHAPE |
ITEM_WEIGHT | ITEM_WEIGHT |
LINE_WEIGHT | LINE_WEIGHT |
MATERIAL | MATERIAL |
MATERIAL_TYPE | MATERIAL_TYPE |
MEASUREMENT_SYSTEM | MEASUREMENT_SYSTEM |
MODEL | MODEL |
MODEL_NAME | MODEL |
NUMBER_OF_ITEMS | NUMBER_OF_ITEMS |
PART_NUMBER | PART_NUMBER |
PATTERN | PATTERN |
PATTERN_NAME | PATTERN |
RING_SIZE | RING |
SCENT_NAME | SCENT |
SHAFT_MATERIAL_TYPE | SHAFT_MATERIAL_TYPE |
SIZE | SIZE |
SIZE_NAME | SIZE |
STYLE | STYLE |
STYLE_NAME | STYLE |
TEAM_NAME | TEAM_NAME |
TENSION_LEVEL | TENSION_LEVEL |
UNIT_COUNT | UNIT_COUNT |
VOLTAGE | VOLTAGE |
WATTAGE | WATTAGE |
WIDTH_RANGE | WIDTH_RANGE |
Sample Error Response 400:
{
"errors": [
{
"code": "InvalidInput",
"message": "Invalid 'asin' provided.",
"details": ""
}
]
}
It is almost impossible to receive an error but even if we do, we want to return it in the terminal and in the log
❗Please note: We’ve identified a case where Get Listings returns an ASIN and then Get Catalog doesn’t return a record! In this case we still want to store the product in MCP as we have enough information from the Get Listings alone, and ensure that the Get Catalog missing product or 404 etc errors do NOT block us to continue the flow. This product will simply not have the info from Get Catalog and be stored / evaluated as is based only on info from Get Listings. This product is currently NOT expected to be added to any specific section of the reports and/or store an error in MCP
Limits:
Usage Plan:
Rate (requests per second) | Burst |
---|---|
2 | 2 |