PHP ActiveX
PHP ActiveX
WiX Create Product
See more WiX Examples
Creates a new product.Note: If you get a 403 error response, try refreshing the access token.
Chilkat PHP ActiveX Downloads
<?php
$success = 0;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
$http = new COM("Chilkat.Http");
// Implements the following CURL command:
// curl -X POST \
// 'https://www.wixapis.com/stores/v1/products' \
// --data-binary '{
// "product": {
// "name": "T-shirt",
// "productType": "physical",
// "priceData": {
// "price": 10.5
// },
// "description": "nice summer t-shirt",
// "sku": "123df",
// "visible": false,
// "weight": 0.2,
// "discount": {
// "type": "AMOUNT",
// "value": 1
// },
// "manageVariants": true,
// "productOptions": [
// {
// "name": "Size",
// "choices": [
// {
// "value": "S",
// "description": "S"
// },
// {
// "value": "L",
// "description": "L"
// }
// ]
// }
// ]
// }
// }' \
// -H 'Content-Type: application/json' \
// -H 'Authorization: <AUTH>'
// 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.
// {
// "product": {
// "name": "T-shirt",
// "productType": "physical",
// "priceData": {
// "price": 10.5
// },
// "description": "nice summer t-shirt",
// "sku": "123df",
// "visible": false,
// "weight": 0.2,
// "discount": {
// "type": "AMOUNT",
// "value": 1
// },
// "manageVariants": true,
// "productOptions": [
// {
// "name": "Size",
// "choices": [
// {
// "value": "S",
// "description": "S"
// },
// {
// "value": "L",
// "description": "L"
// }
// ]
// }
// ]
// }
// }
$json = new COM("Chilkat.JsonObject");
$json->UpdateString('product.name','T-shirt');
$json->UpdateString('product.productType','physical');
$json->UpdateNumber('product.priceData.price','10.5');
$json->UpdateString('product.description','nice summer t-shirt');
$json->UpdateString('product.sku','123df');
$json->UpdateBool('product.visible',0);
$json->UpdateNumber('product.weight','0.2');
$json->UpdateString('product.discount.type','AMOUNT');
$json->UpdateInt('product.discount.value',1);
$json->UpdateBool('product.manageVariants',1);
$json->UpdateString('product.productOptions[0].name','Size');
$json->UpdateString('product.productOptions[0].choices[0].value','S');
$json->UpdateString('product.productOptions[0].choices[0].description','S');
$json->UpdateString('product.productOptions[0].choices[1].value','L');
$json->UpdateString('product.productOptions[0].choices[1].description','L');
$http->AuthToken = 'ACCESS_TOKEN';
$resp = new COM("Chilkat.HttpResponse");
$success = $http->HttpJson('POST','https://www.wixapis.com/stores/v1/products',$json,'application/json',$resp);
if ($success == 0) {
print $http->LastErrorText . "\n";
exit;
}
$sbResponseBody = new COM("Chilkat.StringBuilder");
$resp->GetBodySb($sbResponseBody);
$jResp = new COM("Chilkat.JsonObject");
$jResp->LoadSb($sbResponseBody);
$jResp->EmitCompact = 0;
print 'Response Body:' . "\n";
print $jResp->emit() . "\n";
$respStatusCode = $resp->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)
// {
// "product": {
// "id": "e28e4ddd-6ed0-4098-a5e5-cf4bd9c4f7b5",
// "name": "T-shirt",
// "slug": "t-shirt-1",
// "visible": false,
// "productType": "physical",
// "description": "nice summer t-shirt",
// "stock": {
// "trackInventory": false,
// "inStock": true
// },
// "price": {
// "currency": "ILS",
// "price": 10.5,
// "discountedPrice": 9.5,
// "formatted": {
// "price": "10.50",
// "discountedPrice": "9.50"
// }
// },
// "priceData": {
// "currency": "ILS",
// "price": 10.5,
// "discountedPrice": 9.5,
// "formatted": {
// "price": "10.50",
// "discountedPrice": "9.50"
// }
// },
// "additionalInfoSections": [
// ],
// "ribbons": [
// ],
// "media": {
// "items": [
// ]
// },
// "customTextFields": [
// ],
// "manageVariants": true,
// "productOptions": [
// {
// "optionType": "drop_down",
// "name": "Size",
// "choices": [
// {
// "value": "S",
// "description": "S",
// "inStock": true,
// "visible": true
// },
// {
// "value": "L",
// "description": "L",
// "inStock": true,
// "visible": true
// }
// ]
// }
// ],
// "productPageUrl": {
// "base": "https://www.itsjusttooeasy123.com/",
// "path": "/product-page/t-shirt-1"
// },
// "numericId": "1567588455405000",
// "inventoryItemId": "1d71b222-912f-bf67-5a1a-30b4263b084a",
// "discount": {
// "type": "AMOUNT",
// "value": 1
// },
// "collectionIds": [
// ],
// "variants": [
// {
// "id": "00000000-0000-0001-0005-93fc95e0514a",
// "choices": {
// "Size": "S"
// },
// "variant": {
// "priceData": {
// "currency": "ILS",
// "price": 10.5,
// "discountedPrice": 9.5,
// "formatted": {
// "price": "10.50",
// "discountedPrice": "9.50"
// }
// },
// "weight": 10,
// "visible": true
// }
// },
// {
// "id": "00000000-0000-0002-0005-93fc95e0514a",
// "choices": {
// "Size": "L"
// },
// "variant": {
// "priceData": {
// "currency": "ILS",
// "price": 10.5,
// "discountedPrice": 9.5,
// "formatted": {
// "price": "10.50",
// "discountedPrice": "9.50"
// }
// },
// "visible": true
// }
// }
// ]
// }
// }
// Sample code for parsing the JSON response...
// Use the following online tool to generate parsing code from sample JSON:
// Generate Parsing Code from JSON
$productId = $jResp->stringOf('product.id');
$productName = $jResp->stringOf('product.name');
$productSlug = $jResp->stringOf('product.slug');
$productVisible = $jResp->BoolOf('product.visible');
$productProductType = $jResp->stringOf('product.productType');
$productDescription = $jResp->stringOf('product.description');
$productStockTrackInventory = $jResp->BoolOf('product.stock.trackInventory');
$productStockInStock = $jResp->BoolOf('product.stock.inStock');
$productPriceCurrency = $jResp->stringOf('product.price.currency');
$productPricePrice = $jResp->stringOf('product.price.price');
$productPriceDiscountedPrice = $jResp->stringOf('product.price.discountedPrice');
$productPriceFormattedPrice = $jResp->stringOf('product.price.formatted.price');
$productPriceFormattedDiscountedPrice = $jResp->stringOf('product.price.formatted.discountedPrice');
$productPriceDataCurrency = $jResp->stringOf('product.priceData.currency');
$productPriceDataPrice = $jResp->stringOf('product.priceData.price');
$productPriceDataDiscountedPrice = $jResp->stringOf('product.priceData.discountedPrice');
$productPriceDataFormattedPrice = $jResp->stringOf('product.priceData.formatted.price');
$productPriceDataFormattedDiscountedPrice = $jResp->stringOf('product.priceData.formatted.discountedPrice');
$productManageVariants = $jResp->BoolOf('product.manageVariants');
$productProductPageUrlBase = $jResp->stringOf('product.productPageUrl.base');
$productProductPageUrlPath = $jResp->stringOf('product.productPageUrl.path');
$productNumericId = $jResp->stringOf('product.numericId');
$productInventoryItemId = $jResp->stringOf('product.inventoryItemId');
$productDiscountType = $jResp->stringOf('product.discount.type');
$productDiscountValue = $jResp->IntOf('product.discount.value');
$i = 0;
$count_i = $jResp->SizeOfArray('product.additionalInfoSections');
while ($i < $count_i) {
$jResp->I = $i;
$i = $i + 1;
}
$i = 0;
$count_i = $jResp->SizeOfArray('product.ribbons');
while ($i < $count_i) {
$jResp->I = $i;
$i = $i + 1;
}
$i = 0;
$count_i = $jResp->SizeOfArray('product.media.items');
while ($i < $count_i) {
$jResp->I = $i;
$i = $i + 1;
}
$i = 0;
$count_i = $jResp->SizeOfArray('product.customTextFields');
while ($i < $count_i) {
$jResp->I = $i;
$i = $i + 1;
}
$i = 0;
$count_i = $jResp->SizeOfArray('product.productOptions');
while ($i < $count_i) {
$jResp->I = $i;
$optionType = $jResp->stringOf('product.productOptions[i].optionType');
$name = $jResp->stringOf('product.productOptions[i].name');
$j = 0;
$count_j = $jResp->SizeOfArray('product.productOptions[i].choices');
while ($j < $count_j) {
$jResp->J = $j;
$value = $jResp->stringOf('product.productOptions[i].choices[j].value');
$description = $jResp->stringOf('product.productOptions[i].choices[j].description');
$inStock = $jResp->BoolOf('product.productOptions[i].choices[j].inStock');
$visible = $jResp->BoolOf('product.productOptions[i].choices[j].visible');
$j = $j + 1;
}
$i = $i + 1;
}
$i = 0;
$count_i = $jResp->SizeOfArray('product.collectionIds');
while ($i < $count_i) {
$jResp->I = $i;
$i = $i + 1;
}
$i = 0;
$count_i = $jResp->SizeOfArray('product.variants');
while ($i < $count_i) {
$jResp->I = $i;
$id = $jResp->stringOf('product.variants[i].id');
$choicesSize = $jResp->stringOf('product.variants[i].choices.Size');
$variantPriceDataCurrency = $jResp->stringOf('product.variants[i].variant.priceData.currency');
$variantPriceDataPrice = $jResp->stringOf('product.variants[i].variant.priceData.price');
$variantPriceDataDiscountedPrice = $jResp->stringOf('product.variants[i].variant.priceData.discountedPrice');
$variantPriceDataFormattedPrice = $jResp->stringOf('product.variants[i].variant.priceData.formatted.price');
$variantPriceDataFormattedDiscountedPrice = $jResp->stringOf('product.variants[i].variant.priceData.formatted.discountedPrice');
$variantWeight = $jResp->IntOf('product.variants[i].variant.weight');
$variantVisible = $jResp->BoolOf('product.variants[i].variant.visible');
$i = $i + 1;
}
?>