Flexible fulfillment
With OrderCloud, a developer can create and submit an order with fewer than 10 lines of code. This section describes the individual steps for building an online store. You can also orchestrate this process without user interaction as part of automated fulfillment or integrations.
OrderCloud provides many extension points that allow you to integrate your own logic. Organizations have implemented simple B2C experiences, loyalty websites where payment uses points for products, and B2B marketplaces with dozens of suppliers fulfilling orders. OrderCloud supports a wide range of fulfillment models.
Order lifecycle
Because OrderCloud is set up to support marketplaces with a mix of buyers and suppliers, the platform uses the concept of incoming and outgoing orders, depending on who is interacting with the order. This is referred to as Order Direction and may require clarification initially, but it is a critical foundation for implementing a broader marketplace strategy with OrderCloud.
Secondly, as part of the order lifecycle, OrderCloud supports multiple statuses with individual timestamps of when the status changed. Some implementations may find it useful to extend to other statuses specific to operating their marketplaces.
Order direction within marketplaces
While most commerce solutions built on OrderCloud may only use the interaction between the Buyer and Seller (you), OrderCloud also supports interacting with multiple Suppliers as a broader marketplace.
This is also part of OrderCloud's robust security in supporting lots of different 'users' in order lifecycle management. The platform will take care of making sure only the right orders are visible based on the credentials used to access OrderCloud's APIs.

To walk through a basic example, a buyer creates a new order with the ID of PO9123.
Buyer credentials from your website access their order via the API call:
Seller credentials which administer your website would access the same order from the API call:
The same concept applies when dealing with orders from the seller (you) to the supplier, and that will be covered in the section on Order Fulfillment.
Order statuses
Within OrderCloud, orders flow through various statuses, some are automatically handled for you based on coordinating other order updates, such as tracking which shipments have been applied to the order.
| Status | Triggered By | Description |
|---|---|---|
| Unsubmitted | When the order is first created | Similar to a 'cart' in any other commerce platform. |
| Open | When an order is submitted | After going through checkout and the user submits the order, it is now in an open status |
| Awaiting Approval (Optional) | Mainly for B2B solutions and the optional use of approval rules within OrderCloud | Submitted, but one or more rules must be approved first |
| Declined (Optional) | When an approver declines the order | Mainly for B2B solutions, an approver can decline the order |
| Completed | Submitted and all lines and quantities have been shipped | OrderCloud automatically updates this status as part of shipping updates |
| Canceled | Manually set to close and lock the order from any other modification | Similar to a soft delete to keep the order in the system, but treat it as deleted |
With each of these statuses, the order has supplementary fields to record when the status changed. These timestamps and statuses can be used to query orders from the system, including providing user experiences with tabbed or filterable views over all their orders by status.
For example, you (the seller) wants to find all unsubmitted orders (carts) created before a specific date, sorted by most recently created:
See OrderCloud Orders for more details.
Checkout process

The checkout process includes:
-
Build an order - Initial order creation and adding items to an order.
-
Estimate shipping - Integration with third-party shipping services to present options at checkout.
-
Order calculate - Apply pricing and tax updates to the order based on your distribution model.
-
Order submit - Built-in and custom order validation as part of the submission.
-
Order forwarding - Split orders across multiple suppliers to track fulfillment.
For simplicity, approvals are not included in this flow.
Building an order
For both anonymous and logged in users, OrderCloud can support building an order with basic API calls, either directly from the front end experience (browser) or as orchestrated through your own middleware for greater control.
-
Create an order - based on the logged-in user, OrderCloud will default the buyer account, shipping address, and other information required at the header level.
-
Adding lines - creating an order line only requires a product ID and quantity. OrderCloud will automatically associate the product details and pricing.
-
Changing addresses - depending on the commerce solution, can allow the shopper to create and assign their own addresses, or for B2B commerce you can restrict them to a pre-defined list of addresses to ship to.
As with all areas of OrderCloud, you can store any custom data you choose at the order or order line data. Examples might be capturing additional user-entered information such as GL codes, comments, or inventory locations.
See Creating Your First Order for more details.
Estimate shipping
OrderCloud provides integration capabilities that allow you to integrate your own fulfillment and shipping logic from third-party services or from your own warehouse or ERP systems. This flexibility enables you to adapt as new fulfillment opportunities arise.
You can:
- As a distributor, provide one set of shipping options for the whole order
- As a retailer, provide shipping or pick up options per order line
- As a marketplace, provide shipping options per supplier on the order

