Skip to main content
More in Learn

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’re free to decide how much of the included functionality you want to use.

You can perform eCommerce operations manually with the Crystallize App or programmatically with the APIs. To do so, you'll first need the requisite permissions for Orders, Pipelines, Customers, and Webhooks. Refer to our documentation on roles and permissions for more information.

Fulfilment Pipelines

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.

Pipeline main screen

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 “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 click on them to see their full details. From this view, you can move the order to different pipeline stages or remove the order from the pipelines it’s in, as needed.

Order detail screen

Back in the main pipeline view, you can manually drag and drop orders between pipeline stages, or remove them entirely by dropping them into the “Drop here to remove from pipeline” area of the screen. (Again, pipeline state changes can also be done programmatically with the PIM API. Refer to our example repository for pipeline-related GraphQL samples.)

You can use the Edit button at the top of the screen to modify an existing pipeline. While editing a pipeline, you can click the action button (...) at the top of the screen and choose Delete to delete it. You can delete a pipeline even if it has orders in it; the orders themselves will not be deleted when the pipeline is removed.

Order-Related Webhooks

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.

Webhook pipeline state change

Creating Orders

Creating orders is done programmatically by invoking the Order API. Refer to our GraphQL sample for creating an order, which is part of our example repository. Also check out the API docs at for the full list of parameters you can specify and fetch. 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, but can only occupy one stage in any given pipeline. 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.)

Managing Orders

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.

Main order screen with filtering

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.

People showing thumbs up

Need further assistance?

Ask the Crystallize team or other enthusiasts in our slack community.

Join our slack community