Sample code for 30+ languages & platforms
PHP Extension

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 Extension Downloads

PHP Extension
<?php

include("chilkat.php");

$success = false;

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

$rest = new CkRest();

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

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

$oauth1 = new CkOAuth1();

$oauth1->put_ConsumerKey('app_keystring');
$oauth1->put_ConsumerSecret('app_shared_secret');
$oauth1->put_Token($json->stringOf('oauth_token'));
$oauth1->put_TokenSecret($json->stringOf('oauth_token_secret'));
$oauth1->put_SignatureMethod('HMAC-SHA1');
$oauth1->GenNonce(16);

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

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

$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->get_LastMethodSuccess() == false) {
    print $rest->lastErrorText() . "\n";
    exit;
}

$jsonResponse = new CkJsonObject();
$jsonResponse->Load($jsonResponseText);
$jsonResponse->put_EmitCompact(false);

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

print 'Response status code: ' . $rest->get_ResponseStatusCode() . "\n";

?>