-
Shipment Estimate(s) - to support diverse fulfillment strategies, you can bundle multiple shipment estimates for the customer to pick from. An example might be to allow two lines to be picked up in-store, and another line offers ground, two-day, or next-day shipping.
-
Select shipping Method(s) - each shipping estimate can have multiple ship methods, such as pick up in-store, ground, two-day, or next-day shipping. OrderCloud provides APIs to mark which ship method should be used for each line item, providing flexibility for B2B and B2C commerce.
Since you control this integration, you can customize costs and adjustments for fulfillment or shipping options for different customers and channels, such as private fleet options for B2B customers and standard UPS for consumer channels.
See Shipment Estimate API for more details.
Order calculation
This is an optional integration you can use. Building an order can be very dynamic, sometimes adding multiple lines at once or importing dozens of order lines from a device or file. To make your order processing efficient, you initiate calling the order calculate to re-process pricing, promotions, and taxes only when you need to. This can be after each line added or updated asynchronously depending on the experience you need to provide to users.
You can provide your own tax logic, and override line item totals, shipping, and promotions with this optional integration event.
See Calculate Order Integration Event for more details.
Apply payments
OrderCloud has built-in support for referencing cost centers, credit cards, and spending accounts. These can be associated with individual users, user groups, or buyers to use as part of purchasing.
-
Cost centers - used for tracking associated orders and expenses back to cost centers. This is only for reporting, like general ledger codes, and does not drive any specific logic out of the box.
-
Credit cards - OrderCloud only stores the token and descriptive information to protect PCI data and leaves it up to you as to which payment gateway or provider you choose to use with your solution.
-
Spending accounts - a flexible concept for associating a balance that might be part of a loyalty program or represent a virtual gift card, additionally for invoice or credit operations in B2B
For any given order, you can apply one or more payments, such as a gift card, and cover the rest with a credit card or plugging in your own interpretations of various payment types.

Payments can also store transactions underneath them to track subsequent ledger changes or events related to that payment. For credit cards, you can track the original authorization amount, along with fund capture events. If you need to then credit funds, you can use the transaction model on the original payment to manage and track this.
See OrderCloud Payments for more details.
Order submit
As part of order submission, OrderCloud validates the state of the order. Custom order validation is supported, which is covered in the next section.
Built-in, OrderCloud validates for the following:
- The order was not already submitted
- If you are using order calculate integrations, guarantee it was run successfully
- Validate that all payments were accepted
- Validate all promotions applied to the order
- Check inventory availability for products setup with thresholds
Once the order is submitted, you can pull the orders into your fulfillment system and/or split them automatically across multiple suppliers. The aspect of downstream order synchronization is in a later section.
See Submitting your first order for more details.
Order fulfillment
Once an order is submitted through the checkout process by the buyer, you (as the seller) can update the status of the order or incorporate separate suppliers into the fulfillment process directly. To learn about what happens before order submission, read the Checkout Process section above.
Order shipments
Shipments in OrderCloud are straightforward and handle most use cases:
-
A single shipment covers multiple lines or a whole order
-
Multiple shipments might be required for a single line to cover all quantity ordered

