Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(PHP Extension) Square API - Batch Upsert Catalog ObjectsCreates or updates up to 10,000 target objects based on the provided list of objects. The target objects are grouped into batches and each batch is inserted/updated in an all-or-nothing manner. For more information, see https://developer.squareup.com/reference/square/catalog-api/batch-upsert-catalog-objects
<?php // The version number (9_5_0) should match version of the Chilkat extension used, omitting the micro-version number. // For example, if using Chilkat v9.5.0.48, then include as shown here: include("chilkat_9_5_0.php"); // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. $http = new CkHttp(); // 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": "789ff020-f723-43a9-b4b5-43b5dc1fa3dc", // "batches": [ // { // "objects": [ // { // "type": "ITEM", // "id": "#Tea", // "present_at_all_locations": true, // "item_data": { // "name": "Tea", // "description": "Hot Leaf Juice", // "category_id": "#Beverages", // "tax_ids": [ // "#SalesTax" // ], // "variations": [ // { // "type": "ITEM_VARIATION", // "id": "#Tea_Mug", // "present_at_all_locations": true, // "item_variation_data": { // "item_id": "#Tea", // "name": "Mug", // "pricing_type": "FIXED_PRICING", // "price_money": { // "amount": 150, // "currency": "USD" // } // } // } // ] // } // }, // { // "type": "ITEM", // "id": "#Coffee", // "present_at_all_locations": true, // "item_data": { // "name": "Coffee", // "description": "Hot Bean Juice", // "category_id": "#Beverages", // "tax_ids": [ // "#SalesTax" // ], // "variations": [ // { // "type": "ITEM_VARIATION", // "id": "#Coffee_Regular", // "present_at_all_locations": true, // "item_variation_data": { // "item_id": "#Coffee", // "name": "Regular", // "pricing_type": "FIXED_PRICING", // "price_money": { // "amount": 250, // "currency": "USD" // } // } // }, // { // "type": "ITEM_VARIATION", // "id": "#Coffee_Large", // "present_at_all_locations": true, // "item_variation_data": { // "item_id": "#Coffee", // "name": "Large", // "pricing_type": "FIXED_PRICING", // "price_money": { // "amount": 350, // "currency": "USD" // } // } // } // ] // } // }, // { // "type": "CATEGORY", // "id": "#Beverages", // "present_at_all_locations": true, // "category_data": { // "name": "Beverages" // } // }, // { // "type": "TAX", // "id": "#SalesTax", // "present_at_all_locations": true, // "tax_data": { // "name": "Sales Tax", // "calculation_phase": "TAX_SUBTOTAL_PHASE", // "inclusion_type": "ADDITIVE", // "percentage": "5.0", // "applies_to_custom_amounts": true, // "enabled": true // } // } // ] // } // ] // } $json = new CkJsonObject(); $json->UpdateString('idempotency_key','789ff020-f723-43a9-b4b5-43b5dc1fa3dc'); $i = 0; $json->put_I($i); $j = 0; $json->put_J($j); $json->UpdateString('batches[i].objects[j].type','ITEM'); $json->UpdateString('batches[i].objects[j].id','#Tea'); $json->UpdateBool('batches[i].objects[j].present_at_all_locations',true); $json->UpdateString('batches[i].objects[j].item_data.name','Tea'); $json->UpdateString('batches[i].objects[j].item_data.description','Hot Leaf Juice'); $json->UpdateString('batches[i].objects[j].item_data.category_id','#Beverages'); $json->UpdateString('batches[i].objects[j].item_data.tax_ids[0]','#SalesTax'); $json->UpdateString('batches[i].objects[j].item_data.variations[0].type','ITEM_VARIATION'); $json->UpdateString('batches[i].objects[j].item_data.variations[0].id','#Tea_Mug'); $json->UpdateBool('batches[i].objects[j].item_data.variations[0].present_at_all_locations',true); $json->UpdateString('batches[i].objects[j].item_data.variations[0].item_variation_data.item_id','#Tea'); $json->UpdateString('batches[i].objects[j].item_data.variations[0].item_variation_data.name','Mug'); $json->UpdateString('batches[i].objects[j].item_data.variations[0].item_variation_data.pricing_type','FIXED_PRICING'); $json->UpdateInt('batches[i].objects[j].item_data.variations[0].item_variation_data.price_money.amount',150); $json->UpdateString('batches[i].objects[j].item_data.variations[0].item_variation_data.price_money.currency','USD'); $j = $j + 1; $json->put_J($j); $json->UpdateString('batches[i].objects[j].type','ITEM'); $json->UpdateString('batches[i].objects[j].id','#Coffee'); $json->UpdateBool('batches[i].objects[j].present_at_all_locations',true); $json->UpdateString('batches[i].objects[j].item_data.name','Coffee'); $json->UpdateString('batches[i].objects[j].item_data.description','Hot Bean Juice'); $json->UpdateString('batches[i].objects[j].item_data.category_id','#Beverages'); $json->UpdateString('batches[i].objects[j].item_data.tax_ids[0]','#SalesTax'); $k = 0; $json->put_K($k); $json->UpdateString('batches[i].objects[j].item_data.variations[k].type','ITEM_VARIATION'); $json->UpdateString('batches[i].objects[j].item_data.variations[k].id','#Coffee_Regular'); $json->UpdateBool('batches[i].objects[j].item_data.variations[k].present_at_all_locations',true); $json->UpdateString('batches[i].objects[j].item_data.variations[k].item_variation_data.item_id','#Coffee'); $json->UpdateString('batches[i].objects[j].item_data.variations[k].item_variation_data.name','Regular'); $json->UpdateString('batches[i].objects[j].item_data.variations[k].item_variation_data.pricing_type','FIXED_PRICING'); $json->UpdateInt('batches[i].objects[j].item_data.variations[k].item_variation_data.price_money.amount',250); $json->UpdateString('batches[i].objects[j].item_data.variations[k].item_variation_data.price_money.currency','USD'); $k = $k + 1; $json->put_K($k); $json->UpdateString('batches[i].objects[j].item_data.variations[k].type','ITEM_VARIATION'); $json->UpdateString('batches[i].objects[j].item_data.variations[k].id','#Coffee_Large'); $json->UpdateBool('batches[i].objects[j].item_data.variations[k].present_at_all_locations',true); $json->UpdateString('batches[i].objects[j].item_data.variations[k].item_variation_data.item_id','#Coffee'); $json->UpdateString('batches[i].objects[j].item_data.variations[k].item_variation_data.name','Large'); $json->UpdateString('batches[i].objects[j].item_data.variations[k].item_variation_data.pricing_type','FIXED_PRICING'); $json->UpdateInt('batches[i].objects[j].item_data.variations[k].item_variation_data.price_money.amount',350); $json->UpdateString('batches[i].objects[j].item_data.variations[k].item_variation_data.price_money.currency','USD'); $j = $j + 1; $json->put_J($j); $json->UpdateString('batches[i].objects[j].type','CATEGORY'); $json->UpdateString('batches[i].objects[j].id','#Beverages'); $json->UpdateBool('batches[i].objects[j].present_at_all_locations',true); $json->UpdateString('batches[i].objects[j].category_data.name','Beverages'); $j = $j + 1; $json->put_J($j); $json->UpdateString('batches[i].objects[j].type','TAX'); $json->UpdateString('batches[i].objects[j].id','#SalesTax'); $json->UpdateBool('batches[i].objects[j].present_at_all_locations',true); $json->UpdateString('batches[i].objects[j].tax_data.name','Sales Tax'); $json->UpdateString('batches[i].objects[j].tax_data.calculation_phase','TAX_SUBTOTAL_PHASE'); $json->UpdateString('batches[i].objects[j].tax_data.inclusion_type','ADDITIVE'); $json->UpdateString('batches[i].objects[j].tax_data.percentage','5.0'); $json->UpdateBool('batches[i].objects[j].tax_data.applies_to_custom_amounts',true); $json->UpdateBool('batches[i].objects[j].tax_data.enabled',true); // Adds the "Authorization: Bearer ACCESS_TOKEN" header. $http->put_AuthToken('ACCESS_TOKEN'); $http->SetRequestHeader('Square-Version','2020-07-22'); $http->SetRequestHeader('Content-Type','application/json'); // This example uses the sandbox: connect.squareupsandbox.com // Production should use connect.squareup.com // resp is a CkHttpResponse $resp = $http->PostJson3('https://connect.squareupsandbox.com/v2/catalog/batch-upsert','application/json',$json); if ($http->get_LastMethodSuccess() == false) { print $http->lastErrorText() . "\n"; exit; } $sbResponseBody = new CkStringBuilder(); $resp->GetBodySb($sbResponseBody); $jResp = new CkJsonObject(); $jResp->LoadSb($sbResponseBody); $jResp->put_EmitCompact(false); print 'Response Body:' . "\n"; print $jResp->emit() . "\n"; $respStatusCode = $resp->get_StatusCode(); print 'Response Status Code = ' . $respStatusCode . "\n"; if ($respStatusCode >= 400) { print 'Response Header:' . "\n"; print $resp->header() . "\n"; print 'Failed.' . "\n"; exit; } // Sample JSON response: // (Sample code for parsing the JSON response is shown below) // { // "objects": [ // { // "type": "ITEM", // "id": "ZSDZN34NAXDLC6D5ZQMNSOUM", // "updated_at": "2017-05-10T18:48:39.798Z", // "version": 1494442119798, // "is_deleted": false, // "present_at_all_locations": true, // "item_data": { // "name": "Tea", // "description": "Hot Leaf Juice", // "category_id": "LYT72K3WGJFFCIMB63XARP3I", // "tax_ids": [ // "XHSHLHNWSI3HVI4BW5ZUZXI3" // ], // "variations": [ // { // "type": "ITEM_VARIATION", // "id": "NAYHET5R52MIYCEF34ZMAHFM", // "updated_at": "2017-05-10T18:48:39.798Z", // "version": 1494442119798, // "is_deleted": false, // "present_at_all_locations": true, // "item_variation_data": { // "item_id": "ZSDZN34NAXDLC6D5ZQMNSOUM", // "name": "Mug", // "ordinal": 0, // "pricing_type": "FIXED_PRICING", // "price_money": { // "amount": 150, // "currency": "USD" // } // } // } // ] // } // }, // { // "type": "ITEM", // "id": "PJMCEBHHUS3OKDB6PYUHLCPP", // "updated_at": "2017-05-10T18:48:39.798Z", // "version": 1494442119798, // "is_deleted": false, // "present_at_all_locations": true, // "item_data": { // "name": "Coffee", // "description": "Hot Bean Juice", // "category_id": "LYT72K3WGJFFCIMB63XARP3I", // "tax_ids": [ // "XHSHLHNWSI3HVI4BW5ZUZXI3" // ], // "variations": [ // { // "type": "ITEM_VARIATION", // "id": "OTYDX45SPG7LJQUVCBZI4INH", // "updated_at": "2017-05-10T18:48:39.798Z", // "version": 1494442119798, // "is_deleted": false, // "present_at_all_locations": true, // "item_variation_data": { // "item_id": "PJMCEBHHUS3OKDB6PYUHLCPP", // "name": "Regular", // "ordinal": 0, // "pricing_type": "FIXED_PRICING", // "price_money": { // "amount": 250, // "currency": "USD" // } // } // }, // { // "type": "ITEM_VARIATION", // "id": "GZDA3JB37FYVOPI4AOEBOITI", // "updated_at": "2017-05-10T18:48:39.798Z", // "version": 1494442119798, // "is_deleted": false, // "present_at_all_locations": true, // "item_variation_data": { // "item_id": "PJMCEBHHUS3OKDB6PYUHLCPP", // "name": "Large", // "ordinal": 1, // "pricing_type": "FIXED_PRICING", // "price_money": { // "amount": 350, // "currency": "USD" // } // } // } // ] // } // }, // { // "type": "CATEGORY", // "id": "LYT72K3WGJFFCIMB63XARP3I", // "updated_at": "2017-05-10T18:48:39.798Z", // "version": 1494442119798, // "is_deleted": false, // "present_at_all_locations": true, // "category_data": { // "name": "Beverages" // } // }, // { // "type": "TAX", // "id": "XHSHLHNWSI3HVI4BW5ZUZXI3", // "updated_at": "2017-05-10T18:48:39.798Z", // "version": 1494442119798, // "is_deleted": false, // "present_at_all_locations": true, // "tax_data": { // "name": "Sales Tax", // "calculation_phase": "TAX_SUBTOTAL_PHASE", // "inclusion_type": "ADDITIVE", // "percentage": "5.0", // "applies_to_custom_amounts": true, // "enabled": true // } // } // ], // "id_mappings": [ // { // "client_object_id": "#Tea", // "object_id": "ZSDZN34NAXDLC6D5ZQMNSOUM" // }, // { // "client_object_id": "#Coffee", // "object_id": "PJMCEBHHUS3OKDB6PYUHLCPP" // }, // { // "client_object_id": "#Beverages", // "object_id": "LYT72K3WGJFFCIMB63XARP3I" // }, // { // "client_object_id": "#SalesTax", // "object_id": "XHSHLHNWSI3HVI4BW5ZUZXI3" // }, // { // "client_object_id": "#Tea_Mug", // "object_id": "NAYHET5R52MIYCEF34ZMAHFM" // }, // { // "client_object_id": "#Coffee_Regular", // "object_id": "OTYDX45SPG7LJQUVCBZI4INH" // }, // { // "client_object_id": "#Coffee_Large", // "object_id": "GZDA3JB37FYVOPI4AOEBOITI" // } // ] // } // Sample code for parsing the JSON response... // Use the following online tool to generate parsing code from sample JSON: // Generate Parsing Code from JSON $i = 0; $count_i = $jResp->SizeOfArray('objects'); while ($i < $count_i) { $jResp->put_I($i); $v_type = $jResp->stringOf('objects[i].type'); $id = $jResp->stringOf('objects[i].id'); $updated_at = $jResp->stringOf('objects[i].updated_at'); $version = $jResp->IntOf('objects[i].version'); $is_deleted = $jResp->BoolOf('objects[i].is_deleted'); $present_at_all_locations = $jResp->BoolOf('objects[i].present_at_all_locations'); $item_dataName = $jResp->stringOf('objects[i].item_data.name'); $item_dataDescription = $jResp->stringOf('objects[i].item_data.description'); $item_dataCategory_id = $jResp->stringOf('objects[i].item_data.category_id'); $category_dataName = $jResp->stringOf('objects[i].category_data.name'); $tax_dataName = $jResp->stringOf('objects[i].tax_data.name'); $tax_dataCalculation_phase = $jResp->stringOf('objects[i].tax_data.calculation_phase'); $tax_dataInclusion_type = $jResp->stringOf('objects[i].tax_data.inclusion_type'); $tax_dataPercentage = $jResp->stringOf('objects[i].tax_data.percentage'); $tax_dataApplies_to_custom_amounts = $jResp->BoolOf('objects[i].tax_data.applies_to_custom_amounts'); $tax_dataEnabled = $jResp->BoolOf('objects[i].tax_data.enabled'); $j = 0; $count_j = $jResp->SizeOfArray('objects[i].item_data.tax_ids'); while ($j < $count_j) { $jResp->put_J($j); $strVal = $jResp->stringOf('objects[i].item_data.tax_ids[j]'); $j = $j + 1; } $j = 0; $count_j = $jResp->SizeOfArray('objects[i].item_data.variations'); while ($j < $count_j) { $jResp->put_J($j); $v_type = $jResp->stringOf('objects[i].item_data.variations[j].type'); $id = $jResp->stringOf('objects[i].item_data.variations[j].id'); $updated_at = $jResp->stringOf('objects[i].item_data.variations[j].updated_at'); $version = $jResp->IntOf('objects[i].item_data.variations[j].version'); $is_deleted = $jResp->BoolOf('objects[i].item_data.variations[j].is_deleted'); $present_at_all_locations = $jResp->BoolOf('objects[i].item_data.variations[j].present_at_all_locations'); $item_variation_dataItem_id = $jResp->stringOf('objects[i].item_data.variations[j].item_variation_data.item_id'); $item_variation_dataName = $jResp->stringOf('objects[i].item_data.variations[j].item_variation_data.name'); $item_variation_dataOrdinal = $jResp->IntOf('objects[i].item_data.variations[j].item_variation_data.ordinal'); $item_variation_dataPricing_type = $jResp->stringOf('objects[i].item_data.variations[j].item_variation_data.pricing_type'); $item_variation_dataPrice_moneyAmount = $jResp->IntOf('objects[i].item_data.variations[j].item_variation_data.price_money.amount'); $item_variation_dataPrice_moneyCurrency = $jResp->stringOf('objects[i].item_data.variations[j].item_variation_data.price_money.currency'); $j = $j + 1; } $i = $i + 1; } $i = 0; $count_i = $jResp->SizeOfArray('id_mappings'); while ($i < $count_i) { $jResp->put_I($i); $client_object_id = $jResp->stringOf('id_mappings[i].client_object_id'); $object_id = $jResp->stringOf('id_mappings[i].object_id'); $i = $i + 1; } ?> |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.