Sample code for 30+ languages & platforms
Dart

Upsert Catalog Object

See more Square Examples

Creates or updates the target CatalogObject.

Chilkat Dart Downloads

Dart
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 https://connect.squareup.com/v2/catalog/object \
  //   -X POST \
  //   -H 'Square-Version: 2020-07-22' \
  //   -H 'Authorization: Bearer ACCESS_TOKEN' \
  //   -H 'Content-Type: application/json' \
  //   -d '{
  //     "idempotency_key": "af3d1afc-7212-4300-b463-0bfc5314a5ae",
  //     "object": {
  //       "type": "ITEM",
  //       "id": "#Cocoa",
  //       "item_data": {
  //         "name": "Cocoa",
  //         "description": "Hot chocolate",
  //         "abbreviation": "Ch"
  //       }
  //     }
  //   }'

  // 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.

  // {
  //   "idempotency_key": "af3d1afc-7212-4300-b463-0bfc5314a5ae",
  //   "object": {
  //     "type": "ITEM",
  //     "id": "#Cocoa",
  //     "item_data": {
  //       "name": "Cocoa",
  //       "description": "Hot chocolate",
  //       "abbreviation": "Ch"
  //     }
  //   }
  // }

  final json = CkJsonObject();
  json.updateString('idempotency_key', 'af3d1afc-7212-4300-b463-0bfc5314a5ae');
  json.updateString('object.type', 'ITEM');
  json.updateString('object.id', '#Cocoa');
  json.updateString('object.item_data.name', 'Cocoa');
  json.updateString('object.item_data.description', 'Hot chocolate');
  json.updateString('object.item_data.abbreviation', 'Ch');

  // Adds the "Authorization: Bearer ACCESS_TOKEN" header.
  http.authToken = 'ACCESS_TOKEN';
  http.setRequestHeader('Square-Version', '2020-07-22');

  // This example uses the sandbox: connect.squareupsandbox.com
  // Production should use connect.squareup.com
  final resp = CkHttpResponse();
  try {
    http.httpJson('POST', 'https://connect.squareupsandbox.com/v2/catalog/object', json, '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)

  // {
  //   "catalog_object": {
  //     "type": "ITEM",
  //     "id": "7SB3ZQYJ5GDMVFL7JK46JCHT",
  //     "updated_at": "2016-11-16T22:32:42.996Z",
  //     "version": 1479335562996,
  //     "is_deleted": false,
  //     "item_data": {
  //       "name": "Cocoa",
  //       "description": "Hot chocolate",
  //       "abbreviation": "Ch"
  //     }
  //   },
  //   "id_mappings": [
  //     {
  //       "client_object_id": "#Cocoa",
  //       "object_id": "7SB3ZQYJ5GDMVFL7JK46JCHT"
  //     }
  //   ]
  // }

  // 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 clientObjectId = '';
  var objectId = '';

  final catalogObjectType = jResp.stringOf('catalog_object.type');
  final catalogObjectId = jResp.stringOf('catalog_object.id');
  final catalogObjectUpdatedAt = jResp.stringOf('catalog_object.updated_at');
  final catalogObjectVersion = jResp.intOf('catalog_object.version');
  final catalogObjectItemDataName = jResp.stringOf('catalog_object.item_data.name');
  final catalogObjectItemDataDescription = jResp.stringOf('catalog_object.item_data.description');
  final catalogObjectItemDataAbbreviation = jResp.stringOf('catalog_object.item_data.abbreviation');
  var i = 0;
  final countI = jResp.sizeOfArray('id_mappings');
  while (i < countI) {
    jResp.i = i;
    clientObjectId = jResp.stringOf('id_mappings[i].client_object_id');
    objectId = jResp.stringOf('id_mappings[i].object_id');
    i++;
  }
}