Quantcast
Channel: MWS Feeds Update Quantities in php - Amazon - Stack Overflow
Viewing all articles
Browse latest Browse all 2

MWS Feeds Update Quantities in php - Amazon

$
0
0

it's a few days that I am trying to update the quantity of inventory on Amazon through php and Amazon MWS in php (without using MWS APIs because in my opinion are out of dated)

Here is my code:

$param = array();    $param['AWSAccessKeyId']     = $this->CHIAVE_ACCESSO;    $param['Action']             = 'SubmitFeed';    $param['Merchant']           = $this->SELLER_ID;    $param['FeedType']       = '_POST_INVENTORY_AVAILABILITY_DATA_';    $param['SignatureMethod']    = 'HmacSHA256';    $param['SignatureVersion']   = '2';    $param['Timestamp']          = gmdate("Y-m-d\TH:i:s.\\0\\0\\0\\Z", time());    $param['Version']            = '2009-01-01';    $params['MarketplaceId.Id.1'] = $this->MARCKETPLACE_IT;    $params['MarketplaceId.Id.2'] = $this->MARCKETPLACE_UK;    $params['MarketplaceId.Id.3'] = $this->MARCKETPLACE_ES;    $params['MarketplaceId.Id.4'] = $this->MARCKETPLACE_DE;    $params['MarketplaceId.Id.5'] = $this->MARCKETPLACE_FR;    $param['PurgeAndReplace']    = 'false';    foreach ($param as $key => $val) {        $key = str_replace("%7E", "~", rawurlencode($key));        $val = str_replace("%7E", "~", rawurlencode($val));        $url[] = "{$key}={$val}";    }    $amazon_feed = '<?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>' .$this->SELLER_ID. '</MerchantIdentifier></Header><MessageType>Inventory</MessageType><Message><MessageID>1</MessageID><OperationType>Update</OperationType><Inventory><SKU>'.$sku.'</SKU><Quantity>'.$qty.'</Quantity></Inventory></Message></AmazonEnvelope>';    sort($url);    $arr   = implode('&', $url);    $sign  = 'POST' . "\n";    $sign .= 'mws.amazonservices.it' . "\n";    $sign .= '/Feeds/'.$param['Version'].'' . "\n";    $sign .= $arr;    $signature      = hash_hmac("sha256", $sign, $this->secretKey, true);    $httpHeader     =   array();    $httpHeader[]   =   'Transfer-Encoding: chunked';    $httpHeader[]   =   'Content-Type: application/xml';    $httpHeader[]   =   'Content-MD5: ' . base64_encode(md5($amazon_feed, true));    //$httpHeader[]   =   'x-amazon-user-agent: MyScriptName/1.0';    $httpHeader[]   =   'Expect:';    $httpHeader[]   =   'Accept:';    $signature      = urlencode(base64_encode($signature));    $link  = "https://mws.amazonservices.it/Feeds/".$param['Version']."?";    $link .= $arr . "&Signature=" . $signature;    echo $link;    $ch = curl_init($link);    curl_setopt($ch, CURLOPT_HTTPHEADER, $httpHeader);    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);    curl_setopt($ch, CURLOPT_POST, 1);    curl_setopt($ch, CURLOPT_POSTFIELDS, $amazon_feed);    $response = curl_exec($ch);    $info = curl_getinfo($ch);    $errors=curl_error($ch);    curl_close($ch);    echo '<pre>';    print_r($response); //xml response

The response is

50691017150_POST_INVENTORY_AVAILABILITY_DATA_2016-12-15T10:00:09+00:00_SUBMITTED_47843855-c5fb-4db9-bc3c-1ccd0aff4169

But When I go on the Amazon Inventory I cannot see any changes. I've tried also to wait some days but nothing changes.What I'm doing wrong?

Thanks in advance for help!

Using MWS Scratchpad the error I have is the following

<?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.02</DocumentVersion><MerchantIdentifier>A2PDC8GCZHAL2D</MerchantIdentifier></Header><MessageType>ProcessingReport</MessageType><Message><MessageID>1</MessageID><ProcessingReport><DocumentTransactionID>50691017150</DocumentTransactionID><StatusCode>Complete</StatusCode><ProcessingSummary><MessagesProcessed>1</MessagesProcessed><MessagesSuccessful>0</MessagesSuccessful><MessagesWithError>1</MessagesWithError><MessagesWithWarning>0</MessagesWithWarning></ProcessingSummary><Result><MessageID>1</MessageID><ResultCode>Error</ResultCode><ResultMessageCode>13013</ResultMessageCode><ResultDescription>This SKU does not exist in the Amazon.com catalog. Your inventory data was not processed. For reasons why, and help fixing this, see http://sellercentral.amazon.it/gp/errorcode/13013</ResultDescription><AdditionalInfo><SKU>887235757035</SKU></AdditionalInfo></Result></ProcessingReport></Message>

but this sku exists in my catalog


Viewing all articles
Browse latest Browse all 2

Latest Images

Trending Articles





Latest Images