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 Attribute | Description |
Endpoint | https://t{tenantId}.{host}/api/commerce/orders |
Supported Formats | JSON |
HTTP Method | POST |
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:
Parameter | Type | Description |
type | string | Whether the order was placed “ONLINE” or “OFFLINE.” |
externalId | string | The 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. |
string | The primary email address of the shopper. | |
items | array | The line items of the order. See the table below for the parameters that should be included for each object entry of the array. |
isImport | boolean | Whether the order is imported or not. This should always be “true” for Curbside-only orders that were made on a third-party storefront. |
tenantId | integer | The unique identifier assigned to the tenant by Kibo. |
siteId | integer | The unique identifier assigned to the site by Kibo. |
fulfillmentInfo | object | The fulfillment information for the order. See the table below for the parameters included in this object. |
isOptInForSMS | boolean | Whether or not the customer chose to opt in to SMS notifications or not. |
alternateContact | object | The 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:
Parameter | Type | Description |
type | string | Whether the order was placed “ONLINE” or “OFFLINE.” |
fulfillmentLocationCode | string | The unique identifier for the location that the order will be picked up at. |
fulfillmentMethod | string | This should always be “Curbside” to denote a Curbside Delivery order. |
quantity | integer | The quantity of this line item. |
product | object | The product details that identify this item. The below parameters in this table make up the product object. |
imageUrl | string | Contained in the product object. The URL link for the image associated with the product. |
productCode | string | Contained in the product object. A unique identifier for the product, such as a preferred SKU or UPC code. |
name | string | Contained in the product object. The name of the product. |
description | string | Contained 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.
Parameter | Type | Description |
string | The email address of the contact. | |
firstName | string | The first name of the contact. |
middleNameOrInitial | string | The middle name of the contact, if applicable. |
lastNameOrSurname | string | The first name of the contact. |
companyOrOrganization | string | The organization that the contact represents, if applicable. |
phoneNumbers | object | An 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. |
address | object | The primary billing/shipping address associated with the contact. The parameters listed below make up the address object. |
address1 | string | The first line of the street address. |
address2 | string | The optional second line of the street address. |
address3 | string | The optional third line of the street address. |
address4 | string | The optional fourth line of the street address. |
cityOrTown | string | The city or town that the address is located in. |
stateOrProvince | string | The state or province that the address is located in, for US or Canadian addresses. |
postalOrZipCode | string | The postal or zip code for the street address. |
countryCode | string | The two-letter country code that the address is located in. |
addressType | string | Whether this is a “Residential” or “Commercial” address. |
isValidated | boolean | Whether 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.
Parameter | Type | Description |
firstName | string | The first name of the alternate contact. |
lastNameOrSurname | string | The last name of the alternate contact. |
emailAddress | string | The email address of the alternate contact. |
phoneNumber | string | The 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.