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
(Visual FoxPro) Shopware 6 - Delete CategorySee more Shopware 6 ExamplesDelete a category by name.
LOCAL loHttp LOCAL lnSuccess LOCAL loJson LOCAL loJsonToken LOCAL loResp LOCAL loSbResponseBody LOCAL loJResp LOCAL lnRespStatusCode LOCAL lnNumSearchResults LOCAL lcCategoryId LOCAL loSbUrl LOCAL lcJsonStr * This example assumes the Chilkat API to have been previously unlocked. * See Global Unlock Sample for sample code. * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Http') loHttp = CreateObject('Chilkat.Http') * First, let's search for the category by name because we'll need to know the category's id to delete. * Sends the following POST * POST /api/v3/search/category * { * "filter": [ * { "type": "equals", "field": "name", "value": "Test123" } * ], * "includes": { * "category": ["id", "name"] * } * } * Create the above JSON. * Use this online tool to generate code from sample JSON: * Generate Code to Create JSON * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.JsonObject') loJson = CreateObject('Chilkat.JsonObject') loJson.UpdateString("filter[0].type","equals") loJson.UpdateString("filter[0].field","name") loJson.UpdateString("filter[0].value","Test123") loJson.UpdateString("includes.category[0]","id") loJson.UpdateString("includes.category[1]","name") * Load the access token previously obtained in Shopware 6 OAuth2 Client Credentials * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.JsonObject') loJsonToken = CreateObject('Chilkat.JsonObject') loJsonToken.LoadFile("qa_data/tokens/shopware6.json") * This causes the "Authorization: Bearer <access_token>" header to be added. loHttp.AuthToken = loJsonToken.StringOf("access_token") * Note: If you get a 401 response status code, then fetch a new access token and retry. loResp = loHttp.PostJson3("https://my-shopware-6-shop.de/api/v3/search/category","application/json",loJson) IF (loHttp.LastMethodSuccess = 0) THEN ? loHttp.LastErrorText RELEASE loHttp RELEASE loJson RELEASE loJsonToken CANCEL ENDIF * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.StringBuilder') loSbResponseBody = CreateObject('Chilkat.StringBuilder') loResp.GetBodySb(loSbResponseBody) * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.JsonObject') loJResp = CreateObject('Chilkat.JsonObject') loJResp.LoadSb(loSbResponseBody) loJResp.EmitCompact = 0 ? "Response Body:" ? loJResp.Emit() * If we get a 401 response, it may be that our access token expired and we need to fetch a new one. lnRespStatusCode = loResp.StatusCode ? "Response Status Code = " + STR(lnRespStatusCode) IF (lnRespStatusCode >= 400) THEN ? "Response Header:" ? loResp.Header ? "Failed." RELEASE loResp RELEASE loHttp RELEASE loJson RELEASE loJsonToken RELEASE loSbResponseBody RELEASE loJResp CANCEL ENDIF RELEASE loResp * The response looks like this: * Use the following online tool to generate parsing code from sample JSON: * Generate Parsing Code from JSON * { * "data": [ * { * "id": "89c4131789fd422c8f00cf37bbb83330", * "type": "category", * "attributes": { * "name": "Test123", * "apiAlias": null * }, * "links": { * "self": "https:\/\/***.de\/api\/v3\/category\/89c4131789fd422c8f00cf37bbb83330" * }, * "relationships": [ * ], * "meta": null * } * ], * "included": [ * ], * "links": { * "self": "https:\/\/***.de\/api\/v3\/search\/category" * }, * "meta": { * "totalCountMode": 0, * "total": 1 * }, * "aggregations": [ * ] * } lnNumSearchResults = loJResp.SizeOfArray("data") IF (lnNumSearchResults <> 1) THEN ? "numSearchResults = " + STR(lnNumSearchResults) ? "Did not find the category, or unexpectedly found more than one with the same name." RELEASE loHttp RELEASE loJson RELEASE loJsonToken RELEASE loSbResponseBody RELEASE loJResp CANCEL ENDIF lcCategoryId = loJResp.StringOf("data[0].id") ? "Category ID = " + lcCategoryId * ----------------------------------------------------------------------------------------------- * Delete this category by the given ID. * We need to send a DELETE request like this: * DELETE /api/v3/category/5840ff0975ac428ebf7838359e47737f * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.StringBuilder') loSbUrl = CreateObject('Chilkat.StringBuilder') loSbUrl.Append("https://my-shopware-6-shop.de/api/v3/category/") loSbUrl.Append(lcCategoryId) * If successful (204 response code), then the jsonStr will be empty. * Otherwise it will be a JSON error message. lcJsonStr = loHttp.QuickDeleteStr(loSbUrl.GetAsString()) IF (loHttp.LastMethodSuccess = 0) THEN ? loHttp.LastErrorText RELEASE loHttp RELEASE loJson RELEASE loJsonToken RELEASE loSbResponseBody RELEASE loJResp RELEASE loSbUrl CANCEL ENDIF * A 204 status code indicates success. lnRespStatusCode = loHttp.LastStatus ? "Response status code for DELETE: " + STR(lnRespStatusCode) * This will be non-empty if an error occurred. ? lcJsonStr RELEASE loHttp RELEASE loJson RELEASE loJsonToken RELEASE loSbResponseBody RELEASE loJResp RELEASE loSbUrl |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.