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
(PureBasic) Akeneo: Create New ProductDemonstrates how to create a new product.
IncludeFile "CkHttpResponse.pb" IncludeFile "CkHttp.pb" IncludeFile "CkJsonObject.pb" Procedure ChilkatExample() ; This example requires the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. http.i = CkHttp::ckCreate() If http.i = 0 Debug "Failed to create object." ProcedureReturn EndIf ; Use your previously obtained access token. ; See Get Akeneo Access Token CkHttp::setCkAuthToken(http, "access_token") ; Build the following JSON to be sent in the request body: ; Use this online tool to generate the code from sample JSON: ; Generate Code to Create JSON ; { ; "identifier": "top", ; "enabled": true, ; "family": "tshirt", ; "categories": [ ; "summer_collection" ; ], ; "groups": [], ; "parent": null, ; "values": { ; "name": [ ; { ; "data": "Top", ; "locale": "en_US", ; "scope": null ; }, ; { ; "data": "Dbardeur", ; "locale": "fr_FR", ; "scope": null ; } ; ], ; "description": [ ; { ; "data": "Summer top", ; "locale": "en_US", ; "scope": "ecommerce" ; }, ; { ; "data": "Top", ; "locale": "en_US", ; "scope": "tablet" ; }, ; { ; "data": "Dbardeur pour l't", ; "locale": "fr_FR", ; "scope": "ecommerce" ; }, ; { ; "data": "Dbardeur", ; "locale": "fr_FR", ; "scope": "tablet" ; } ; ], ; "price": [ ; { ; "locale": null, ; "scope": null, ; "data": [ ; { ; "amount": "150.5", ; "currency": "EUR" ; }, ; { ; "amount": "150", ; "currency": "USD" ; } ; ] ; } ; ], ; "color": [ ; { ; "locale": null, ; "scope": null, ; "data": "black" ; } ; ], ; "size": [ ; { ; "locale": null, ; "scope": null, ; "data": "m" ; } ; ] ; }, ; "associations": { ; "PACK": { ; "products": [ ; "sunglass" ; ], ; "groups": [] ; } ; } ; } ; json.i = CkJsonObject::ckCreate() If json.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkJsonObject::ckUpdateString(json,"identifier","top") CkJsonObject::ckUpdateBool(json,"enabled",1) CkJsonObject::ckUpdateString(json,"family","tshirt") CkJsonObject::ckUpdateString(json,"categories[0]","summer_collection") CkJsonObject::ckUpdateNewArray(json,"groups") CkJsonObject::ckUpdateNull(json,"parent") CkJsonObject::ckUpdateString(json,"values.name[0].data","Top") CkJsonObject::ckUpdateString(json,"values.name[0].locale","en_US") CkJsonObject::ckUpdateNull(json,"values.name[0].scope") CkJsonObject::ckUpdateString(json,"values.name[1].data","Dbardeur") CkJsonObject::ckUpdateString(json,"values.name[1].locale","fr_FR") CkJsonObject::ckUpdateNull(json,"values.name[1].scope") CkJsonObject::ckUpdateString(json,"values.description[0].data","Summer top") CkJsonObject::ckUpdateString(json,"values.description[0].locale","en_US") CkJsonObject::ckUpdateString(json,"values.description[0].scope","ecommerce") CkJsonObject::ckUpdateString(json,"values.description[1].data","Top") CkJsonObject::ckUpdateString(json,"values.description[1].locale","en_US") CkJsonObject::ckUpdateString(json,"values.description[1].scope","tablet") CkJsonObject::ckUpdateString(json,"values.description[2].data","Dbardeur pour l't") CkJsonObject::ckUpdateString(json,"values.description[2].locale","fr_FR") CkJsonObject::ckUpdateString(json,"values.description[2].scope","ecommerce") CkJsonObject::ckUpdateString(json,"values.description[3].data","Dbardeur") CkJsonObject::ckUpdateString(json,"values.description[3].locale","fr_FR") CkJsonObject::ckUpdateString(json,"values.description[3].scope","tablet") CkJsonObject::ckUpdateNull(json,"values.price[0].locale") CkJsonObject::ckUpdateNull(json,"values.price[0].scope") CkJsonObject::ckUpdateString(json,"values.price[0].data[0].amount","150.5") CkJsonObject::ckUpdateString(json,"values.price[0].data[0].currency","EUR") CkJsonObject::ckUpdateString(json,"values.price[0].data[1].amount","150") CkJsonObject::ckUpdateString(json,"values.price[0].data[1].currency","USD") CkJsonObject::ckUpdateNull(json,"values.color[0].locale") CkJsonObject::ckUpdateNull(json,"values.color[0].scope") CkJsonObject::ckUpdateString(json,"values.color[0].data","black") CkJsonObject::ckUpdateNull(json,"values.size[0].locale") CkJsonObject::ckUpdateNull(json,"values.size[0].scope") CkJsonObject::ckUpdateString(json,"values.size[0].data","m") CkJsonObject::ckUpdateString(json,"associations.PACK.products[0]","sunglass") CkJsonObject::ckUpdateNewArray(json,"associations.PACK.groups") CkJsonObject::setCkEmitCompact(json, 0) ; Show the JSON to be sent.. Debug CkJsonObject::ckEmit(json) url.s = "http://pim.my-akeneo-site.com/api/rest/v1/products" resp.i = CkHttp::ckPostJson3(http,url,"application/json",json) If CkHttp::ckLastMethodSuccess(http) <> 1 Debug CkHttp::ckLastErrorText(http) CkHttp::ckDispose(http) CkJsonObject::ckDispose(json) ProcedureReturn EndIf Debug "Response Status Code: " + Str(CkHttpResponse::ckStatusCode(resp)) Debug "Response Body: " Debug CkHttpResponse::ckBodyStr(resp) ; The akeneo response will include a "Location" header, such as the following: ; HTTP/1.1 201 Created ; Date: Tue, 22 Jan 2019 10:36:35 GMT ; Server: Apache/2 ; X-Powered-By: PHP/7.1.25 ; Cache-Control: max-age=0, private, must-revalidate, no-cache, private ; Set-Cookie: abcdefg; path=/; HttpOnly ; Location: http://xyz.example.com/api/rest/v1/products/L0000123 ; Vary: User-Agent ; Content-Length: 0 ; Keep-Alive: timeout=2, max=100 ; Connection: Keep-Alive ; Content-Type: application/json ; Get the location header using resp.GetHeaderField location.s = CkHttpResponse::ckGetHeaderField(resp,"Location") Debug "Location: " + location CkHttpResponse::ckDispose(resp) CkHttp::ckDispose(http) CkJsonObject::ckDispose(json) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.