Zig
Zig
Akeneo: Create New Family
See more HTTP Misc Examples
Demonstrates how to create a new family.Chilkat Zig Downloads
const std = @import("std");
const chilkat = @import("chilkat");
pub fn main(init: std.process.Init) !void {
const alloc = init.arena.allocator();
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
const http = try chilkat.Http.init();
defer http.deinit();
// Use your previously obtained access token.
// See Get Akeneo Access Token
http.setAuthToken("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
// {
// "code": "caps",
// "attributes": [
// "sku",
// "name",
// "description",
// "price",
// "color",
// "picture"
// ],
// "attribute_as_label": "name",
// "attribute_as_image": "picture",
// "attribute_requirements": {
// "ecommerce": [
// "sku",
// "name",
// "description",
// "price",
// "color"
// ],
// "tablet": [
// "sku",
// "name",
// "description",
// "price"
// ]
// },
// "labels": {
// "en_US": "Caps",
// "fr_FR": "Casquettes"
// }
// }
//
const json = try chilkat.JsonObject.init();
defer json.deinit();
json.updateString("code", "caps") catch {};
json.updateString("attributes[0]", "sku") catch {};
json.updateString("attributes[1]", "name") catch {};
json.updateString("attributes[2]", "description") catch {};
json.updateString("attributes[3]", "price") catch {};
json.updateString("attributes[4]", "color") catch {};
json.updateString("attributes[5]", "picture") catch {};
json.updateString("attribute_as_label", "name") catch {};
json.updateString("attribute_as_image", "picture") catch {};
json.updateString("attribute_requirements.ecommerce[0]", "sku") catch {};
json.updateString("attribute_requirements.ecommerce[1]", "name") catch {};
json.updateString("attribute_requirements.ecommerce[2]", "description") catch {};
json.updateString("attribute_requirements.ecommerce[3]", "price") catch {};
json.updateString("attribute_requirements.ecommerce[4]", "color") catch {};
json.updateString("attribute_requirements.tablet[0]", "sku") catch {};
json.updateString("attribute_requirements.tablet[1]", "name") catch {};
json.updateString("attribute_requirements.tablet[2]", "description") catch {};
json.updateString("attribute_requirements.tablet[3]", "price") catch {};
json.updateString("labels.en_US", "Caps") catch {};
json.updateString("labels.fr_FR", "Casquettes") catch {};
json.setEmitCompact(false);
// Show the JSON to be sent..
std.debug.print("{s}\n", .{try json.emit(alloc)});
const url = "http://pim.my-akeneo-site.com/api/rest/v1/families";
const resp = try chilkat.HttpResponse.init();
defer resp.deinit();
http.httpJson("POST", url, json, "application/json", resp) catch {
std.debug.print("{s}\n", .{try http.getLastErrorText(alloc)});
return;
};
std.debug.print("Response Status Code: {d}\n", .{resp.getStatusCode()});
std.debug.print("Response Body: \n", .{});
std.debug.print("{s}\n", .{try resp.getBodyStr(alloc)});
}