Skip to main content

Checkout

Why Is There No Cart Model?

Saleor has no distinct object type for shopping carts and checkouts. We wanted the same features – like discounts, vouchers, address-specific taxes, and shipping estimates – to be available in the cart and the checkout, so we've decided to use the same object type for both. Checkout provides the interface for standard cart operations like adding products or promo codes. It can also be processed in almost any order, for example, by saving a billing address before adding any items.

Glossary

  • Checkout: Object that groups all the data needed for the checkout process and creating an order.
  • Checkout Line: Items added to the checkout with quantity data. Each added variant has a separate line.
  • Checkout Completion: During this step, payments may be processed and stocks may be reserved. If requirements are met, the order is created.
  • Payment Gateway: Payment App or legacy plugin. e.g., Adyen.
  • Transaction: Object containing status and additional data about payment.
  • Shipping Methods: The way orders will be sent. E.g., DHL courier, postal service.
  • Collection Points: Places where orders can be self-picked.
  • Delivery Methods: Union of shipping methods and collection points.

Multiple Channels and Checkout

Depending on the chosen channel, the user will have access to different objects. This impacts available:

  • Products and Product Variants
  • Payment Gateways
  • Shipping Methods
  • Collection Points
  • Discounts

Learn more about using multiple channels.

Permissions

Checkout can be queried only by users assigned to it or have MANAGE_CHECKOUTS permission.

Checkout without an assigned user can be queried and modified without additional permissions – it's public for anyone who knows the checkout ID.