Marketplaces / Amazon SP API - Technical Scope / Amazon SP API Product Management / Amazon SP API Get Products

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 Docs : https://developer-docs.amazon.com/sp-api/docs/listings-items-api-v2021-08-01-reference#searchlistingsitems

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 Request: https://sellingpartnerapi-na.amazon.com/listings/2021-08-01/items/A1MB0QC1GB5DLQ?marketplaceIds=ATVPDKIKX0DER&includedData=summaries,attributes,issues,offers,fulfillmentAvailability,procurement,relationships,productTypes&pageSize=20

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:

https://sellingpartnerapi-na.amazon.com/catalog/2020-12-01/items/B008O5B6B0?marketplaceIds=ATVPDKIKX0DER&includedData=attributes,identifiers,images,productTypes,salesRanks,summaries,variations

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:

amazon_browse_nodes_full.xlsx

</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
Is this article helpful?
0 0 0