[Solved]-XML submitted just fine to Amazon MWS but price not being updated

0šŸ‘

āœ…

I ended up contacting Amazon api support and they found out that it takes up to 15 minutes for the price to change. Also I had another script that uploaded new products and updated the inventory & price for existing productsā€¦this script was competing with my repricing script.

I resolved the issue by changing how the second script updates price for existing products.

šŸ‘¤Chris

5šŸ‘

There are a couple of possible reasons, listed roughly in the order of likelihood:

1. Amazon is slower to update values than they say they are. It is possible that although the feed was successful, there is still a period of time before that change reflects on Amazon (even changing values from SellerCentral comes with a messages that it isnā€™t instant).
Wait a few minutes and see if the change eventually shows up.


2. You could have an alternate repricing service still active. If you are currently using another repricer for this SKU, it might be competing with your attempts and reverting the price based on its own ruleset.
Itā€™s possible to use the GetFeedSubmissionList call to see if another _POST_PRODUCT_PRICING_DATA_ feed was submitted after yours (though with no way to view the submitted contents).


3. There might be a conflict with the min and max prices on the SKU (whether you set them or not), and the price you tried to set is outside of the allowed range. This is a result of one of Amazonā€™s policies requiring new and updated SKUā€™s to have those set or it uses a default criteria.

In our continued effort to reduce price error risks to sellers and to avoid potentially negative customer experiences, starting on January 14, 2015, you will not be able to use your Seller Central preferences to select a blanket ā€œopt-outā€ from all potential low- and high-pricing error rules. Instead, you will need to set a minimum and maximum allowed selling price for each product in your inventory if you do not want Amazonā€™s default potential pricing error rules to apply to that product.

I canā€™t find an announcement page on this so it may have been an email, but it is quoted as such on the forums

Under those circumstances the feed will report back successful (because its references/format are correct), but the price change will silently fail because of the price range limits that are set.
You can verify if this is your issue by viewing the SKU under SellerCentral Manage Inventory page. You may have to turn on the min/max columns to view current values depending on your preferences set for that page.

Unfortunately, there is no way to pull min/max prices on inventory items to know if this will be an issue ahead of time:

Dear Seller,

I am Sharon from Amazon Seller Support and I will be assisting you with your concern today.
From the content of your email, I understand that you are concerned if thereā€™s any report where you can download the report for ā€˜Minimum Priceā€™ and ā€˜Maximum Priceā€™.
I regret to inform you that as of now the reports which are available will only provide information for ā€˜standard_priceā€™ and ā€˜list_priceā€™.
I understand that this is a disappointment for you but please understand that as of not this feature of including ā€˜Minimum Priceā€™ and ā€˜Maximum Priceā€™ in the inventory reports has not been included and I sincerely apologize for all the inconvenience caused to you in this regard.

via support ticket to Amazon MWS team, Jul 03, 2016


4. It could be possible Amazon does not allow the feed to update a price during an active promotion. You should be able to check if an item is on sale by viewing the SellerCentral Manage Inventory page, where the ā€œpriceā€ column would be bordered in green.
Seems unlikely as they require the ā€œStandardPriceā€ element to be provided with the ā€œSaleā€ element, but Amazonā€™s own ā€œAutomate Pricingā€ tool lists it as a possible reason for the tool failing.


5. You are applying the price update to the wrong marketplace.
If the id provided to the call under MarketplaceIdList=[MARKETPLACE_ID], is for a different marketplace than the one you are checking, you wonā€™t see the price change.
Amazon does fail the feed submission request if you submit to a marketplace you do not have access to, so this may not be the issue if you only have one marketplace.


6. You are looking for the new price in the wrong spot.
If you are looking under the SellerCentral Manage Inventory page, make sure you are looking at the ā€œPriceā€ column and not the ā€œLowest Priceā€ column.
If you are looking at the productā€™s detail or offer page (on Amazonā€™s storefront), make sure you are looking at your offer. You may not be the main offer shown on the detail page or the top offer shown on the offer listing page.
And of course, make sure you have the right SKU / ASIN.


7. This is for a different feed, but a user has reported that Amazon just doesnā€™t update information sometimes, requiring the feed to be resent.


There is an alternate feed you can try using to update price information _POST_FLAT_FILE_INVLOADER_DATA_, but it is a flat file type (tab delimited) so your XML schema would not transfer over. Probably only worth trying if you think the issue is related to the specific feed youā€™re using.

šŸ‘¤phaze0

0šŸ‘

I donā€™t know Python but your XML looks ok, here is my PHP code which I use to do price change for last 5 years and it works fine. I donā€™t know if this helps you as itā€™s PHP.

$feed = <<< EOD
<?xml version="1.0" encoding="utf-8"?>
<AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="amzn-envelope.xsd">
<Header>
<DocumentVersion>1.01</DocumentVersion>
<MerchantIdentifier>$merchant_token</MerchantIdentifier>
</Header>
<MessageType>Price</MessageType>
<Message>
  <MessageID>1</MessageID>
  <Price>
    <SKU>$sku</SKU>
    <StandardPrice currency="$currency">$new_price</StandardPrice>
  </Price>
</Message>
</AmazonEnvelope>
EOD;
    $feed = trim($feed);

    $feedHandle = @fopen('php://temp', 'rw+');
    fwrite($feedHandle, $feed);
    rewind($feedHandle);
    $parameters = array(
        'Merchant' => $MERCHANT_ID,
        'MarketplaceIdList' => $marketplaceIdArray,
        'FeedType' => '_POST_PRODUCT_PRICING_DATA_',
        'FeedContent' => $feedHandle,
        'PurgeAndReplace' => false, //Leave this PurgeAndReplace to false so that it want replace whole product in amazon inventory
        'ContentMd5' => base64_encode(md5(stream_get_contents($feedHandle), true))
    );
    rewind($feedHandle);

    $request = new MarketplaceWebService_Model_SubmitFeedRequest($parameters);
    $return_feed = invokeSubmitFeed($service, $request, $price_change_info_log);

    fclose($feedHandle);

Leave a comment