Shipment is a concept that can be used for other fulfillment methods, some organizations have used this to note in-store pick up options and utilized OrderCloud's extensible properties (XP) to store other metadata to craft any fulfillment experience necessary.
Once all lines for all quantities have associated shipments with a shipment date populated, OrderCloud will move the status of the order to completed for you automatically.
See OrderCloud Shipments for more details.
Buyer preference in fulfillment
As covered in a previous section on Estimate Shipping, OrderCloud can provide any number of ways to communicate shipment options to the buyer at checkout. This could have been to pick a fulfillment method for the whole order, per order line, or per supplier.
This shipment preference data is stored with the original buyer order and can be accessed through OrderCloud APIs. Depending on if you choose to do basic commerce or are setting up a more complex marketplace on OrderCloud, you can dictate what and how that buyer preference is communicated.
See Order Worksheets for more details.
Seller managed fulfillment (Basic Commerce)
OrderCloud can handle basic commerce scenarios that other platforms support. The seller (you) may have systems in place, most likely an order management system (OMS) or enterprise resource planning system (ERP) such as NetSuite or SAP where your distribution and financials are centrally managed. You simply want the order to land in your system to manage from there.

- Buyer goes through checkout and submits an order
- The whole order is picked up and routed into the seller's system
- Seller creates one or more shipments for the lines which are updated into OrderCloud
- OrderCloud updates the buyer order with new shipments, automatically moving to complete if everything is fulfilled
- OrderCloud makes the order updates available to notify the buyer
Supplier managed fulfillment (Marketplace)
For more complex commerce and marketplace setups, you may want OrderCloud to split up the order for you across multiple suppliers or systems. OrderCloud refers to this as supplier forwarding.
Ways to use suppliers in OrderCloud
The supplier concept in OrderCloud is another layer you can distribute or break up an order to be managed through fulfillment. The use of suppliers is optional, but some ideas for you to consider:
-
Seller as the supplier - to future proof, you may configure yourself (the seller) as the only supplier in OrderCloud so you can add other suppliers later in parallel
-
Individual warehouses - where orders can be broken up and routed to separate warehouses operating across the region to fulfill the order
-
Individual stores or franchises - you offer a common catalog of products that are available from any number of stores regionally, parts of the order can be routed to separate stores to offer curb-side pick-up or shipping
-
Dropship suppliers - in a traditional marketplace sense, individual suppliers get their parts of the order routed directly to them for fulfillment as separate orders
You can from using the concept of a supplier to represent all of the above scenarios in parallel to manage your marketplace.
Coordinating multiple 'Suppliers'
While the below diagram is quite complex, the intention is to show what OrderCloud can manage by taking a single order from the buyer and managing multiple supplier-specific orders, and relating status updates back to the original buyer order for you.

- Buyer goes through checkout and submits an order
- OrderCloud can automatically break up and forward the order by supplier, grouping one or more lines together into new, outgoing orders to individual suppliers or seller system(s)
- OrderCloud routes each supplier-specific order to the appropriate system for fulfillment through integrations or a common portal for suppliers to access
- Supplier (or seller) sends shipment updates for the order lines they fulfill
- OrderCloud automatically ties shipments per order line back to the original buyer's order
- OrderCloud makes the order updates available to notify the buyer
See Order Forwarding for more details.
Extending OrderCloud
While OrderCloud provides out of the box order capture and validation, this section covers topics that require external integrations through deployed services to augment and customize the use of OrderCloud for your business.
Example use cases for connecting your own logic:
- Intercepting any product changes to format or build additional, custom attributes when suppliers maintain data
- Intercepting order validation and submit logic with your own inventory and licensing policies for B2B use cases
- Capturing order changes and replicating them to another data store for big-data analysis
- Integrate user and buyer information changes with your CRM systems
- Replicate any product changes to other search or personalization services to integrate with your online store
Custom integrations
For any domain object in OrderCloud, you can intercept API calls to validate or modify the data submitted. There are two ways to apply your own logic to any data changes or user input through APIs, whether it is validating a newly created address or changing the details of a line item.
Additionally, these approaches can be used to replicate data in real time to other cloud services and solutions.
Webhooks

