Lua
Lua
Shopware 6 - Create Product
See more Shopware 6 Examples
Create a new product.Chilkat Lua Downloads
local chilkat = require("chilkat")
-- This example assumes the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.
local http = chilkat.Http.new()
-- Sends the following POST
-- POST /api/v3/product/
-- {
-- "name" : "Test123",
-- "productNumber" : "random",
-- "stock" : 10,
-- "price" : [
-- {
-- "currencyId" : "b7d2554b0ce847cd82f3ac9bd1c0dfca",
-- "gross": 15,
-- "net": 10,
-- "linked" : false
-- }
-- ],
-- "tax" : {
-- "name": "test",
-- "taxRate": 15
-- }
-- }
-- Use this online tool to generate code from sample JSON:
-- Generate Code to Create JSON
-- Create a product named "Test123"
local json = chilkat.JsonObject.new()
json:update_string("name", "Test123")
json:update_string("productNumber", "XYZ-1234")
json:update_int("stock", 10)
json:update_string("price[0].currencyId", "b7d2554b0ce847cd82f3ac9bd1c0dfca")
json:update_int("price[0].gross", 15)
json:update_int("price[0].net", 10)
json:update_bool("price[0].linked", false)
json:update_string("tax.name", "test")
json:update_int("tax.taxRate", 15)
-- Load the access token previously obtained in Shopware 6 OAuth2 Client Credentials
local jsonToken = chilkat.JsonObject.new()
jsonToken:load_file("qa_data/tokens/shopware6.json")
-- This causes the "Authorization: Bearer <access_token>" header to be added.
http.auth_token = jsonToken:string_of("access_token")
local resp = chilkat.HttpResponse.new()
local success = http:http_json("POST", "https://my-shopware-6-shop.de/api/v3/product", json, "application/json", resp)
if not success then
print(http.last_error_text)
return
end
local sbResponseBody = chilkat.StringBuilder.new()
resp:get_body_sb(sbResponseBody)
local jResp = chilkat.JsonObject.new()
jResp:load_sb(sbResponseBody)
jResp.emit_compact = false
-- A successful response is a 204 response status code with an empty response body.
print("Response Body:")
print(jResp:emit())
-- If we get a 401 response, it may be that our access token expired and we need to fetch a new one.
local respStatusCode = resp.status_code
print("Response Status Code = " .. respStatusCode)
if respStatusCode >= 400 then
print("Response Header:")
print(resp.header)
print("Failed.")
return
end