---
title: Order system overview
slug: commerce-connect-13/docs/order-system-overview
docTags: 
createdAt: 2026-07-23T09:44:49.000Z
---

You should avoid casting back and forth between concrete Order classes such as OrderGroup and OrderForm, and abstraction interfaces such as IOrderGroup and IOrderForm. For example, it is recommended to use only one API from the time you load a cart or purchase order until you save it. While this is not always possible, doing it whenever possible helps avoid hidden problems when casting.

## Order objects

The object model for the Optimizely Commerce Connect order system is below.  For more information, see [Order manipulation](docId\:m1ASvvWh0KBtPHZrEOwX2).

### Commerce Connect 13

![](https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/Mf2yRvVcGT0fTVszct8sq-20260723-094603.png "orderdiagram.png")

### Commerce Connect 12

![](https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/X_VY8ib-vSMmB-OQKniWD-20260723-094603.png "order_objects.png")

### Commerce Connect 10 and 11

![](https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/y2f5Z1AF9L0NlaqcT938--20260723-094603.png "ordersobjects.png")

## Order manipulation

The diagram below represents how to create, edit, and delete orders. See [Order manipulation](docId\:m1ASvvWh0KBtPHZrEOwX2).

![](https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/kJI0k67D2PcQgc7Fx638_-20260723-094603.png "ordermanipulationcombined.png")

## Order processing

The diagram below represents how to process different actions for orders. See [Order processing](docId:2j7F5dFS3rasXLrf1s99B).

![](https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/NRcdYXWf7xYK_LKVM8Det-20260723-094603.png "orderprocessing.png")

## Order calculations

The diagram below represents how to work with calculating totals for orders. See [Calculate orders](docId\:Bh7m77k20w_k62tG3xo1S).

![](https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/7s6wITeX5jMm4XEj2Bq6m-20260723-094603.png "ordertotals.png")
