Import Curbside Order

This guide applies to standalone Curbside Delivery implementations. Order Management users integrating Curbside as an additional fulfillment type can use the standard Order API calls.

When a Curbside Delivery order is imported from a storefront into Kibo, it only requires a minimal amount of order data. This is especially relevant to Curbside-only users who are not otherwise implemented with Kibo’s order management or ecommerce solutions through the Unified Commerce Platform. In particular, Curbside orders do not require any pricing or payment values – Curbside focuses solely on the necessary fulfillment information.

When importing a Curbside order into Kibo, use the simplified Create Order API template outlined here.

Call AttributeDescription
Endpointhttps://t{tenantId}.{host}/api/commerce/orders
Supported FormatsJSON
HTTP MethodPOST

Ask the Kibo team for additional examples and Postman samples if desired.

Example

The example case creates a call that imports a Curbside order with the following characteristics:

  • External ID 0123456789, assigned by a third-party storefront
  • Includes a single line item with a quantity of 1
  • Placed by a customer who opted in to SMS Curbside notifications
  • Includes an alternate pickup contact specified by the customer

This guide will demonstrate how to put together the request.

Request Parameters

The following parameters are provided with this request:

ParameterTypeDescription
typestringWhether the order was placed “ONLINE” or “OFFLINE.”
externalIdstringThe identifier for the order assigned by the external storefront. This is the number that will be displayed to customers in their order notification emails and other messages.
emailstringThe primary email address of the shopper.
itemsarrayThe line items of the order. See the table below for the parameters that should be included for each object entry of the array.
isImportbooleanWhether the order is imported or not. This should always be “true” for Curbside-only orders that were made on a third-party storefront.
tenantIdintegerThe unique identifier assigned to the tenant by Kibo.
siteIdintegerThe unique identifier assigned to the site by Kibo.
fulfillmentInfoobjectThe fulfillment information for the order. See the table below for the parameters included in this object.
isOptInForSMSbooleanWhether or not the customer chose to opt in to SMS notifications or not.
alternateContactobjectThe alternate order pickup person specified by the customer.

Item Information

The items object is an array, with each entry being an item defined with the below fields:

ParameterTypeDescription
typestringWhether the order was placed “ONLINE” or “OFFLINE.”
fulfillmentLocationCodestringThe unique identifier for the location that the order will be picked up at.
fulfillmentMethodstringThis should always be “Curbside” to denote a Curbside Delivery order.
quantityintegerThe quantity of this line item.
productobjectThe product details that identify this item. The below parameters in this table make up the product object.
imageUrlstringContained in the product object. The URL link for the image associated with the product.
productCodestringContained in the product object. A unique identifier for the product, such as a preferred SKU or UPC code.
namestringContained in the product object. The name of the product.
descriptionstringContained in the product object. A description of the product.

Fulfillment Information

The data populating fulfillmentInfo consists of one other object, fulfillmentContact, which is information about the designated pickup contact (generally the customer who placed the order). This object is defined below, but the example request at the end of this guide provides a better visual depiction of how this information is built.

ParameterTypeDescription
emailstringThe email address of the contact.
firstNamestringThe first name of the contact.
middleNameOrInitialstringThe middle name of the contact, if applicable.
lastNameOrSurnamestringThe first name of the contact.
companyOrOrganizationstringThe organization that the contact represents, if applicable.
phoneNumbersobjectAn object that supports string parameters for “home”, “work”, or “mobile” for the contact’s phone numbers. As Curbside Delivery is often used with SMS notifications between the customer and retailer, the only phone number that is generally used is “mobile” which is where the SMS message will be sent.
addressobjectThe primary billing/shipping address associated with the contact. The parameters listed below make up the address object.
address1stringThe first line of the street address.
address2stringThe optional second line of the street address.
address3stringThe optional third line of the street address.
address4stringThe optional fourth line of the street address.
cityOrTownstringThe city or town that the address is located in.
stateOrProvincestringThe state or province that the address is located in, for US or Canadian addresses.
postalOrZipCodestringThe postal or zip code for the street address.
countryCodestringThe two-letter country code that the address is located in.
addressTypestringWhether this is a “Residential” or “Commercial” address.
isValidatedbooleanWhether or not validation was done to approve the address format.

Alternate Contact Information

The alternate contact is a simple object with the secondary pickup person's contact information. 

ParameterTypeDescription
firstNamestringThe first name of the alternate contact.
lastNameOrSurnamestringThe last name of the alternate contact.
emailAddressstringThe email address of the alternate contact.
phoneNumberstringThe phone number of the alternate contact.

The Full Request

Provide the external order ID, line items, customer information, fulfillment information, and SMS preference in the request body. Values such as additional address lines that are not required can be left null.

{
  "type": "Offline",
  "externalId": "0123456789",
  "email": "shopper@some.email",
  "items": [
    {
      "fulfillmentLocationCode": "location_1",
      "fulfillmentMethod": "Curbside",
      "product": {
        "imageUrl": "website.com/example.jpg",
        "productCode": "ex_01",
        "name": "Standard Product",
        "description": "Standard Product"
      },
      "quantity": 1
    }
  ],

  "isImport": true,
  "tenantId": 00000,
  "siteId": 11111,
  "fulfillmentInfo": {
    "fulfillmentContact": {
      "email": "jsmith@example.net",
      "firstName": "John",
      "middleNameOrInitial": "",
      "lastNameOrSurname": "Smith",
      "companyOrOrganization": "",
      "phoneNumbers": {
        "mobile": "000-000-0000"
      },
      "address": {
        "address1": "111 Example Ave",
        "address2": "",
        "address3": "",
        "address4": "",
        "cityOrTown": "Example",
        "stateOrProvince": "TX",
        "postalOrZipCode": "70000",
        "countryCode": "US",
        "addressType": "Residential",
        "isValidated": true
      }
    }
  },
  "isOptInForSms":true,
  "alternateContact": {
    "firstName": "Example",
    "lastNameOrSurname": "Alternate",
    "emailAddress": "alternatecontact@kibocommerce.com",
    "phoneNumber": "111-111-1111"
  }
}

The Full Response

If successful, a 200 OK response code will be received along with the order data.