Sample code for 30+ languages & platforms
PHP ActiveX

Update an Inventory Listing using OAuth1 Authentication

See more Etsy Examples

Updates an inventory listing. This example uses OAuth1 authentication instead of providing an api_key=MY_ETSY_KEYSTRING query parameter.

Chilkat PHP ActiveX Downloads

PHP ActiveX
<?php

$success = 0;

// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

$rest = new COM("Chilkat.Rest");

// See this example for getting an OAuth1 token for Etsy

$json = new COM("Chilkat.JsonObject");
$success = $json->LoadFile('qa_data/tokens/etsy.json');
if ($success == 0) {
    print 'Failed to load previously fetched Etsy OAuth1 access token.' . "\n";
    exit;
}

$oauth1 = new COM("Chilkat.OAuth1");

$oauth1->ConsumerKey = 'app_keystring';
$oauth1->ConsumerSecret = 'app_shared_secret';
$oauth1->Token = $json->stringOf('oauth_token');
$oauth1->TokenSecret = $json->stringOf('oauth_token_secret');
$oauth1->SignatureMethod = 'HMAC-SHA1';
$oauth1->GenNonce(16);

$autoReconnect = 1;
$tls = 1;
$success = $rest->Connect('openapi.etsy.com',443,$tls,$autoReconnect);
if ($success == 0) {
    print $rest->LastErrorText . "\n";
    exit;
}

// Tell the REST object to use the OAuth1 object.
$success = $rest->SetAuthOAuth1($oauth1,1);

$jsonText = '[{\'product_id\':1999949999,\'property_values\':[],\'offerings\':[{\'offering_id\':9999905883,\'price\':\'36.23\',\'quantity\':1}]}]';

$rest->AddQueryParam('products',$jsonText);
$rest->AddHeader('Content-Type','application/x-www-form-urlencoded');

$jsonResponseText = $rest->fullRequestFormUrlEncoded('PUT','/v2/listings/228827035/inventory');
if ($rest->LastMethodSuccess == 0) {
    print $rest->LastErrorText . "\n";
    exit;
}

$jsonResponse = new COM("Chilkat.JsonObject");
$jsonResponse->Load($jsonResponseText);
$jsonResponse->EmitCompact = 0;

print $jsonResponse->emit() . "\n";

print 'Response status code: ' . $rest->ResponseStatusCode . "\n";

?>