C
C
Ecwid - Create Order
See more Ecwid Examples
Create a new order in an Ecwid store. This can be useful for storefronts with a custom checkout process or manually creating orders for sales made earlier.Chilkat C Downloads
#include <C_CkJsonObject.h>
#include <C_CkStringBuilder.h>
#include <C_CkHttp.h>
#include <C_CkHttpResponse.h>
void ChilkatSample(void)
{
BOOL success;
HCkJsonObject jsonToken;
HCkStringBuilder sbUrl;
HCkHttp http;
HCkJsonObject json;
const char *url;
HCkHttpResponse resp;
HCkStringBuilder sbResponseBody;
HCkJsonObject jResp;
int id;
const char *orderid;
success = FALSE;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
// Create and send the following HTTP request:
// Load the access token previously obtained in Ecwid Get Access Token
jsonToken = CkJsonObject_Create();
CkJsonObject_LoadFile(jsonToken,"qa_data/tokens/ecwid.json");
sbUrl = CkStringBuilder_Create();
CkStringBuilder_Append(sbUrl,"https://app.ecwid.com/api/v3/4870020/orders?token=");
CkStringBuilder_Append(sbUrl,CkJsonObject_stringOf(jsonToken,"access_token"));
// POST /api/v3/4870020/orders?token=1234567890qwqeertt HTTP/1.1
// Host: app.ecwid.com
// Content-Type: application/json;charset=utf-8
// Cache-Control: no-cache
//
// {
// "subtotal": 30,
// "total": 40,
// "email": "example@example.com",
// "paymentMethod": "Phone order",
// "tax": 0,
// "paymentStatus": "PAID",
// "customerTaxExempt": false,
// "customerTaxId": "",
// "customerTaxIdValid": false,
// "reversedTaxApplied": false,
// "fulfillmentStatus": "AWAITING_PROCESSING",
// "createDate": "2015-09-20 19:59:43 +0000",
// "items": [
// {
// "price": 15,
// "weight": 0.32,
// "sku": "00004",
// "quantity": 2,
// "name": "Cherry"
// }
// ],
// "billingPerson": {
// "name": "Eugene K",
// "companyName": "Hedgehog and Bucket",
// "street": "My Street",
// "city": "San Diego",
// "countryCode": "US",
// "postalCode": "90002",
// "stateOrProvinceCode": "CA",
// "phone": "123141321"
// },
// "shippingPerson": {
// "name": "Eugene K",
// "companyName": "Hedgehog and Bucket",
// "street": "My Street",
// "city": "San Diego",
// "countryCode": "US",
// "postalCode": "90002",
// "stateOrProvinceCode": "CA",
// "phone": "123141321"
// },
// "shippingOption": {
// "shippingMethodName": "Fast Delivery",
// "shippingRate": 10,
// "isPickup": false,
// "fulfilmentType": "DELIVERY"
// },
// "hidden": false,
// "privateAdminNotes": "Must be delivered till Sunday.",
// "acceptMarketing": false,
// "disableAllCustomerNotifications": true,
// "externalFulfillment": true,
// "externalOrderId": "2",
// "pricesIncludeTax": false
// }
http = CkHttp_Create();
CkHttp_SetRequestHeader(http,"Cache-Control","no-cache");
json = CkJsonObject_Create();
CkJsonObject_UpdateInt(json,"subtotal",30);
CkJsonObject_UpdateInt(json,"total",40);
CkJsonObject_UpdateString(json,"email","example@example.com");
CkJsonObject_UpdateString(json,"paymentMethod","Phone order");
CkJsonObject_UpdateInt(json,"tax",0);
CkJsonObject_UpdateString(json,"paymentStatus","PAID");
CkJsonObject_UpdateBool(json,"customerTaxExempt",FALSE);
CkJsonObject_UpdateString(json,"customerTaxId","");
CkJsonObject_UpdateBool(json,"customerTaxIdValid",FALSE);
CkJsonObject_UpdateBool(json,"reversedTaxApplied",FALSE);
CkJsonObject_UpdateString(json,"fulfillmentStatus","AWAITING_PROCESSING");
CkJsonObject_UpdateString(json,"createDate","2015-09-20 19:59:43 +0000");
CkJsonObject_UpdateInt(json,"items[0].price",15);
CkJsonObject_UpdateNumber(json,"items[0].weight","0.32");
CkJsonObject_UpdateString(json,"items[0].sku","00004");
CkJsonObject_UpdateInt(json,"items[0].quantity",2);
CkJsonObject_UpdateString(json,"items[0].name","Cherry");
CkJsonObject_UpdateString(json,"billingPerson.name","Eugene K");
CkJsonObject_UpdateString(json,"billingPerson.companyName","Hedgehog and Bucket");
CkJsonObject_UpdateString(json,"billingPerson.street","My Street");
CkJsonObject_UpdateString(json,"billingPerson.city","San Diego");
CkJsonObject_UpdateString(json,"billingPerson.countryCode","US");
CkJsonObject_UpdateString(json,"billingPerson.postalCode","90002");
CkJsonObject_UpdateString(json,"billingPerson.stateOrProvinceCode","CA");
CkJsonObject_UpdateString(json,"billingPerson.phone","123141321");
CkJsonObject_UpdateString(json,"shippingPerson.name","Eugene K");
CkJsonObject_UpdateString(json,"shippingPerson.companyName","Hedgehog and Bucket");
CkJsonObject_UpdateString(json,"shippingPerson.street","My Street");
CkJsonObject_UpdateString(json,"shippingPerson.city","San Diego");
CkJsonObject_UpdateString(json,"shippingPerson.countryCode","US");
CkJsonObject_UpdateString(json,"shippingPerson.postalCode","90002");
CkJsonObject_UpdateString(json,"shippingPerson.stateOrProvinceCode","CA");
CkJsonObject_UpdateString(json,"shippingPerson.phone","123141321");
CkJsonObject_UpdateString(json,"shippingOption.shippingMethodName","Fast Delivery");
CkJsonObject_UpdateInt(json,"shippingOption.shippingRate",10);
CkJsonObject_UpdateBool(json,"shippingOption.isPickup",FALSE);
CkJsonObject_UpdateString(json,"shippingOption.fulfilmentType","DELIVERY");
CkJsonObject_UpdateBool(json,"hidden",FALSE);
CkJsonObject_UpdateString(json,"privateAdminNotes","Must be delivered till Sunday.");
CkJsonObject_UpdateBool(json,"acceptMarketing",FALSE);
CkJsonObject_UpdateBool(json,"disableAllCustomerNotifications",TRUE);
CkJsonObject_UpdateBool(json,"externalFulfillment",TRUE);
CkJsonObject_UpdateString(json,"externalOrderId","2");
CkJsonObject_UpdateBool(json,"pricesIncludeTax",FALSE);
url = CkStringBuilder_getAsString(sbUrl);
resp = CkHttpResponse_Create();
success = CkHttp_HttpJson(http,"POST",url,json,"application/json",resp);
if (success == FALSE) {
printf("%s\n",CkHttp_lastErrorText(http));
CkJsonObject_Dispose(jsonToken);
CkStringBuilder_Dispose(sbUrl);
CkHttp_Dispose(http);
CkJsonObject_Dispose(json);
CkHttpResponse_Dispose(resp);
return;
}
printf("Response status code = %d\n",CkHttpResponse_getStatusCode(resp));
sbResponseBody = CkStringBuilder_Create();
CkHttpResponse_GetBodySb(resp,sbResponseBody);
jResp = CkJsonObject_Create();
CkJsonObject_LoadSb(jResp,sbResponseBody);
CkJsonObject_putEmitCompact(jResp,FALSE);
printf("Response Body:\n");
printf("%s\n",CkJsonObject_emit(jResp));
// Sample JSON response:
// (Sample code for parsing the JSON response is shown below)
// {
// "id": 20,
// "orderid": "XJ12H"
// }
// Sample code for parsing the JSON response...
// Use the following online tool to generate parsing code from sample JSON:
// Generate Parsing Code from JSON
id = CkJsonObject_IntOf(jResp,"id");
orderid = CkJsonObject_stringOf(jResp,"orderid");
CkJsonObject_Dispose(jsonToken);
CkStringBuilder_Dispose(sbUrl);
CkHttp_Dispose(http);
CkJsonObject_Dispose(json);
CkHttpResponse_Dispose(resp);
CkStringBuilder_Dispose(sbResponseBody);
CkJsonObject_Dispose(jResp);
}