A few questions about Cart vs Checkout vs Abandoned checkout vs Order...

This may be a simple question but I find the documentation quite confusing.

The REST API document shows the following entities: Abandoned checkouts, Order, Transaction

The webhook API document shows the following entities: Cart, Checkout, Order, OrderTransaction

What is the relationship between all these entities? And what is the overall flow.

Is like this: Cart => Checkout => Order => Transaction?

Why is the terminology different for both APIs?

For example:

Is a checkout always abandoned?

Is a transaction the same as an order transaction?

Why can’t I retrieve Carts with the REST api?

Can I expect the same fields in both the REST and the webhook API?

For a given webhook entity, can I expect the same fields for the various topics (e.g checkouts/create and checkouts/delete)

What causes a checkout to be deleted?

Do carts ever get deleted?

This is all very confusing…

Please, show me the light!

I agree this is a bit confusing, but I think the new docs for the (sales channel sdk only) Checkout API may shed a bit of light:

A checkout in Shopify is the object used to manage a customer’s cart as it transitions to a paid checkout. This includes calculating taxes, shipping rates, attaching the customer’s information, and finally completing a purchase by submitting a payment.

It might be easier to clarify what exactly you’re trying to accomplish (e.g. track a user from cart->order, email abandoned carts/checkouts a reminder?)

This sentence makes sense but that still doesn’t really answer my questions.

For example, does a cart disappear from the rest api once the user checks out? And does a checkout disappear from the rest api once the checkout is complete (it becomes an order).

I’m building a flexible reporting engine that allows user to build custom reports.

In order to do that I need to have a solid understanding of the data model and the lifecycle of an order.

It will probably be easier if I do some manual testing and see what the rest/webhook apis are returning… But if someone from Shopify is out there, please improve the documentation..

I’d love to know if you got any traction on this!

Working on a project that needs to deal with the cart.