SQL Server
SQL Server
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 SQL Server Downloads
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls.
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
DECLARE @hr int
-- Important: Do not use nvarchar(max). See the warning about using nvarchar(max).
DECLARE @sTmp0 nvarchar(4000)
DECLARE @success int
SELECT @success = 0
-- This example assumes the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.
DECLARE @http int
EXEC @hr = sp_OACreate 'Chilkat.Http', @http OUT
IF @hr <> 0
BEGIN
PRINT 'Failed to create ActiveX component'
RETURN
END
-- 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"
-- }
-- ]
-- }
-- ]
-- }
-- }
DECLARE @json int
EXEC @hr = sp_OACreate 'Chilkat.JsonObject', @json OUT
EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'product.name', 'T-shirt'
EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'product.productType', 'physical'
EXEC sp_OAMethod @json, 'UpdateNumber', @success OUT, 'product.priceData.price', '10.5'
EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'product.description', 'nice summer t-shirt'
EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'product.sku', '123df'
EXEC sp_OAMethod @json, 'UpdateBool', @success OUT, 'product.visible', 0
EXEC sp_OAMethod @json, 'UpdateNumber', @success OUT, 'product.weight', '0.2'
EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'product.discount.type', 'AMOUNT'
EXEC sp_OAMethod @json, 'UpdateInt', @success OUT, 'product.discount.value', 1
EXEC sp_OAMethod @json, 'UpdateBool', @success OUT, 'product.manageVariants', 1
EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'product.productOptions[0].name', 'Size'
EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'product.productOptions[0].choices[0].value', 'S'
EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'product.productOptions[0].choices[0].description', 'S'
EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'product.productOptions[0].choices[1].value', 'L'
EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'product.productOptions[0].choices[1].description', 'L'
EXEC sp_OASetProperty @http, 'AuthToken', 'ACCESS_TOKEN'
DECLARE @resp int
EXEC @hr = sp_OACreate 'Chilkat.HttpResponse', @resp OUT
EXEC sp_OAMethod @http, 'HttpJson', @success OUT, 'POST', 'https://www.wixapis.com/stores/v1/products', @json, 'application/json', @resp
IF @success = 0
BEGIN
EXEC sp_OAGetProperty @http, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @http
EXEC @hr = sp_OADestroy @json
EXEC @hr = sp_OADestroy @resp
RETURN
END
DECLARE @sbResponseBody int
EXEC @hr = sp_OACreate 'Chilkat.StringBuilder', @sbResponseBody OUT
EXEC sp_OAMethod @resp, 'GetBodySb', @success OUT, @sbResponseBody
DECLARE @jResp int
EXEC @hr = sp_OACreate 'Chilkat.JsonObject', @jResp OUT
EXEC sp_OAMethod @jResp, 'LoadSb', @success OUT, @sbResponseBody
EXEC sp_OASetProperty @jResp, 'EmitCompact', 0
PRINT 'Response Body:'
EXEC sp_OAMethod @jResp, 'Emit', @sTmp0 OUT
PRINT @sTmp0
DECLARE @respStatusCode int
EXEC sp_OAGetProperty @resp, 'StatusCode', @respStatusCode OUT
PRINT 'Response Status Code = ' + @respStatusCode
IF @respStatusCode >= 400
BEGIN
PRINT 'Response Header:'
EXEC sp_OAGetProperty @resp, 'Header', @sTmp0 OUT
PRINT @sTmp0
PRINT 'Failed.'
EXEC @hr = sp_OADestroy @http
EXEC @hr = sp_OADestroy @json
EXEC @hr = sp_OADestroy @resp
EXEC @hr = sp_OADestroy @sbResponseBody
EXEC @hr = sp_OADestroy @jResp
RETURN
END
-- 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
DECLARE @optionType nvarchar(4000)
DECLARE @name nvarchar(4000)
DECLARE @j int
DECLARE @count_j int
DECLARE @value nvarchar(4000)
DECLARE @description nvarchar(4000)
DECLARE @inStock int
DECLARE @visible int
DECLARE @id nvarchar(4000)
DECLARE @choicesSize nvarchar(4000)
DECLARE @variantPriceDataCurrency nvarchar(4000)
DECLARE @variantPriceDataPrice nvarchar(4000)
DECLARE @variantPriceDataDiscountedPrice nvarchar(4000)
DECLARE @variantPriceDataFormattedPrice nvarchar(4000)
DECLARE @variantPriceDataFormattedDiscountedPrice nvarchar(4000)
DECLARE @variantWeight int
DECLARE @variantVisible int
DECLARE @productId nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @productId OUT, 'product.id'
DECLARE @productName nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @productName OUT, 'product.name'
DECLARE @productSlug nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @productSlug OUT, 'product.slug'
DECLARE @productVisible int
EXEC sp_OAMethod @jResp, 'BoolOf', @productVisible OUT, 'product.visible'
DECLARE @productProductType nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @productProductType OUT, 'product.productType'
DECLARE @productDescription nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @productDescription OUT, 'product.description'
DECLARE @productStockTrackInventory int
EXEC sp_OAMethod @jResp, 'BoolOf', @productStockTrackInventory OUT, 'product.stock.trackInventory'
DECLARE @productStockInStock int
EXEC sp_OAMethod @jResp, 'BoolOf', @productStockInStock OUT, 'product.stock.inStock'
DECLARE @productPriceCurrency nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @productPriceCurrency OUT, 'product.price.currency'
DECLARE @productPricePrice nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @productPricePrice OUT, 'product.price.price'
DECLARE @productPriceDiscountedPrice nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @productPriceDiscountedPrice OUT, 'product.price.discountedPrice'
DECLARE @productPriceFormattedPrice nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @productPriceFormattedPrice OUT, 'product.price.formatted.price'
DECLARE @productPriceFormattedDiscountedPrice nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @productPriceFormattedDiscountedPrice OUT, 'product.price.formatted.discountedPrice'
DECLARE @productPriceDataCurrency nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @productPriceDataCurrency OUT, 'product.priceData.currency'
DECLARE @productPriceDataPrice nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @productPriceDataPrice OUT, 'product.priceData.price'
DECLARE @productPriceDataDiscountedPrice nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @productPriceDataDiscountedPrice OUT, 'product.priceData.discountedPrice'
DECLARE @productPriceDataFormattedPrice nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @productPriceDataFormattedPrice OUT, 'product.priceData.formatted.price'
DECLARE @productPriceDataFormattedDiscountedPrice nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @productPriceDataFormattedDiscountedPrice OUT, 'product.priceData.formatted.discountedPrice'
DECLARE @productManageVariants int
EXEC sp_OAMethod @jResp, 'BoolOf', @productManageVariants OUT, 'product.manageVariants'
DECLARE @productProductPageUrlBase nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @productProductPageUrlBase OUT, 'product.productPageUrl.base'
DECLARE @productProductPageUrlPath nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @productProductPageUrlPath OUT, 'product.productPageUrl.path'
DECLARE @productNumericId nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @productNumericId OUT, 'product.numericId'
DECLARE @productInventoryItemId nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @productInventoryItemId OUT, 'product.inventoryItemId'
DECLARE @productDiscountType nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @productDiscountType OUT, 'product.discount.type'
DECLARE @productDiscountValue int
EXEC sp_OAMethod @jResp, 'IntOf', @productDiscountValue OUT, 'product.discount.value'
DECLARE @i int
SELECT @i = 0
DECLARE @count_i int
EXEC sp_OAMethod @jResp, 'SizeOfArray', @count_i OUT, 'product.additionalInfoSections'
WHILE @i < @count_i
BEGIN
EXEC sp_OASetProperty @jResp, 'I', @i
SELECT @i = @i + 1
END
SELECT @i = 0
EXEC sp_OAMethod @jResp, 'SizeOfArray', @count_i OUT, 'product.ribbons'
WHILE @i < @count_i
BEGIN
EXEC sp_OASetProperty @jResp, 'I', @i
SELECT @i = @i + 1
END
SELECT @i = 0
EXEC sp_OAMethod @jResp, 'SizeOfArray', @count_i OUT, 'product.media.items'
WHILE @i < @count_i
BEGIN
EXEC sp_OASetProperty @jResp, 'I', @i
SELECT @i = @i + 1
END
SELECT @i = 0
EXEC sp_OAMethod @jResp, 'SizeOfArray', @count_i OUT, 'product.customTextFields'
WHILE @i < @count_i
BEGIN
EXEC sp_OASetProperty @jResp, 'I', @i
SELECT @i = @i + 1
END
SELECT @i = 0
EXEC sp_OAMethod @jResp, 'SizeOfArray', @count_i OUT, 'product.productOptions'
WHILE @i < @count_i
BEGIN
EXEC sp_OASetProperty @jResp, 'I', @i
EXEC sp_OAMethod @jResp, 'StringOf', @optionType OUT, 'product.productOptions[i].optionType'
EXEC sp_OAMethod @jResp, 'StringOf', @name OUT, 'product.productOptions[i].name'
SELECT @j = 0
EXEC sp_OAMethod @jResp, 'SizeOfArray', @count_j OUT, 'product.productOptions[i].choices'
WHILE @j < @count_j
BEGIN
EXEC sp_OASetProperty @jResp, 'J', @j
EXEC sp_OAMethod @jResp, 'StringOf', @value OUT, 'product.productOptions[i].choices[j].value'
EXEC sp_OAMethod @jResp, 'StringOf', @description OUT, 'product.productOptions[i].choices[j].description'
EXEC sp_OAMethod @jResp, 'BoolOf', @inStock OUT, 'product.productOptions[i].choices[j].inStock'
EXEC sp_OAMethod @jResp, 'BoolOf', @visible OUT, 'product.productOptions[i].choices[j].visible'
SELECT @j = @j + 1
END
SELECT @i = @i + 1
END
SELECT @i = 0
EXEC sp_OAMethod @jResp, 'SizeOfArray', @count_i OUT, 'product.collectionIds'
WHILE @i < @count_i
BEGIN
EXEC sp_OASetProperty @jResp, 'I', @i
SELECT @i = @i + 1
END
SELECT @i = 0
EXEC sp_OAMethod @jResp, 'SizeOfArray', @count_i OUT, 'product.variants'
WHILE @i < @count_i
BEGIN
EXEC sp_OASetProperty @jResp, 'I', @i
EXEC sp_OAMethod @jResp, 'StringOf', @id OUT, 'product.variants[i].id'
EXEC sp_OAMethod @jResp, 'StringOf', @choicesSize OUT, 'product.variants[i].choices.Size'
EXEC sp_OAMethod @jResp, 'StringOf', @variantPriceDataCurrency OUT, 'product.variants[i].variant.priceData.currency'
EXEC sp_OAMethod @jResp, 'StringOf', @variantPriceDataPrice OUT, 'product.variants[i].variant.priceData.price'
EXEC sp_OAMethod @jResp, 'StringOf', @variantPriceDataDiscountedPrice OUT, 'product.variants[i].variant.priceData.discountedPrice'
EXEC sp_OAMethod @jResp, 'StringOf', @variantPriceDataFormattedPrice OUT, 'product.variants[i].variant.priceData.formatted.price'
EXEC sp_OAMethod @jResp, 'StringOf', @variantPriceDataFormattedDiscountedPrice OUT, 'product.variants[i].variant.priceData.formatted.discountedPrice'
EXEC sp_OAMethod @jResp, 'IntOf', @variantWeight OUT, 'product.variants[i].variant.weight'
EXEC sp_OAMethod @jResp, 'BoolOf', @variantVisible OUT, 'product.variants[i].variant.visible'
SELECT @i = @i + 1
END
EXEC @hr = sp_OADestroy @http
EXEC @hr = sp_OADestroy @json
EXEC @hr = sp_OADestroy @resp
EXEC @hr = sp_OADestroy @sbResponseBody
EXEC @hr = sp_OADestroy @jResp
END
GO