Sample code for 30+ languages & platforms
Pascal (Lazarus/Delphi)

Ecwid - Search Orders

See more Ecwid Examples

Search or filter orders in an Ecwid store. The response provides full details of the found orders.

Chilkat Pascal (Lazarus/Delphi) Downloads

Pascal (Lazarus/Delphi)
program ChilkatDemo;

// Demonstrates using the Chilkat Pascal wrapper via the C bridge DLL.
// Builds as a console application under Lazarus (FPC) or Delphi.

{$IFDEF FPC}
  {$MODE DELPHI}
{$ENDIF}
{$APPTYPE CONSOLE}

uses
  {$IFDEF UNIX}
  cthreads,
  {$ENDIF}
  SysUtils,
  CkDllLoader,
  Chilkat.Http,
  Chilkat.StringBuilder,
  Chilkat.HttpResponse,
  Chilkat.JsonObject;

// ---------------------------------------------------------------------------

procedure RunDemo;
var
  success: Boolean;
  http: THttp;
  jsonToken: TJsonObject;
  params: TJsonObject;
  resp: THttpResponse;
  sbResponseBody: TStringBuilder;
  jResp: TJsonObject;
  respStatusCode: Integer;
  id: string;
  subtotal: string;
  total_str: string;
  giftCardRedemption: string;
  totalBeforeGiftCardRedemption: string;
  giftCardDoubleSpending: Boolean;
  usdTotal: string;
  tax: string;
  paymentMethod: string;
  paymentStatus: string;
  fulfillmentStatus: string;
  vendorOrderNumber: string;
  orderNumber: Integer;
  refererUrl: string;
  globalReferer: string;
  createDate: string;
  updateDate: string;
  createTimestamp: Integer;
  updateTimestamp: Integer;
  hidden: Boolean;
  orderComments: string;
  privateAdminNotes: string;
  email: string;
  ipAddress: string;
  customerId: Integer;
  customerGroupId: Integer;
  customerGroup: string;
  customerTaxExempt: Boolean;
  customerTaxId: string;
  customerTaxIdValid: Boolean;
  reversedTaxApplied: Boolean;
  discount: Integer;
  couponDiscount: Integer;
  volumeDiscount: Integer;
  membershipBasedDiscount: Integer;
  totalAndMembershipBasedDiscount: Integer;
  discountCouponId: Integer;
  discountCouponName: string;
  discountCouponCode: string;
  discountCouponDiscountType: string;
  discountCouponStatus: string;
  discountCouponDiscount: Integer;
  discountCouponLaunchDate: string;
  discountCouponUsesLimit: string;
  discountCouponApplicationLimit: string;
  discountCouponCreationDate: string;
  discountCouponUpdateDate: string;
  discountCouponOrderCount: Integer;
  refundedAmount: string;
  billingPersonName: string;
  billingPersonCompanyName: string;
  billingPersonStreet: string;
  billingPersonCity: string;
  billingPersonCountryCode: string;
  billingPersonCountryName: string;
  billingPersonPostalCode: string;
  billingPersonStateOrProvinceCode: string;
  billingPersonStateOrProvinceName: string;
  billingPersonPhone: string;
  shippingPersonName: string;
  shippingPersonCompanyName: string;
  shippingPersonStreet: string;
  shippingPersonCity: string;
  shippingPersonCountryCode: string;
  shippingPersonCountryName: string;
  shippingPersonPostalCode: string;
  shippingPersonStateOrProvinceCode: string;
  shippingPersonStateOrProvinceName: string;
  shippingPersonPhone: string;
  shippingOptionShippingCarrierName: string;
  shippingOptionShippingMethodName: string;
  shippingOptionShippingRate: string;
  shippingOptionEstimatedTransitTime: string;
  shippingOptionIsPickup: Boolean;
  handlingFeeName: string;
  handlingFeeValue: Integer;
  handlingFeeDescription: string;
  paymentModule: string;
  additionalInfoGoogle_customer_id: string;
  acceptMarketing: Boolean;
  refererId: string;
  disableAllCustomerNotifications: Boolean;
  externalFulfillment: Boolean;
  pricesIncludeTax: Boolean;
  j: Integer;
  count_j: Integer;
  value: Integer;
  v_type: string;
  base: string;
  orderTotal: Integer;
  id_int: Integer;
  productId: Integer;
  categoryId: Integer;
  price: Integer;
  productPrice: Integer;
  sku: string;
  quantity: Integer;
  shortDescription: string;
  shipping: Integer;
  quantityInStock: Integer;
  name: string;
  isShippingRequired: Boolean;
  weight: Integer;
  trackQuantity: Boolean;
  fixedShippingRateOnly: Boolean;
  imageUrl: string;
  smallThumbnailUrl: string;
  hdThumbnailUrl: string;
  fixedShippingRate: Integer;
  digital: Boolean;
  couponApplied: Boolean;
  dimensionsLength: Integer;
  dimensionsWidth: Integer;
  dimensionsHeight: Integer;
  couponAmount: string;
  subscriptionId: Integer;
  recurringChargeSettingsRecurringInterval: string;
  recurringChargeSettingsRecurringIntervalCount: Integer;
  k: Integer;
  count_k: Integer;
  value_str: string;
  json1: TJsonObject;
  i1: Integer;
  count_i1: Integer;
  strVal: string;
  selectionTitle: string;
  selectionModifier: Integer;
  selectionModifierType: string;
  taxOnDiscountedSubtotal: string;
  taxOnShipping: Integer;
  includeInPrice: Boolean;
  discountInfoValue: Integer;
  discountInfoType: string;
  discountInfoBase: string;
  discountInfoOrderTotal: Integer;
  date: string;
  source: string;
  reason: string;
  amount: string;
  length: Integer;
  width: Integer;
  height: Integer;
  weight_str: string;
  declaredValue: string;
  created: string;
  shipToName: string;
  shipToCompanyName: string;
  shipToStreet: string;
  shipToCity: string;
  shipToCountryCode: string;
  shipToCountryName: string;
  shipToPostalCode: string;
  shipToStateOrProvinceCode: string;
  shipToStateOrProvinceName: string;
  shipToPhone: string;
  shipFromCompanyName: string;
  shipFromStreet: string;
  shipFromCity: string;
  shipFromCountryCode: string;
  shipFromCountryName: string;
  shipFromPostalCode: string;
  shipFromStateOrProvinceCode: string;
  shipFromStateOrProvinceName: string;
  shipFromPhone: string;
  parcelWeight: string;
  parcelWeightUnit: Integer;
  parcelWidth: Integer;
  parcelHeight: Integer;
  parcelLength: Integer;
  parcelDimensionUnit: Integer;
  shippingServiceCarrier: Integer;
  shippingServiceCarrierName: Integer;
  shippingServiceCarrierServiceName: string;
  shippingServiceCarrierServiceCode: string;
  trackingTracking_number: string;
  trackingTracking_url: string;
  trackingEstimatedDays: Integer;
  shippingLabelLabel_url: string;
  shippingLabelCommercial_invoice_url: string;
  customerInputType: string;
  title: string;
  orderDetailsDisplaySection: string;
  orderBy: string;
  total: Integer;
  count: Integer;
  offset: Integer;
  limit: Integer;
  i: Integer;
  count_i: Integer;

