Amazon SP-API Fitment
Version | Date | Created / Updated | Notes |
---|---|---|---|
v1.0 | 04/12/2024 | Hristiyan | First publish |
Amazon utilizes vehicle fitment codes, often referred to as KCodes, to specify vehicle compatibility for automotive parts and accessories. These codes are integral to Amazon's fitment system, enabling precise matching of parts to specific vehicle makes and models. Amazon's product type schemas include attributes specifically designed for vehicle fitment, facilitating accurate automotive parts compatibility
First of all our idea is to utilize our existing Kcodes logic and make it usable for both Amazon and eBay since they both use the same types of kcodes (Ktype for eBay and TecDoc for Amazon, which are essentially the same). In order to do this, we first need to start by amending our existing infrastructure. We want to rename the table and some fields, and also add some new fields.
“eBay Kcodes
” table should be renamed to “Fitment
” table. It is still dependant table of Product Account
Please find the structure below.
Field | Old field name | Field Type | Required | Description |
---|---|---|---|---|
KCode | KType | varchar | Yes | This is the actual code value to be added to the Product Account |
Notes | Notes | varchar | No | Additional fitment information, which would be displayed to the buyer |
Deletion | Deletion | varchar | No | List of year(s) an automotive part does not fit. Use comma " , " to list all deletions. |
Type | New field! | varchar | Yes | This will be the type of KCode that was imported. Please note that this filed can be filled manually, but also should be filled with the import type (we will have Import type = ePID, |
Import type = KType or Import type = TecDoc) |
Also we want to make sure the table is also visible for Amazon listings.
After we have the info we need, we then have to send it to Amazon. This is done via the listing create/update (Amazon SP API Listing Create) using the JSON schemas. In the vehicle JSON schemas, there is a vehicle_fitment object in which we provide the info.
Example: (please note this example is strictly for the vehicle_fitment object, all other objects part of the payload are excluded here) :
{
"vehicle_fitment": [
{
"standard": [
{
"value": "TecDoc",
"language_tag": "en_GB"
}
],
"code": [
{
"value": "0035AFR, 59799",
"language_tag": "en_GB"
}
],
"note": [
{
"value": "0035AFR: Only for model years 2008 and higher, 59799: Only for models with automatic transmissions",
"language_tag": "en_GB"
}
],
"marketplace_id": "A1PA6795UKMFR9"
}
]
}
Mapping :
Integration FIeld | Hemi Mapping | Hemi Notes | ||
---|---|---|---|---|
vehicle_fitment |
||||
standard |
||||
value |
Fitment > Type |
|||
language_tag |
Hardcoded per account region | |||
code |
||||
value |
Fitment > KCode |
We can have many values which are separated with comma | ||
language_tag |
Hardcoded per account region | |||
note |
||||
value |
Fitment > Note |
Needs to be in a format : code : note . Example is in the payload above. |
||
language_tag |
Hardcoded per account region | |||
marketplace_id |
Hardcoded per account region |
There are no triggers, no validations etc. as this is part of our Listing process and everything related is in there.
As additional note to make things extra clear - even if it seems that nodes code
and note
are arrays in the example everything we’ve seen so far is that we need to pass the info into only one code and note, combined and separated with a comma (,
). This means we need to pick all kcodes associated with the listing and put them all in one value (example: kcode_1, kcode_2, kcode_3, kcode_4, kcode_n
) and if they have any notes against them put them in the notes field together again based on the structure explained above (example: kcode_1: note_1, kcode_4: note_4, kcode_n: note_n
)