Webhooks are configured within OrderCloud directly. They allow any interaction with OrderCloud to first call out to another service you own to validate or manipulate the request before any change is applied to an order, address, line item, user, etc.
Webhooks work over HTTPS and are language agnostic. You can implement your logic in any language and deploy them as serverless functions in the cloud.
See Using Webhooks for more details.
Middleware proxies

More complex solutions may have most of their website interactions first route through their own middleware or controllers. That middleware, in turn, makes calls to OrderCloud. This is very similar to employing WebHooks but is another option to consider depending on your architecture.
A more common application of middleware is if you want to publish your own service which aggregates multiple calls into one service-- primarily complex 'GET' scenarios to produce net new object types for your clients to use.
In both cases, it is recommended to use OrderCloud's security architecture rather than implementing your own. OrderCloud handles the roles of buyers, admins, and suppliers, along with data rights authorization. You can implement your services in any language.
Integration events
While the previous two sections with webhooks and middleware proxies covered how to intercept and augment OrderCloud through direct API calls, Integration Events work on the same premise but are initiated indirectly during order checkout and include more information in the request and response lifecycle. Integration Events point OrderCloud to your own middleware services to handle order intake logic.

For checkout, integration events call your API endpoints to gather specific information:
-
Order calculate - based on the order, incorporate other price adjustments and apply tax
-
Estimate shipping - based on the order, create one or more ship estimates for the buyer to pick from
-
Order submit - after the order is processed and submitted successfully
-
Order approved - when an order is officially approved, specific to B2B implementations, same as Order Submit
In all cases above, the message passed is what is called the OrderWorksheet, which is the order, lines, and additional metadata captured as part of these event calls (estimated shipping data, order calculate data, etc).
Handling multiple channels
OrderCloud serves as a single platform for all commerce operations, including multiple website experiences and customizations per channel. For example, you can implement complex order validation for B2B buyers in one web experience while applying different logic for orders from B2C consumers in another web experience, all managed from one OrderCloud instance.
API Clients represent a specific channel that connects to OrderCloud. For the following extension points, manage custom logic per channel as follows:
-
Supplier access - which suppliers can access or use this API Client
-
Buyer access - which buyers can access or use this API Client
-
Security - customize security, including token and anonymous shopping capabilities
-
Webhooks - they are associated with one or more API Clients, so you can control when the webhook is even fired by channel, you can even configure multiple webhooks for the same 'thing'
-
Integration events - per API client, you can specify which single Integration Event to use to guarantee only one Integration Event is fired per Client ID. This is similar to saying 'use this middleware service' to delegate order processing logic to.
See Introduction to API Clients for more details.
Synchronizing orders
For distributed systems, once an order is created within OrderCloud, you need to get that order into other systems downstream. As covered in Order Fulfillment, orders can be passed or accessed by you (the seller) or by providing direct access to individual suppliers.
Realtime synchronization with integration events
This is the preferred method. By using Integration Events, you can receive the order after it has been processed by OrderCloud, and the message includes additional metadata related to the checkout process that you may want to use and store in your downstream systems. Specifically, use Order Submit and, if you are using approvals, monitor the Order Approved endpoint. See the above section on Integration Events.
Realtime synchronization with webhooks
As covered in the previous section, a common solution is to employ webhooks to intercept the order submission and create a copy into one or more systems or databases for processing. See the above section on webhooks.
Batch synchronization
Another approach is to use the list and filter APIs to query for submitted orders and apply your own flags or updates to the order to indicate that it has been replicated, along with any other downstream system identifiers needed for lookup.
(Incoming and Outgoing Orders are covered under Order Lifecycle)
Query orders by most recently submitted, where you have not marked them as downloaded yet:
Once you have the list of orders, you can make supplementary API calls to pull lines or buyer information associated with the order, then update the order back to OrderCloud to indicate that you have completed downloading it:
Your implementation may use a combination of solutions, using both real-time and intermittent batch passes before order cutoff to catch anything that may have been missed by your system SLA.
See OrderCloud Orders for more details.