Current state of Flows on Carts, Cart Items, Orders and Order Items



Hey :wave:

A few people have been asking questions around Flows.

We were discussing the possibility of using Flows to add metadata to Cart and Order processes.

I spent some time with @ajsturrock going through the current state and how they can be used currently. The results are in…

:-1: carts - A Flow can be created for carts but it’s impossible to POST to carts/:ID as no endpoint exists.

:+1: cart items - A Flow can be created for cart_items and it is possible to POST to carts/:ID/items with the additional data (in the same request as add to cart). PUT also works for updating custom data for an item in the cart.

:-1: checkout - Custom field data not carried through to the order. Should it be possible to add custom data on the checkout endpoint that ends up on the order properly?

:-1: checkout process - Custom flow data is lost during the checkout process when a cart item is translated into an order item (if the same field is created on both cart_items flow and order_items Flow).

:+1: orders - A Flow can be created for orders and custom data can be PUT.

:-1: order items - No PUT to an order_item. On GET the order_items custom data is shown as a top level custom field rather than as a field for the order_items.

Hopefully our findings and what we’d like to see possible will make it into the product roadmap.

I’d love to hear how people are using Flows currently and any feedback on how they should be used.


Yes please, would love that :+1:


For anyone interested, I found a “hack” on how to achieve just that with the current API. You call checkout, get the order, and then PUT the properties that are defined in the “orders” flow directly into the order.

Example pseudo code:

checkout => order

order.custom_field = 'it is our own fault, we elected him'
order.another_custom_field = true

PUT order