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
(Perl) Shopify Create a new product with multiple product variantsCreate a new product with multiple product variants
use chilkat(); $rest = chilkat::CkRest->new(); $rest->SetAuthBasic("SHOPIFY_PRIVATE_API_KEY","SHOPIFY_PRIVATE_API_KEY"); $success = $rest->Connect("chilkat.myshopify.com",443,1,1); if ($success != 1) { print $rest->lastErrorText() . "\r\n"; exit; } # The following code creates the JSON request body. # The JSON created by this code is shown below. $jsonReq = chilkat::CkJsonObject->new(); $jsonReq->UpdateString("product.title","Burton Custom Freestyle 151"); $jsonReq->UpdateString("product.body_html","<strong>Good snowboard!</strong>"); $jsonReq->UpdateString("product.vendor","Burton"); $jsonReq->UpdateString("product.product_type","Snowboard"); $jsonReq->UpdateString("product.variants[0].option1","First"); $jsonReq->UpdateString("product.variants[0].price","10.00"); $jsonReq->UpdateString("product.variants[0].sku","123"); $jsonReq->UpdateString("product.variants[1].option1","Second"); $jsonReq->UpdateString("product.variants[1].price","20.00"); $jsonReq->UpdateString("product.variants[1].sku","123"); # The JSON request body created by the above code: # { # "product": { # "title": "Burton Custom Freestyle 151", # "body_html": "<strong>Good snowboard!<\/strong>", # "vendor": "Burton", # "product_type": "Snowboard", # "variants": [ # { # "option1": "First", # "price": "10.00", # "sku": "123" # }, # { # "option1": "Second", # "price": "20.00", # "sku": "123" # } # ] # } # } $sbReq = chilkat::CkStringBuilder->new(); $jsonReq->EmitSb($sbReq); $rest->AddHeader("Content-Type","application/json"); $sbJson = chilkat::CkStringBuilder->new(); $success = $rest->FullRequestSb("POST","/admin/products.json ",$sbReq,$sbJson); if ($success != 1) { print $rest->lastErrorText() . "\r\n"; exit; } if ($rest->get_ResponseStatusCode() != 201) { print "Received error response code: " . $rest->get_ResponseStatusCode() . "\r\n"; print "Response body:" . "\r\n"; print $sbJson->getAsString() . "\r\n"; exit; } $json = chilkat::CkJsonObject->new(); $json->LoadSb($sbJson); # The following code parses the JSON response. # A sample JSON response is shown below the sample code. $productId = $json->IntOf("product.id"); $productTitle = $json->stringOf("product.title"); $productBody_html = $json->stringOf("product.body_html"); $productVendor = $json->stringOf("product.vendor"); $productProduct_type = $json->stringOf("product.product_type"); $productCreated_at = $json->stringOf("product.created_at"); $productHandle = $json->stringOf("product.handle"); $productUpdated_at = $json->stringOf("product.updated_at"); $productPublished_at = $json->stringOf("product.published_at"); $productTemplate_suffix = $json->IsNullOf("product.template_suffix"); $productPublished_scope = $json->stringOf("product.published_scope"); $productTags = $json->stringOf("product.tags"); $productImage = $json->IsNullOf("product.image"); $i = 0; $count_i = $json->SizeOfArray("product.variants"); while ($i < $count_i) { $json->put_I($i); $id = $json->IntOf("product.variants[i].id"); $product_id = $json->IntOf("product.variants[i].product_id"); $title = $json->stringOf("product.variants[i].title"); $price = $json->stringOf("product.variants[i].price"); $sku = $json->stringOf("product.variants[i].sku"); $position = $json->IntOf("product.variants[i].position"); $grams = $json->IntOf("product.variants[i].grams"); $inventory_policy = $json->stringOf("product.variants[i].inventory_policy"); $compare_at_price = $json->IsNullOf("product.variants[i].compare_at_price"); $fulfillment_service = $json->stringOf("product.variants[i].fulfillment_service"); $inventory_management = $json->IsNullOf("product.variants[i].inventory_management"); $option1 = $json->stringOf("product.variants[i].option1"); $option2 = $json->IsNullOf("product.variants[i].option2"); $option3 = $json->IsNullOf("product.variants[i].option3"); $created_at = $json->stringOf("product.variants[i].created_at"); $updated_at = $json->stringOf("product.variants[i].updated_at"); $taxable = $json->BoolOf("product.variants[i].taxable"); $barcode = $json->IsNullOf("product.variants[i].barcode"); $image_id = $json->IsNullOf("product.variants[i].image_id"); $inventory_quantity = $json->IntOf("product.variants[i].inventory_quantity"); $weight = $json->IntOf("product.variants[i].weight"); $weight_unit = $json->stringOf("product.variants[i].weight_unit"); $old_inventory_quantity = $json->IntOf("product.variants[i].old_inventory_quantity"); $requires_shipping = $json->BoolOf("product.variants[i].requires_shipping"); $i = $i + 1; } $i = 0; $count_i = $json->SizeOfArray("product.options"); while ($i < $count_i) { $json->put_I($i); $id = $json->IntOf("product.options[i].id"); $product_id = $json->IntOf("product.options[i].product_id"); $name = $json->stringOf("product.options[i].name"); $position = $json->IntOf("product.options[i].position"); $j = 0; $count_j = $json->SizeOfArray("product.options[i].values"); while ($j < $count_j) { $json->put_J($j); $strVal = $json->stringOf("product.options[i].values[j]"); $j = $j + 1; } $i = $i + 1; } $i = 0; $count_i = $json->SizeOfArray("product.images"); while ($i < $count_i) { $json->put_I($i); $i = $i + 1; } # A sample JSON response body that is parsed by the above code: # { # "product": { # "id": 1071559755, # "title": "Burton Custom Freestyle 151", # "body_html": "<strong>Good snowboard!<\/strong>", # "vendor": "Burton", # "product_type": "Snowboard", # "created_at": "2017-09-22T14:48:54-04:00", # "handle": "burton-custom-freestyle-151", # "updated_at": "2017-09-22T14:48:55-04:00", # "published_at": "2017-09-22T14:48:54-04:00", # "template_suffix": null, # "published_scope": "global", # "tags": "", # "variants": [ # { # "id": 1070325225, # "product_id": 1071559755, # "title": "First", # "price": "10.00", # "sku": "123", # "position": 1, # "grams": 0, # "inventory_policy": "deny", # "compare_at_price": null, # "fulfillment_service": "manual", # "inventory_management": null, # "option1": "First", # "option2": null, # "option3": null, # "created_at": "2017-09-22T14:48:54-04:00", # "updated_at": "2017-09-22T14:48:54-04:00", # "taxable": true, # "barcode": null, # "image_id": null, # "inventory_quantity": 1, # "weight": 0.0, # "weight_unit": "lb", # "old_inventory_quantity": 1, # "requires_shipping": true # }, # { # "id": 1070325226, # "product_id": 1071559755, # "title": "Second", # "price": "20.00", # "sku": "123", # "position": 2, # "grams": 0, # "inventory_policy": "deny", # "compare_at_price": null, # "fulfillment_service": "manual", # "inventory_management": null, # "option1": "Second", # "option2": null, # "option3": null, # "created_at": "2017-09-22T14:48:54-04:00", # "updated_at": "2017-09-22T14:48:54-04:00", # "taxable": true, # "barcode": null, # "image_id": null, # "inventory_quantity": 1, # "weight": 0.0, # "weight_unit": "lb", # "old_inventory_quantity": 1, # "requires_shipping": true # } # ], # "options": [ # { # "id": 1022828915, # "product_id": 1071559755, # "name": "Title", # "position": 1, # "values": [ # "First", # "Second" # ] # } # ], # "images": [ # ], # "image": null # } # } print "Example Completed." . "\r\n"; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.