# Class OrderHistory

- [TopLevel.Object](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md)
  - [dw.customer.OrderHistory](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.customer.OrderHistory.md)

The class provides access to past orders of the customer.

**Note:** This class allows access to sensitive financial and cardholder data. Pay special attention to PCI DSS
v3. requirements 1, 3, 7, and 9. It also allows access to sensitive personal and private information. Pay attention
to appropriate legal and regulatory requirements related to this data.
**Note:** The following methods do not work with Salesforce Order Management orders.

## Property Summary

| Property                                                                                                                               | Description                                                                  |
| -------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| [orderCount](#ordercount): [Number](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Number.md) `(read-only)`            | Returns the number of orders the customer has placed in the store.           |
| [orders](#orders): [SeekableIterator](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.SeekableIterator.md) `(read-only)` | Retrieves the order history for the customer in the current storefront site. |

## Constructor Summary

This class does not have a constructor, so you cannot create it directly.

## Method Summary

| Method                                                                                                                                                                                                                                                                                                                                                                                      | Description                                                                  |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| [getOrderCount](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.customer.OrderHistory.md#getordercount)()                                                                                                                                                                                                                                                                          | Returns the number of orders the customer has placed in the store.           |
| [getOrders](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.customer.OrderHistory.md#getorders)()                                                                                                                                                                                                                                                                                  | Retrieves the order history for the customer in the current storefront site. |
| [getOrders](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.customer.OrderHistory.md#getordersstring-string-object)([String](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.String.md), [String](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.String.md), [Object...](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md)) | Retrieves the order history for the customer in the current storefront site. |

### Methods inherited from class Object

[assign](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#assignobject-object), [create](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#createobject), [create](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#createobject-object), [defineProperties](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#definepropertiesobject-object), [defineProperty](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#definepropertyobject-object-object), [entries](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#entriesobject), [freeze](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#freezeobject), [fromEntries](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#fromentriesiterable), [getOwnPropertyDescriptor](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#getownpropertydescriptorobject-object), [getOwnPropertyNames](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#getownpropertynamesobject), [getOwnPropertySymbols](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#getownpropertysymbolsobject), [getPrototypeOf](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#getprototypeofobject), [hasOwnProperty](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#hasownpropertystring), [is](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#isobject-object), [isExtensible](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#isextensibleobject), [isFrozen](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#isfrozenobject), [isPrototypeOf](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#isprototypeofobject), [isSealed](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#issealedobject), [keys](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#keysobject), [preventExtensions](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#preventextensionsobject), [propertyIsEnumerable](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#propertyisenumerablestring), [seal](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#sealobject), [setPrototypeOf](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#setprototypeofobject-object), [toLocaleString](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#tolocalestring), [toString](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#tostring), [valueOf](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#valueof), [values](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#valuesobject)

## Property Details

### orderCount

- orderCount: [Number](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Number.md) `(read-only)`
  - : Returns the number of orders the customer has placed in the store.

    If the customer is anonymous, this method always returns zero. If an active data record is available for this
    customer, the orders count is retrieved from that record, otherwise a real-time query is used to get the count.

***

### orders

- orders: [SeekableIterator](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.SeekableIterator.md) `(read-only)`
  - : Retrieves the order history for the customer in the current storefront site.

    If the result exceeds 1000 orders, only the first 1000 orders are retrieved. Same as

    ```
    orderHistory.getOrders( null, "creationDate DESC" )
    ```

    It is strongly recommended to call `[SeekableIterator.close()](dw.util.SeekableIterator.md#close)` on the returned
    SeekableIterator if not all of its elements are being retrieved. This will ensure the proper cleanup of system
    resources.

    **See Also:**

    - [getOrders(String, String, Object...)](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.customer.OrderHistory.md#getordersstring-string-object)

***

## Method Details

### getOrderCount()

- getOrderCount(): [Number](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Number.md)
  - : Returns the number of orders the customer has placed in the store.

    If the customer is anonymous, this method always returns zero. If an active data record is available for this
    customer, the orders count is retrieved from that record, otherwise a real-time query is used to get the count.

    **Returns:**

    - the number of orders the customer has placed in the store.

***

### getOrders()

- getOrders(): [SeekableIterator](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.SeekableIterator.md)
  - : Retrieves the order history for the customer in the current storefront site.

    If the result exceeds 1000 orders, only the first 1000 orders are retrieved. Same as

    ```
    orderHistory.getOrders( null, "creationDate DESC" )
    ```

    It is strongly recommended to call `[SeekableIterator.close()](dw.util.SeekableIterator.md#close)` on the returned
    SeekableIterator if not all of its elements are being retrieved. This will ensure the proper cleanup of system
    resources.

    **Returns:**

    - the orders

    **See Also:**

    - [getOrders(String, String, Object...)](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.customer.OrderHistory.md#getordersstring-string-object)

***

### getOrders(String, String, Object...)

- getOrders(query: [String](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.String.md), sortString: [String](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.String.md), params: [Object...](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md)): [SeekableIterator](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.SeekableIterator.md)
  - : Retrieves the order history for the customer in the current storefront site.

    If the result exceeds 1000 orders, only the first 1000 orders are retrieved. Optionally, you can retrieve a subset
    of the orders by specifying a query. At maximum 3 expressions are allowed to be specified and no custom attribute
    expressions are allowed.

    It is strongly recommended to call `[SeekableIterator.close()](dw.util.SeekableIterator.md#close)` on the returned
    SeekableIterator if not all of its elements are being retrieved. This will ensure the proper cleanup of system
    resources.

    Example:

    ```
               var orderHistory : dw.customer.OrderHistory = customer.getOrderHistory();
               var orders = orderHistory.getOrders("status = {0}", "creationDate DESC", dw.order.Order.ORDER_STATUS_NEW);
               for each (var order : dw.order.Order in orders) {
                   // ... process orders
               }
               orders.close();
    ```

    **Parameters:**

    - query - optional query
    - sortString - optional sort string
    - params - optional parameters for the query

    **Returns:**

    - the orders

***
