Dart
Dart
Faire - Update Inventory Levels
See more Faire Examples
Update the inventory levels for multiple product options in one request.Chilkat Dart Downloads
import 'package:chilkat/chilkat.dart';
void main() {
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
final http = CkHttp();
// 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
// }
// ]
// }
final json = CkJsonObject();
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>');
final sbRequestBody = CkStringBuilder();
json.emitSb(sbRequestBody);
final resp = CkHttpResponse();
try {
http.httpSb('PATCH', 'https://www.faire.com/api/v1/products/options/inventory-levels', sbRequestBody, 'utf-8', 'application/json', resp);
} on ChilkatException catch (e) {
print(e.lastErrorText);
return;
}
final sbResponseBody = CkStringBuilder();
resp.getBodySb(sbResponseBody);
final jResp = CkJsonObject();
jResp.loadSb(sbResponseBody);
jResp.emitCompact = false;
print('Response Body:');
print(jResp.emit());
final respStatusCode = resp.statusCode;
print('Response Status Code = $respStatusCode');
if (respStatusCode >= 400) {
print('Response Header:');
print(resp.header);
print('Failed.');
return;
}
// 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
var id = '';
var productId = '';
var name = '';
var sku = '';
var availableQuantity = 0;
var createdAt = '';
var updatedAt = '';
var retailPriceCents = 0;
var wholesalePriceCents = 0;
var backorderedUntil = '';
var j = 0;
var countJ = 0;
var value = '';
var i = 0;
final countI = jResp.sizeOfArray('options');
while (i < countI) {
jResp.i = i;
id = jResp.stringOf('options[i].id');
productId = jResp.stringOf('options[i].product_id');
jResp.boolOf('options[i].active');
jResp.boolOf('options[i].deleted');
name = jResp.stringOf('options[i].name');
sku = jResp.stringOf('options[i].sku');
availableQuantity = jResp.intOf('options[i].available_quantity');
createdAt = jResp.stringOf('options[i].created_at');
updatedAt = jResp.stringOf('options[i].updated_at');
retailPriceCents = jResp.intOf('options[i].retail_price_cents');
wholesalePriceCents = jResp.intOf('options[i].wholesale_price_cents');
backorderedUntil = jResp.stringOf('options[i].backordered_until');
j = 0;
countJ = jResp.sizeOfArray('options[i].variations');
while (j < countJ) {
jResp.j = j;
name = jResp.stringOf('options[i].variations[j].name');
value = jResp.stringOf('options[i].variations[j].value');
j++;
}
i++;
}
}