Sample code for 30+ languages & platforms
B4X

Faire - Update Inventory Levels

See more Faire Examples

Update the inventory levels for multiple product options in one request.

Chilkat B4X Downloads

B4X
Dim success As Boolean = False

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

Dim http As ChilkatHttp
http.Initialize("http")

'  Implements the following CURL command:

'  curl -X PATCH 
'      -H "Content-Type: application/json" 
'      -H "X-FAIRE-ACCESS-TOKEN: <access_token>"
'      -d '{
'    "inventories": [
'      {
'        "sku": "vanilla-candle",
'        "current_quantity": 24,
'        "discontinued": false,
'        "backordered_until": null
'      },
'      {
'        "sku": "cinnamon-candle",
'        "current_quantity": 0,
'        "discontinued": false,
'        "backordered_until": "20190314T000915.000Z"
'      },
'      {
'        "sku": "fall-candle",
'        "current_quantity": 0,
'        "discontinued": true,
'        "backordered_until": null
'      },
'      {
'        "sku": "fall-candle",
'        "current_quantity": null,
'        "discontinued": false,
'        "backordered_until": null
'      }
'    ]
'  }' https://www.faire.com/api/v1/products/options/inventory-levels

'  Use the following online tool to generate HTTP code from a CURL command
'  Convert a cURL Command to HTTP Source Code

'  Use this online tool to generate code from sample JSON:
'  Generate Code to Create JSON

'  The following JSON is sent in the request body.

'  {
'    "inventories": [
'      {
'        "sku": "vanilla-candle",
'        "current_quantity": 24,
'        "discontinued": false,
'        "backordered_until": null
'      },
'      {
'        "sku": "cinnamon-candle",
'        "current_quantity": 0,
'        "discontinued": false,
'        "backordered_until": "20190314T000915.000Z"
'      },
'      {
'        "sku": "fall-candle",
'        "current_quantity": 0,
'        "discontinued": true,
'        "backordered_until": null
'      },
'      {
'        "sku": "fall-candle",
'        "current_quantity": null,
'        "discontinued": false,
'        "backordered_until": null
'      }
'    ]
'  }

Dim json As ChilkatJsonObject
json.Initialize
json.UpdateString("inventories[0].sku", "vanilla-candle")
json.UpdateInt("inventories[0].current_quantity", 24)
json.UpdateBool("inventories[0].discontinued", False)
json.UpdateNull("inventories[0].backordered_until")
json.UpdateString("inventories[1].sku", "cinnamon-candle")
json.UpdateInt("inventories[1].current_quantity", 0)
json.UpdateBool("inventories[1].discontinued", False)
json.UpdateString("inventories[1].backordered_until", "20190314T000915.000Z")
json.UpdateString("inventories[2].sku", "fall-candle")
json.UpdateInt("inventories[2].current_quantity", 0)
json.UpdateBool("inventories[2].discontinued", True)
json.UpdateNull("inventories[2].backordered_until")
json.UpdateString("inventories[3].sku", "fall-candle")
json.UpdateNull("inventories[3].current_quantity")
json.UpdateBool("inventories[3].discontinued", False)
json.UpdateNull("inventories[3].backordered_until")

http.SetRequestHeader("Content-Type", "application/json")
http.SetRequestHeader("X-FAIRE-ACCESS-TOKEN", "<access_token>")

Dim sbRequestBody As ChilkatStringBuilder
sbRequestBody.Initialize
json.EmitSb(sbRequestBody)

Dim resp As ChilkatHttpResponse
resp.Initialize
success = http.HttpSb("PATCH", "https://www.faire.com/api/v1/products/options/inventory-levels", sbRequestBody, "utf-8", "application/json", resp)
If success = False Then
    Log(http.LastErrorText)
    Return
End If


Dim sbResponseBody As ChilkatStringBuilder
sbResponseBody.Initialize
resp.GetBodySb(sbResponseBody)

Dim jResp As ChilkatJsonObject
jResp.Initialize
jResp.LoadSb(sbResponseBody)
jResp.EmitCompact = False

Log("Response Body:")
Log(jResp.Emit)

Dim respStatusCode As Int = resp.StatusCode
Log("Response Status Code = " & respStatusCode)
If respStatusCode >= 400 Then
    Log("Response Header:")
    Log(resp.Header)
    Log("Failed.")
    Return
End If


'  Sample JSON response:
'  (Sample code for parsing the JSON response is shown below)

'  {
'    "options": [
'      {
'        "id": "po_012",
'        "product_id": "p_ghi",
'        "active": false,
'        "deleted": false,
'        "name": "Fall Scent",
'        "sku": "fall-candle",
'        "available_quantity": 0,
'        "created_at": "20190313T000915.000Z",
'        "updated_at": "20190315T000915.000Z",
'        "variations": [
'          {
'            "name": "Scent",
'            "value": "Fall"
'          }
'        ],
'        "retail_price_cents": 599,
'        "wholesale_price_cents": 300
'      },
'      {
'        "id": "po_789",
'        "product_id": "p_def",
'        "active": false,
'        "deleted": false,
'        "name": "Cinnamon Scent",
'        "sku": "cinnamon-candle",
'        "available_quantity": 0,
'        "created_at": "20190312T000915.000Z",
'        "updated_at": "20190315T000915.000Z",
'        "backordered_until": "20190314T000915.000Z",
'        "variations": [
'          {
'            "name": "Scent",
'            "value": "Cinnamon"
'          }
'        ],
'        "retail_price_cents": 599,
'        "wholesale_price_cents": 300
'      },
'      {
'        "id": "po_456",
'        "product_id": "p_abc",
'        "active": true,
'        "deleted": false,
'        "name": "Vanilla Scent",
'        "sku": "vanilla-candle",
'        "available_quantity": 24,
'        "created_at": "20190314T000915.000Z",
'        "updated_at": "20190315T000915.000Z",
'        "variations": [
'          {
'            "name": "Scent",
'            "value": "Vanilla"
'          }
'        ],
'        "retail_price_cents": 599,
'        "wholesale_price_cents": 300
'      }
'    ]
'  }

'  Sample code for parsing the JSON response...
'  Use the following online tool to generate parsing code from sample JSON:
'  Generate Parsing Code from JSON



Dim id As String
Dim product_id As String
Dim active As Boolean
Dim deleted As Boolean
Dim name As String
Dim sku As String
Dim available_quantity As Int
Dim created_at As String
Dim updated_at As String
Dim retail_price_cents As Int
Dim wholesale_price_cents As Int
Dim backordered_until As String
Dim j As Int
Dim count_j As Int
Dim value As String

Dim i As Int = 0
Dim count_i As Int = jResp.SizeOfArray("options")
Do While i < count_i
    jResp.I = i
    id = jResp.StringOf("options[i].id")
    product_id = jResp.StringOf("options[i].product_id")
    active = jResp.BoolOf("options[i].active")
    deleted = jResp.BoolOf("options[i].deleted")
    name = jResp.StringOf("options[i].name")
    sku = jResp.StringOf("options[i].sku")
    available_quantity = jResp.IntOf("options[i].available_quantity")
    created_at = jResp.StringOf("options[i].created_at")
    updated_at = jResp.StringOf("options[i].updated_at")
    retail_price_cents = jResp.IntOf("options[i].retail_price_cents")
    wholesale_price_cents = jResp.IntOf("options[i].wholesale_price_cents")
    backordered_until = jResp.StringOf("options[i].backordered_until")
    j = 0
    count_j = jResp.SizeOfArray("options[i].variations")
    Do While j < count_j
        jResp.J = j
        name = jResp.StringOf("options[i].variations[j].name")
        value = jResp.StringOf("options[i].variations[j].value")
        j = j + 1
    Loop
    i = i + 1
Loop