
Orders and Fulfilment
The CMS portion of Crystallize is highly scalable and can power as much of your eCommerce as you like. To get started, all you need is a tenant. You can perform eCommerce operations manually with the Crystallize App or programmatically with the APIs. You’re also free to choose how much of the included functionality you want to use.
Before getting into orders, you may want to set up a few things that will form the foundation of your particular eCommerce setup. We’ll look at fulfilment pipelines first, then webhooks.
Fulfilment pipelines are collections of states through which orders can be routed. They’re useful for tracking the steps different sorts of orders go through; an order for a custom bike, for instance, will require different steps than a software download. In Crystallize, you can (optionally) define as many fulfilment pipelines as you need to track the progress of your orders through these stages.

To work with fulfilment pipelines in the Crystallize App, click on the Fulfilment button on the left-hand side of the screen. You can also bring up the command palette with CTRL+K or ⌘+K and type “Fulfilment.”
Click the plus sign button (+) at the top or the +Create fulfilment button in the center to begin creating a new pipeline. Give the pipeline a name, define as many stages as you want, and use the “Place new orders” flag to indicate where new orders should appear as they come in. (New orders may appear in multiple pipelines.) Then click the Create button at the top of the screen.
Once orders start coming in, you can manually drag and drop them between stages, or remove them entirely by dropping them into the “Remove from pipeline” area at the bottom of the screen. (Again, pipeline state changes can also be done programmatically with the PIM API.)
You can use the Edit button at the top of the screen to modify an existing pipeline. To delete a pipeline, click the action button (...) at the top of the screen and choose Delete. You can delete a pipeline even if it has orders in it; the orders themselves will not be deleted when the pipeline is removed.
You can (optionally) set up webhooks to subscribe to order-related events happening within Crystallize. For instance, you may want to automate the process of sending emails to your customers when their orders have shipped, and updating your stock values accordingly.
In Crystallize, events are fired whenever orders are
- Created
- Deleted
- First added to a fulfilment pipeline (pipeline state change)
- Moved from one pipeline stage to another (pipeline state change)
- Removed from a pipeline
For more information, read about defining webhooks here.

Creating orders is done programmatically by invoking the Order API. Check out the API docs at https://api.crystallize.com/your-tenant-name/orders for the full list of parameters you can specify and fetch (replace your-tenant-name with your tenant identifier). Make sure you have access tokens set up in order to run your requests.
Once an order is created, it will be visible on the Orders screen for your tenant and possibly also the Fulfilment screen, if any pipelines were created for new orders. An order may appear in multiple pipelines at once. If any webhooks were listening for order creation or pipeline state changes, they would fire at this time as well. (A new order entering a pipeline for the first time is considered a pipeline state change.)
You can manually view orders and manage their progress through pipelines within the Crystallize App. This may be sufficient for a small shop. Order-related tasks can also be handled programmatically with either the Order API or PIM API (e.g. reducing stock), which is more realistic for businesses that may receive hundreds or thousands of orders per day.

Click the Orders button in the left-hand panel of the Crystallize App. You can also bring up the command palette with CTRL+K or ⌘+K and type “Orders.”
On the Orders screen, you’ll find orders listed chronologically on cards. These cards show customer name, order time, and total price in the proper currency. Click the downward-pointing arrow to expand any order card. Once expanded, you’ll see the product variants and quantities ordered, as well as a progress bar showing the name(s) of the pipeline(s) the order was routed to (if any), and the current stage(s) it’s in. Click the refresh button at top of the screen to see new orders and pipeline state changes since you last loaded the page.
You can use the Orders Filter at the top-left of the screen to display only those orders that match one or more criteria. When you click into the input box, you can select an attribute to filter against and then type in your desired value. Hit Enter, and the filter will be applied. Use the input box to add additional filter criteria as desired. Click the X beside any filter to remove it, or use the Clear all button to remove all filters and restore the full list of orders.
Left-clicking on an order card will open it in the main window. For each order, you can see order ID, order date and time, customer information, items ordered (along with quantity, metadata, tax, and unit price), and total price. You can click on item names/thumbnails to view the associated product variants in your catalogue.
You can add the order to one or more pipelines, or update its place in a pipeline, by scrolling down to the “Fulfilment pipelines” section and clicking on the progress bars displayed there.
You can delete an order by clicking the action button (...) at the top of the screen and choosing Delete. This action cannot be undone, so proceed carefully.