Products
Usage
To convert a POST_PRODUCT_DATA feed to the newer JSON_LISTINGS_FEED format:
use SellingPartnerApi\FeedTransformer\Transformer;
use SellingPartnerApi\FeedTransformer\FeedTypes\Product;
$feedPath = 'path/to/feed.xml';
$json = Transformer::fromFile(
Product::$feedType,
$feedPath,
'ATVPDKIKX0DER', // -> US Selling Partner API marketplace ID
[ /* options */ ]
);
$jsonFeedPath = 'path/to/new/feed.json';
file_put_contents($jsonFeedPath, json_encode($json));The first time using this feed transformer with a particular product type, we strongly recommend running the converted data through our validators before putting it into production. That way, you can ensure you know if certain elements of your XML feed aren't able to be mapped to the new format.
Product variants
If you send variation data via the POST_PRODUCT_DATA feed and then use a POST_PRODUCT_RELATIONSHIP_DATA feed to set parent/child SKUs, please note that it's currently not possible to set any variation data other than the variation theme via the JSON_LISTINGS_FEED. If you have the <Parentage> tag in your product feeds, they will be skipped, so please use the POST_PRODUCT_RELATIONSHIP_DATA feed type/converter to specify parent/child product relationships.
Parameters
productType
productTypeRequired
This must be a valid Amazon product type, corresponding to the product type that you're defining relationships between in the feed. It cannot be the base product type, PRODUCT.
shippingGroupMap
shippingGroupMapRequired if the MerchantShippingGroupName tag is present in the feed file being converted.
This is a mapping of your account's shipping group names to their internal Amazon identifiers. Instructions on how to generate this mapping are here: Inventory Loader #shippingGroupMap
onUnsupportedField
onUnsupportedFieldThis option controls what happens when the feed transformer encounters an XML tag that has no direct equivalent in the new JSON format. There are two accepted values:
ignore: Silently move past un-mappable XML tags.fail: The first time an un-mappable XML tag is encountered, throw anInvalidFeedException. This is the default.
callback
callbackThis option is the callback to be called if onSupportedField is set to callback and an un-mappable XML field is encountered while processing the input data. The callback's signature is fn (string): void. For example:
$options = [
'onUnsupportedField' => 'callback',
'callback' => function ($field) {
echo "Unsupported field: $field";
// -> Unsupported field: Message/Product/DescriptionData/UnsupportedField
},
// ...
];Last updated