# Class OrderHooks

- [TopLevel.Object](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md)
  - [dw.order.hooks.OrderHooks](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.order.hooks.OrderHooks.md)

This interface represents all script hooks that can be registered to customize the order logic. It contains the
extension points (hook names), and the functions that are called by each extension point. A function must be defined
inside a JavaScript source and must be exported. The script with the exported hook function must be located inside a
site cartridge. Inside the site cartridge a 'package.json' file with a 'hooks' entry must exist.

"hooks": "./hooks.json"

The hooks entry links to a json file, relative to the 'package.json' file. This file lists all registered hooks
inside the hooks property:

```
"hooks": [
   {"name": "dw.order.createOrderNo", "script": "./orders.ds"},
]
```

A hook entry has a 'name' and a 'script' property.

- The 'name' contains the extension point, the hook name.
- The 'script' contains the script relative to the hooks file, with the exported hook function.

## Constant Summary

| Constant                                                                                                                                                                   | Description                                      |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------ |
| [extensionPointCreateOrderNo](#extensionpointcreateorderno): [String](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.String.md) = "dw.order.createOrderNo" | The extension point name dw.order.createOrderNo. |

## Constructor Summary

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

## Method Summary

| Method                                                                                                              | Description                                               |
| ------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------- |
| [createOrderNo](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.order.hooks.OrderHooks.md#createorderno)() | This hook is responsible for creating a new order number. |

### 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)

## Constant Details

### extensionPointCreateOrderNo

- extensionPointCreateOrderNo: [String](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.String.md) = "dw\.order.createOrderNo"
  - : The extension point name dw\.order.createOrderNo.

***

## Method Details

### createOrderNo()

- createOrderNo(): [String](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.String.md)
  - : This hook is responsible for creating a new order number.

    By default order numbers are generated by using [OrderMgr.createOrderSequenceNo()](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.order.OrderMgr.md#createordersequenceno). Use this hook
    to customize the order number generation. E.g. a prefix or suffix could be added.

    ```
    exports.createOrderNo = function(){
        var orderSeqNo = OrderMgr.createOrderSequenceNo();
        var prefix = Site.getCurrent().getSiteId();
        return prefix + "_"+orderSeqNo;
    };
    ```

    If the method returns `null` or an blank string order number generation will fall
    back to [OrderMgr.createOrderSequenceNo()](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.order.OrderMgr.md#createordersequenceno).

    The maximum length of the order number is 50 characters.

    **Returns:**

    - the order number

***