begin
  success := False;

  //  This example assumes the Chilkat API to have been previously unlocked.
  //  See Global Unlock Sample for sample code.

  http := THttp.Create;

  //  Implements the following CURL command:

  //  curl --request GET \
  //       --url 'https://app.ecwid.com/api/v3/storeId/orders?token=token' \
  //       --header 'Accept: application/json'

  //  Use the following online tool to generate HTTP code from a CURL command
  //  Convert a cURL Command to HTTP Source Code

  //  Load the access token previously obtained in Ecwid Get Access Token
  jsonToken := TJsonObject.Create;
  jsonToken.LoadFile('qa_data/tokens/ecwid.json');

  http.SetRequestHeader('Accept','application/json');

  params := TJsonObject.Create;
  params.UpdateInt('limit',100);
  params.UpdateString('email','joe@example.com');
  params.UpdateString('token',jsonToken.StringOf('access_token'));

  resp := THttpResponse.Create;
  success := http.HttpParams('GET','https://app.ecwid.com/api/v3/storeId/orders',params,resp);
  if (success = False) then
    begin
      WriteLn(http.LastErrorText);
      Exit;
    end;

  sbResponseBody := TStringBuilder.Create;
  resp.GetBodySb(sbResponseBody);
  jResp := TJsonObject.Create;
  jResp.LoadSb(sbResponseBody);
  jResp.EmitCompact := False;

  WriteLn('Response Body:');
  WriteLn(jResp.Emit());

  respStatusCode := resp.StatusCode;

  WriteLn('Response Status Code = ' + respStatusCode);
  if (respStatusCode <> 200) then
    begin
      WriteLn('Failed.');
      Exit;
    end;

  //  Sample JSON response:
  //  (Sample code for parsing the JSON response is shown below)

  //  {
  //    "total": 1,
  //    "count": 1,
  //    "offset": 0,
  //    "limit": 100,
  //    "items": [
  //      {
  //        "id": "XJ12H",
  //        "subtotal": 1076.64,
  //        "total": 2014.97,
  //        "giftCardRedemption": 2.23,
  //        "totalBeforeGiftCardRedemption": 2.23,
  //        "giftCardDoubleSpending": false,
  //        "usdTotal": 2014.97,
  //        "tax": 488.48,
  //        "paymentMethod": "Credit or debit card (Mollie)",
  //        "paymentStatus": "PARTIALLY_REFUNDED",
  //        "fulfillmentStatus": "DELIVERED",
  //        "vendorOrderNumber": "XJ12H",
  //        "orderNumber": 1082727626,
  //        "refererUrl": "https://mdemo.ecwid.com/",
  //        "globalReferer": "https://my.ecwid.com/",
  //        "createDate": "2018-05-31 15:08:36 +0000",
  //        "updateDate": "2018-05-31 15:09:35 +0000",
  //        "createTimestamp": 1527779316,
  //        "updateTimestamp": 1527779375,
  //        "hidden": false,
  //        "orderComments": "Test order comments",
  //        "privateAdminNotes": "Must be delivered till Sunday.",
  //        "email": "mscott@gmail.com",
  //        "ipAddress": "123.431.234.243",
  //        "customerId": 40201284,
  //        "customerGroupId": 12345,
  //        "customerGroup": "Gold",
  //        "customerTaxExempt": false,
  //        "customerTaxId": "",
  //        "customerTaxIdValid": false,
  //        "reversedTaxApplied": false,
  //        "discount": 4,
  //        "couponDiscount": 22,
  //        "volumeDiscount": 4,
  //        "membershipBasedDiscount": 0,
  //        "totalAndMembershipBasedDiscount": 0,
  //        "customDiscount": [
  //        ],
  //        "discountCoupon": {
  //          "id": 29567026,
  //          "name": "API Testing",
  //          "code": "APITESTING",
  //          "discountType": "ABS",
  //          "status": "ACTIVE",
  //          "discount": 22,
  //          "launchDate": "2018-05-24 20:00:00 +0000",
  //          "usesLimit": "UNLIMITED",
  //          "applicationLimit": "UNLIMITED",
  //          "creationDate": "2018-05-31 15:08:33 +0000",
  //          "updateDate": "2018-05-24 13:40:32 +0000",
  //          "orderCount": 0
  //        },
  //        "discountInfo": [
  //          {
  //            "value": 4,
  //            "type": "ABS",
  //            "base": "ON_TOTAL",
  //            "orderTotal": 1
  //          }
  //        ],
  //        "items": [
  //          {
  //            "id": 140273658,
  //            "productId": 66722487,
  //            "categoryId": 19563207,
  //            "price": 1060,
  //            "productPrice": 1000,
  //            "sku": "ABCA-IAC",
  //            "quantity": 1,
  //            "shortDescription": "",
  //            "tax": 331.01,
  //            "shipping": 0,
  //            "quantityInStock": 0,
  //            "name": "iMac",
  //            "isShippingRequired": true,
  //            "weight": 0,
  //            "trackQuantity": false,
  //            "fixedShippingRateOnly": false,
  //            "imageUrl": "https://ecwid-images-ru.gcdn.co/images/5035009/391870914.jpg",
  //            "smallThumbnailUrl": "https://ecwid-images-ru.gcdn.co/images/5035009/650638292.jpg",
  //            "hdThumbnailUrl": "https://ecwid-images-ru.gcdn.co/images/5035009/650638293.jpg",
  //            "fixedShippingRate": 0,
  //            "digital": false,
  //            "couponApplied": true,
  //            "selectedOptions": [
  //              {
  //                "name": "Price-Optimizer",
  //                "value": "6",
  //                "valuesArray": [
  //                  "6"
  //                ],
  //                "selections": [
  //                  {
  //                    "selectionTitle": "6",
  //                    "selectionModifier": 6,
  //                    "selectionModifierType": "PERCENT"
  //                  }
  //                ],
  //                "type": "CHOICE"
  //              }
  //            ],
  //            "taxes": [
  //              {
  //                "name": "State tax",
  //                "value": 12,
  //                "total": 124.13,
  //                "taxOnDiscountedSubtotal": 124.13,
  //                "taxOnShipping": 0,
  //                "includeInPrice": false
  //              },
  //              {
  //                "name": "TVA",
  //                "value": 20,
  //                "total": 206.88,
  //                "taxOnDiscountedSubtotal": 206.88,
  //                "taxOnShipping": 0,
  //                "includeInPrice": true
  //              }
  //            ],
  //            "dimensions": {
  //              "length": 0,
  //              "width": 0,
  //              "height": 0
  //            },
  //            "couponAmount": 21.66,
  //            "discounts": [
  //              {
  //                "discountInfo": {
  //                  "value": 4,
  //                  "type": "ABS",
  //                  "base": "ON_TOTAL",
  //                  "orderTotal": 1
  //                },
  //                "total": 3.94
  //              }
  //            ]
  //          },
  //          {
  //            "id": 140273659,
  //            "productId": 66821181,
  //            "categoryId": 0,
  //            "price": 16.64,
  //            "productPrice": 16,
  //            "sku": "001001",
  //            "quantity": 1,
  //            "shortDescription": "This sturdy white, glossy ceramic mug is an essential to your cupboard. This brawny version of ceramic mugs shows it’s ...",
  //            "tax": 157.47,
  //            "shipping": 471.85,
  //            "quantityInStock": 0,
  //            "name": "Mug",
  //            "isShippingRequired": true,
  //            "weight": 0.4,
  //            "trackQuantity": false,
  //            "fixedShippingRateOnly": false,
  //            "imageUrl": "https://ecwid-images-ru.gcdn.co/images/5035009/389900000.jpg",
  //            "smallThumbnailUrl": "https://ecwid-images-ru.gcdn.co/images/5035009/475772545.jpg",
  //            "hdThumbnailUrl": "https://ecwid-images-ru.gcdn.co/images/5035009/408631478.jpg",
  //            "fixedShippingRate": 0,
  //            "digital": false,
  //            "couponApplied": true,
  //            "selectedOptions": [
  //              {
  //                "name": "Color",
  //                "value": "White",
  //                "valuesArray": [
  //                  "White"
  //                ],
  //                "selections": [
  //                  {
  //                    "selectionTitle": "White",
  //                    "selectionModifier": 0,
  //                    "selectionModifierType": "ABSOLUTE"
  //                  }
  //                ],
  //                "type": "CHOICE"
  //              },
  //              {
  //                "name": "Size",
  //                "value": "11oz",
  //                "valuesArray": [
  //                  "11oz"
  //                ],
  //                "selections": [
  //                  {
  //                    "selectionTitle": "11oz",
  //                    "selectionModifier": 0,
  //                    "selectionModifierType": "ABSOLUTE"
  //                  }
  //                ],
  //                "type": "CHOICE"
  //              },
  //              {
  //                "name": "Price-Optimizer",
  //                "value": "4",
  //                "valuesArray": [
  //                  "4"
  //                ],
  //                "selections": [
  //                  {
  //                    "selectionTitle": "4",
  //                    "selectionModifier": 4,
  //                    "selectionModifierType": "PERCENT"
  //                  }
  //                ],
  //                "type": "CHOICE"
  //              }
  //            ],
  //            "taxes": [
  //              {
  //                "name": "State tax",
  //                "value": 12,
  //                "total": 59.05,
  //                "taxOnDiscountedSubtotal": 1.95,
  //                "taxOnShipping": 57.1,
  //                "includeInPrice": false
  //              },
  //              {
  //                "name": "TVA",
  //                "value": 20,
  //                "total": 98.42,
  //                "taxOnDiscountedSubtotal": 3.25,
  //                "taxOnShipping": 95.17,
  //                "includeInPrice": true
  //              }
  //            ],
  //            "dimensions": {
  //              "length": 0,
  //              "width": 0,
  //              "height": 0
  //            },
  //            "couponAmount": 0.34,
  //            "discounts": [
  //              {
  //                "discountInfo": {
  //                  "value": 4,
  //                  "type": "ABS",
  //                  "base": "ON_TOTAL",
  //                  "orderTotal": 1
  //                },
  //                "total": 0.06
  //              }
  //            ]
  //          },
  //          {
  //            "subscriptionId": 123456,
  //            "recurringChargeSettings": {
  //              "recurringInterval": "month",
  //              "recurringIntervalCount": 1
  //            }
  //          }
  //        ],
  //        "refundedAmount": 3.5,
  //        "refunds": [
  //          {
  //            "date": "2017-09-12 10:12:56 +0000",
  //            "source": "CP",
  //            "reason": "Testing!",
  //            "amount": 3.5
  //          }
  //        ],
  //        "billingPerson": {
  //          "name": "Michael Scott",
  //          "companyName": "",
  //          "street": "555 Lackawanna Ave",
  //          "city": "Scranton",
  //          "countryCode": "US",
  //          "countryName": "United States",
  //          "postalCode": "18508",
  //          "stateOrProvinceCode": "PA",
  //          "stateOrProvinceName": "Pennsylvania",
  //          "phone": ""
  //        },
  //        "shippingPerson": {
  //          "name": "Michael Scott",
  //          "companyName": "",
  //          "street": "555 Lackawanna Ave",
  //          "city": "Scranton",
  //          "countryCode": "US",
  //          "countryName": "United States",
  //          "postalCode": "18508",
  //          "stateOrProvinceCode": "PA",
  //          "stateOrProvinceName": "Pennsylvania",
  //          "phone": ""
  //        },
  //        "shippingOption": {
  //          "shippingCarrierName": "Shipping app the-printful",
  //          "shippingMethodName": "USPS Priority Mail",
  //          "shippingRate": 471.85,
  //          "estimatedTransitTime": "1-3",
  //          "isPickup": false
  //        },
  //        "handlingFee": {
  //          "name": "Handling Fee",
  //          "value": 4,
  //          "description": ""
  //        },
  //        "predictedPackage": [
  //          {
  //            "length": 0,
  //            "width": 0,
  //            "height": 0,
  //            "weight": 0.4,
  //            "declaredValue": 1076.64
  //          }
  //        ],
  //        "shipments": [
  //          {
  //            "id": "5e79bd4f-9ebf-4ab8-b901-24c9b48b19eb",
  //            "created": "2020-04-23 19:13:43 +0000",
  //            "shipTo": {
  //              "name": "Michael Scott",
  //              "companyName": "",
  //              "street": "555 Lackawanna Ave",
  //              "city": "Scranton",
  //              "countryCode": "US",
  //              "countryName": "United States",
  //              "postalCode": "18508",
  //              "stateOrProvinceCode": "PA",
  //              "stateOrProvinceName": "Pennsylvania",
  //              "phone": ""
  //            },
  //            "shipFrom": {
  //              "companyName": "Roga Kopyty Inc",
  //              "street": "444 fff",
  //              "city": "New York",
  //              "countryCode": "US",
  //              "countryName": "United States",
  //              "postalCode": "10001",
  //              "stateOrProvinceCode": "NY",
  //              "stateOrProvinceName": "New York",
  //              "phone": "1011991919"
  //            },
  //            "parcel": {
  //              "weight": 0.5,
  //              "weightUnit": 'KILOGRAM',
  //              "width": 10,
  //              "height": 10,
  //              "length": 10,
  //              "dimensionUnit": 'CM'
  //            },
  //            "shippingService": {
  //              "carrier": 'USPS',
  //              "carrierName": 'Shipping,
  //              "carrierServiceName": "Priority Mail",
  //              "carrierServiceCode": "usps_priority"
  //            },
  //            "tracking": {
  //              "tracking_number": "9499907123456123456781",
  //              "tracking_url": "https://tools.usps.com/go/TrackConfirmAction_input?origTrackNum=9499907123456123456781",
  //              "estimatedDays": 3
  //            },
  //            "shippingLabel": {
  //              "label_url": "https://shippo-delivery.s3.amazonaws.com/70ae8117ee1749e393f249d5b77c45e0.pdf?Signature=vDw1ltcyGveVR1OQoUDdzC43BY8%3D&Expires=1437093830&AWSAccessKeyId=AKIAJTHP3LLFMYAWALIA",
  //              "commercial_invoice_url": ""
  //            }
  //          }
  //        ],
  //        "taxesOnShipping": [
  //          {
  //            "name": "State tax",
  //            "value": 12,
  //            "total": 57.1
  //          },
  //          {
  //            "name": "TVA",
  //            "value": 20,
  //            "total": 95.17
  //          }
  //        ],
  //        "paymentModule": "CUSTOM_PAYMENT_APP-mollie-pg",
  //        "additionalInfo": {
  //          "google_customer_id": "2008512504.1526280224"
  //        },
  //        "paymentParams": {},
  //        "orderExtraFields": [
  //          {
  //            "id": "lang",
  //            "value": "en",
  //            "customerInputType": "",
  //            "title": "",
  //            "orderDetailsDisplaySection": "",
  //            "orderBy": "1"
  //          },
  //          {
  //            "id": "askHowYouFoundUsApp",
  //            "value": "From a friend",
  //            "customerInputType": "SELECT",
  //            "title": "How did you hear about us?",
  //            "orderDetailsDisplaySection": "order_comments",
  //            "orderBy": "2"
  //          }
  //        ],
  //        "acceptMarketing": true,
  //        "refererId": "Amazon",
  //        "disableAllCustomerNotifications": false,
  //        "externalFulfillment": false,
  //        "pricesIncludeTax": false
  //      }
  //    ]
  //  }

  //  Sample code for parsing the JSON response...
  //  Use the following online tool to generate parsing code from sample JSON:
  //  Generate Parsing Code from JSON

  json1 := TJsonObject.Create;

  total := jResp.IntOf('total');
  count := jResp.IntOf('count');
  offset := jResp.IntOf('offset');
  limit := jResp.IntOf('limit');
  i := 0;
  count_i := jResp.SizeOfArray('items');
  while i < count_i do
    begin
      jResp.I := i;
      id := jResp.StringOf('items[i].id');
      subtotal := jResp.StringOf('items[i].subtotal');
      total_str := jResp.StringOf('items[i].total');
      giftCardRedemption := jResp.StringOf('items[i].giftCardRedemption');
      totalBeforeGiftCardRedemption := jResp.StringOf('items[i].totalBeforeGiftCardRedemption');
      giftCardDoubleSpending := jResp.BoolOf('items[i].giftCardDoubleSpending');
      usdTotal := jResp.StringOf('items[i].usdTotal');
      tax := jResp.StringOf('items[i].tax');
      paymentMethod := jResp.StringOf('items[i].paymentMethod');
      paymentStatus := jResp.StringOf('items[i].paymentStatus');
      fulfillmentStatus := jResp.StringOf('items[i].fulfillmentStatus');
      vendorOrderNumber := jResp.StringOf('items[i].vendorOrderNumber');
      orderNumber := jResp.IntOf('items[i].orderNumber');
      refererUrl := jResp.StringOf('items[i].refererUrl');
      globalReferer := jResp.StringOf('items[i].globalReferer');
      createDate := jResp.StringOf('items[i].createDate');
      updateDate := jResp.StringOf('items[i].updateDate');
      createTimestamp := jResp.IntOf('items[i].createTimestamp');
      updateTimestamp := jResp.IntOf('items[i].updateTimestamp');
      hidden := jResp.BoolOf('items[i].hidden');
      orderComments := jResp.StringOf('items[i].orderComments');
      privateAdminNotes := jResp.StringOf('items[i].privateAdminNotes');
      email := jResp.StringOf('items[i].email');
      ipAddress := jResp.StringOf('items[i].ipAddress');
      customerId := jResp.IntOf('items[i].customerId');
      customerGroupId := jResp.IntOf('items[i].customerGroupId');
      customerGroup := jResp.StringOf('items[i].customerGroup');
      customerTaxExempt := jResp.BoolOf('items[i].customerTaxExempt');
      customerTaxId := jResp.StringOf('items[i].customerTaxId');
      customerTaxIdValid := jResp.BoolOf('items[i].customerTaxIdValid');
      reversedTaxApplied := jResp.BoolOf('items[i].reversedTaxApplied');
      discount := jResp.IntOf('items[i].discount');
      couponDiscount := jResp.IntOf('items[i].couponDiscount');
      volumeDiscount := jResp.IntOf('items[i].volumeDiscount');
      membershipBasedDiscount := jResp.IntOf('items[i].membershipBasedDiscount');
      totalAndMembershipBasedDiscount := jResp.IntOf('items[i].totalAndMembershipBasedDiscount');
      discountCouponId := jResp.IntOf('items[i].discountCoupon.id');
      discountCouponName := jResp.StringOf('items[i].discountCoupon.name');
      discountCouponCode := jResp.StringOf('items[i].discountCoupon.code');
      discountCouponDiscountType := jResp.StringOf('items[i].discountCoupon.discountType');
      discountCouponStatus := jResp.StringOf('items[i].discountCoupon.status');
      discountCouponDiscount := jResp.IntOf('items[i].discountCoupon.discount');
      discountCouponLaunchDate := jResp.StringOf('items[i].discountCoupon.launchDate');
      discountCouponUsesLimit := jResp.StringOf('items[i].discountCoupon.usesLimit');
      discountCouponApplicationLimit := jResp.StringOf('items[i].discountCoupon.applicationLimit');
      discountCouponCreationDate := jResp.StringOf('items[i].discountCoupon.creationDate');
      discountCouponUpdateDate := jResp.StringOf('items[i].discountCoupon.updateDate');
      discountCouponOrderCount := jResp.IntOf('items[i].discountCoupon.orderCount');
      refundedAmount := jResp.StringOf('items[i].refundedAmount');
      billingPersonName := jResp.StringOf('items[i].billingPerson.name');
      billingPersonCompanyName := jResp.StringOf('items[i].billingPerson.companyName');
      billingPersonStreet := jResp.StringOf('items[i].billingPerson.street');
      billingPersonCity := jResp.StringOf('items[i].billingPerson.city');
      billingPersonCountryCode := jResp.StringOf('items[i].billingPerson.countryCode');
      billingPersonCountryName := jResp.StringOf('items[i].billingPerson.countryName');
      billingPersonPostalCode := jResp.StringOf('items[i].billingPerson.postalCode');
      billingPersonStateOrProvinceCode := jResp.StringOf('items[i].billingPerson.stateOrProvinceCode');
      billingPersonStateOrProvinceName := jResp.StringOf('items[i].billingPerson.stateOrProvinceName');
      billingPersonPhone := jResp.StringOf('items[i].billingPerson.phone');
      shippingPersonName := jResp.StringOf('items[i].shippingPerson.name');
      shippingPersonCompanyName := jResp.StringOf('items[i].shippingPerson.companyName');
      shippingPersonStreet := jResp.StringOf('items[i].shippingPerson.street');
      shippingPersonCity := jResp.StringOf('items[i].shippingPerson.city');
      shippingPersonCountryCode := jResp.StringOf('items[i].shippingPerson.countryCode');
      shippingPersonCountryName := jResp.StringOf('items[i].shippingPerson.countryName');
      shippingPersonPostalCode := jResp.StringOf('items[i].shippingPerson.postalCode');
      shippingPersonStateOrProvinceCode := jResp.StringOf('items[i].shippingPerson.stateOrProvinceCode');
      shippingPersonStateOrProvinceName := jResp.StringOf('items[i].shippingPerson.stateOrProvinceName');
      shippingPersonPhone := jResp.StringOf('items[i].shippingPerson.phone');
      shippingOptionShippingCarrierName := jResp.StringOf('items[i].shippingOption.shippingCarrierName');
      shippingOptionShippingMethodName := jResp.StringOf('items[i].shippingOption.shippingMethodName');
      shippingOptionShippingRate := jResp.StringOf('items[i].shippingOption.shippingRate');
      shippingOptionEstimatedTransitTime := jResp.StringOf('items[i].shippingOption.estimatedTransitTime');
      shippingOptionIsPickup := jResp.BoolOf('items[i].shippingOption.isPickup');
      handlingFeeName := jResp.StringOf('items[i].handlingFee.name');
      handlingFeeValue := jResp.IntOf('items[i].handlingFee.value');
      handlingFeeDescription := jResp.StringOf('items[i].handlingFee.description');
      paymentModule := jResp.StringOf('items[i].paymentModule');
      additionalInfoGoogle_customer_id := jResp.StringOf('items[i].additionalInfo.google_customer_id');
      acceptMarketing := jResp.BoolOf('items[i].acceptMarketing');
      refererId := jResp.StringOf('items[i].refererId');
      disableAllCustomerNotifications := jResp.BoolOf('items[i].disableAllCustomerNotifications');
      externalFulfillment := jResp.BoolOf('items[i].externalFulfillment');
      pricesIncludeTax := jResp.BoolOf('items[i].pricesIncludeTax');
      j := 0;
      count_j := jResp.SizeOfArray('items[i].customDiscount');
      while j < count_j do
        begin
          jResp.J := j;
          j := j + 1;
        end;

      j := 0;
      count_j := jResp.SizeOfArray('items[i].discountInfo');
      while j < count_j do
        begin
          jResp.J := j;
          value := jResp.IntOf('items[i].discountInfo[j].value');
          v_type := jResp.StringOf('items[i].discountInfo[j].type');
          base := jResp.StringOf('items[i].discountInfo[j].base');
          orderTotal := jResp.IntOf('items[i].discountInfo[j].orderTotal');
          j := j + 1;
        end;

      j := 0;
      count_j := jResp.SizeOfArray('items[i].items');
      while j < count_j do
        begin
          jResp.J := j;
          id_int := jResp.IntOf('items[i].items[j].id');
          productId := jResp.IntOf('items[i].items[j].productId');
          categoryId := jResp.IntOf('items[i].items[j].categoryId');
          price := jResp.IntOf('items[i].items[j].price');
          productPrice := jResp.IntOf('items[i].items[j].productPrice');
          sku := jResp.StringOf('items[i].items[j].sku');
          quantity := jResp.IntOf('items[i].items[j].quantity');
          shortDescription := jResp.StringOf('items[i].items[j].shortDescription');
          tax := jResp.StringOf('items[i].items[j].tax');
          shipping := jResp.IntOf('items[i].items[j].shipping');
          quantityInStock := jResp.IntOf('items[i].items[j].quantityInStock');
          name := jResp.StringOf('items[i].items[j].name');
          isShippingRequired := jResp.BoolOf('items[i].items[j].isShippingRequired');
          weight := jResp.IntOf('items[i].items[j].weight');
          trackQuantity := jResp.BoolOf('items[i].items[j].trackQuantity');
          fixedShippingRateOnly := jResp.BoolOf('items[i].items[j].fixedShippingRateOnly');
          imageUrl := jResp.StringOf('items[i].items[j].imageUrl');
          smallThumbnailUrl := jResp.StringOf('items[i].items[j].smallThumbnailUrl');
          hdThumbnailUrl := jResp.StringOf('items[i].items[j].hdThumbnailUrl');
          fixedShippingRate := jResp.IntOf('items[i].items[j].fixedShippingRate');
          digital := jResp.BoolOf('items[i].items[j].digital');
          couponApplied := jResp.BoolOf('items[i].items[j].couponApplied');
          dimensionsLength := jResp.IntOf('items[i].items[j].dimensions.length');
          dimensionsWidth := jResp.IntOf('items[i].items[j].dimensions.width');
          dimensionsHeight := jResp.IntOf('items[i].items[j].dimensions.height');
          couponAmount := jResp.StringOf('items[i].items[j].couponAmount');
          subscriptionId := jResp.IntOf('items[i].items[j].subscriptionId');
          recurringChargeSettingsRecurringInterval := jResp.StringOf('items[i].items[j].recurringChargeSettings.recurringInterval');
          recurringChargeSettingsRecurringIntervalCount := jResp.IntOf('items[i].items[j].recurringChargeSettings.recurringIntervalCount');
          k := 0;
          count_k := jResp.SizeOfArray('items[i].items[j].selectedOptions');
          while k < count_k do
            begin
              jResp.K := k;
              name := jResp.StringOf('items[i].items[j].selectedOptions[k].name');
              value_str := jResp.StringOf('items[i].items[j].selectedOptions[k].value');
              v_type := jResp.StringOf('items[i].items[j].selectedOptions[k].type');
              jResp.ObjectOf2('items[i].items[j].selectedOptions[k]',json1);

              i1 := 0;
              count_i1 := json1.SizeOfArray('valuesArray');
              while i1 < count_i1 do
                begin
                  json1.I := i1;
                  strVal := json1.StringOf('valuesArray[i]');
                  i1 := i1 + 1;
                end;

              jResp.ObjectOf2('items[i].items[j].selectedOptions[k]',json1);
              i1 := 0;
              count_i1 := json1.SizeOfArray('selections');
              while i1 < count_i1 do
                begin
                  json1.I := i1;
                  selectionTitle := json1.StringOf('selections[i].selectionTitle');
                  selectionModifier := json1.IntOf('selections[i].selectionModifier');
                  selectionModifierType := json1.StringOf('selections[i].selectionModifierType');
                  i1 := i1 + 1;
                end;

              k := k + 1;
            end;

          k := 0;
          count_k := jResp.SizeOfArray('items[i].items[j].taxes');
          while k < count_k do
            begin
              jResp.K := k;
              name := jResp.StringOf('items[i].items[j].taxes[k].name');
              value := jResp.IntOf('items[i].items[j].taxes[k].value');
              total_str := jResp.StringOf('items[i].items[j].taxes[k].total');
              taxOnDiscountedSubtotal := jResp.StringOf('items[i].items[j].taxes[k].taxOnDiscountedSubtotal');
              taxOnShipping := jResp.IntOf('items[i].items[j].taxes[k].taxOnShipping');
              includeInPrice := jResp.BoolOf('items[i].items[j].taxes[k].includeInPrice');
              k := k + 1;
            end;

          k := 0;
          count_k := jResp.SizeOfArray('items[i].items[j].discounts');
          while k < count_k do
            begin
              jResp.K := k;
              discountInfoValue := jResp.IntOf('items[i].items[j].discounts[k].discountInfo.value');
              discountInfoType := jResp.StringOf('items[i].items[j].discounts[k].discountInfo.type');
              discountInfoBase := jResp.StringOf('items[i].items[j].discounts[k].discountInfo.base');
              discountInfoOrderTotal := jResp.IntOf('items[i].items[j].discounts[k].discountInfo.orderTotal');
              total_str := jResp.StringOf('items[i].items[j].discounts[k].total');
              k := k + 1;
            end;

          j := j + 1;
        end;

      j := 0;
      count_j := jResp.SizeOfArray('items[i].refunds');
      while j < count_j do
        begin
          jResp.J := j;
          date := jResp.StringOf('items[i].refunds[j].date');
          source := jResp.StringOf('items[i].refunds[j].source');
          reason := jResp.StringOf('items[i].refunds[j].reason');
          amount := jResp.StringOf('items[i].refunds[j].amount');
          j := j + 1;
        end;

      j := 0;
      count_j := jResp.SizeOfArray('items[i].predictedPackage');
      while j < count_j do
        begin
          jResp.J := j;
          length := jResp.IntOf('items[i].predictedPackage[j].length');
          width := jResp.IntOf('items[i].predictedPackage[j].width');
          height := jResp.IntOf('items[i].predictedPackage[j].height');
          weight_str := jResp.StringOf('items[i].predictedPackage[j].weight');
          declaredValue := jResp.StringOf('items[i].predictedPackage[j].declaredValue');
          j := j + 1;
        end;

      j := 0;
      count_j := jResp.SizeOfArray('items[i].shipments');
      while j < count_j do
        begin
          jResp.J := j;
          id := jResp.StringOf('items[i].shipments[j].id');
          created := jResp.StringOf('items[i].shipments[j].created');
          shipToName := jResp.StringOf('items[i].shipments[j].shipTo.name');
          shipToCompanyName := jResp.StringOf('items[i].shipments[j].shipTo.companyName');
          shipToStreet := jResp.StringOf('items[i].shipments[j].shipTo.street');
          shipToCity := jResp.StringOf('items[i].shipments[j].shipTo.city');
          shipToCountryCode := jResp.StringOf('items[i].shipments[j].shipTo.countryCode');
          shipToCountryName := jResp.StringOf('items[i].shipments[j].shipTo.countryName');
          shipToPostalCode := jResp.StringOf('items[i].shipments[j].shipTo.postalCode');
          shipToStateOrProvinceCode := jResp.StringOf('items[i].shipments[j].shipTo.stateOrProvinceCode');
          shipToStateOrProvinceName := jResp.StringOf('items[i].shipments[j].shipTo.stateOrProvinceName');
          shipToPhone := jResp.StringOf('items[i].shipments[j].shipTo.phone');
          shipFromCompanyName := jResp.StringOf('items[i].shipments[j].shipFrom.companyName');
          shipFromStreet := jResp.StringOf('items[i].shipments[j].shipFrom.street');
          shipFromCity := jResp.StringOf('items[i].shipments[j].shipFrom.city');
          shipFromCountryCode := jResp.StringOf('items[i].shipments[j].shipFrom.countryCode');
          shipFromCountryName := jResp.StringOf('items[i].shipments[j].shipFrom.countryName');
          shipFromPostalCode := jResp.StringOf('items[i].shipments[j].shipFrom.postalCode');
          shipFromStateOrProvinceCode := jResp.StringOf('items[i].shipments[j].shipFrom.stateOrProvinceCode');
          shipFromStateOrProvinceName := jResp.StringOf('items[i].shipments[j].shipFrom.stateOrProvinceName');
          shipFromPhone := jResp.StringOf('items[i].shipments[j].shipFrom.phone');
          parcelWeight := jResp.StringOf('items[i].shipments[j].parcel.weight');
          parcelWeightUnit := jResp.IntOf('items[i].shipments[j].parcel.weightUnit');
          parcelWidth := jResp.IntOf('items[i].shipments[j].parcel.width');
          parcelHeight := jResp.IntOf('items[i].shipments[j].parcel.height');
          parcelLength := jResp.IntOf('items[i].shipments[j].parcel.length');
          parcelDimensionUnit := jResp.IntOf('items[i].shipments[j].parcel.dimensionUnit');
          shippingServiceCarrier := jResp.IntOf('items[i].shipments[j].shippingService.carrier');
          shippingServiceCarrierName := jResp.IntOf('items[i].shipments[j].shippingService.carrierName');
          shippingServiceCarrierServiceName := jResp.StringOf('items[i].shipments[j].shippingService.carrierServiceName');
          shippingServiceCarrierServiceCode := jResp.StringOf('items[i].shipments[j].shippingService.carrierServiceCode');
          trackingTracking_number := jResp.StringOf('items[i].shipments[j].tracking.tracking_number');
          trackingTracking_url := jResp.StringOf('items[i].shipments[j].tracking.tracking_url');
          trackingEstimatedDays := jResp.IntOf('items[i].shipments[j].tracking.estimatedDays');
          shippingLabelLabel_url := jResp.StringOf('items[i].shipments[j].shippingLabel.label_url');
          shippingLabelCommercial_invoice_url := jResp.StringOf('items[i].shipments[j].shippingLabel.commercial_invoice_url');
          j := j + 1;
        end;

      j := 0;
      count_j := jResp.SizeOfArray('items[i].taxesOnShipping');
      while j < count_j do
        begin
          jResp.J := j;
          name := jResp.StringOf('items[i].taxesOnShipping[j].name');
          value := jResp.IntOf('items[i].taxesOnShipping[j].value');
          total_str := jResp.StringOf('items[i].taxesOnShipping[j].total');
          j := j + 1;
        end;

      j := 0;
      count_j := jResp.SizeOfArray('items[i].orderExtraFields');
      while j < count_j do
        begin
          jResp.J := j;
          id := jResp.StringOf('items[i].orderExtraFields[j].id');
          value_str := jResp.StringOf('items[i].orderExtraFields[j].value');
          customerInputType := jResp.StringOf('items[i].orderExtraFields[j].customerInputType');
          title := jResp.StringOf('items[i].orderExtraFields[j].title');
          orderDetailsDisplaySection := jResp.StringOf('items[i].orderExtraFields[j].orderDetailsDisplaySection');
          orderBy := jResp.StringOf('items[i].orderExtraFields[j].orderBy');
          j := j + 1;
        end;

      i := i + 1;
    end;



  http.Free;
  jsonToken.Free;
  params.Free;
  resp.Free;
  sbResponseBody.Free;
  jResp.Free;
  json1.Free;

end;

// ---------------------------------------------------------------------------

begin

  try
    RunDemo;
  except
    on E: Exception do
      WriteLn('Unhandled exception: ', E.ClassName, ': ', E.Message);
  end;

  WriteLn;
  {$IFDEF MSWINDOWS}
  WriteLn('Press Enter to exit...');
  ReadLn;
  {$ENDIF}
end.