Sample code for 30+ languages & platforms
Lianja

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

Lianja
llSuccess = .F.

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

loRest = createobject("CkRest")

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

loJson = createobject("CkJsonObject")
llSuccess = loJson.LoadFile("qa_data/tokens/etsy.json")
if (llSuccess = .F.) then
    ? "Failed to load previously fetched Etsy OAuth1 access token."
    release loRest
    release loJson
    return
endif

loOauth1 = createobject("CkOAuth1")

loOauth1.ConsumerKey = "app_keystring"
loOauth1.ConsumerSecret = "app_shared_secret"
loOauth1.Token = loJson.StringOf("oauth_token")
loOauth1.TokenSecret = loJson.StringOf("oauth_token_secret")
loOauth1.SignatureMethod = "HMAC-SHA1"
loOauth1.GenNonce(16)

llAutoReconnect = .T.
llTls = .T.
llSuccess = loRest.Connect("openapi.etsy.com",443,llTls,llAutoReconnect)
if (llSuccess = .F.) then
    ? loRest.LastErrorText
    release loRest
    release loJson
    release loOauth1
    return
endif

// Tell the REST object to use the OAuth1 object.
llSuccess = loRest.SetAuthOAuth1(loOauth1,.T.)

lcJsonText = '[{"product_id":1999949999,"property_values":[],"offerings":[{"offering_id":9999905883,"price":"36.23","quantity":1}]}]'

loRest.AddQueryParam("products",lcJsonText)
loRest.AddHeader("Content-Type","application/x-www-form-urlencoded")

lcJsonResponseText = loRest.FullRequestFormUrlEncoded("PUT","/v2/listings/228827035/inventory")
if (loRest.LastMethodSuccess = .F.) then
    ? loRest.LastErrorText
    release loRest
    release loJson
    release loOauth1
    return
endif

loJsonResponse = createobject("CkJsonObject")
loJsonResponse.Load(lcJsonResponseText)
loJsonResponse.EmitCompact = .F.

? loJsonResponse.Emit()

? "Response status code: " + str(loRest.ResponseStatusCode)


release loRest
release loJson
release loOauth1
release loJsonResponse