Class CheckoutHooks

This interface represents script hooks that can be registered to populate customer details into a basket. 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.

1"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:

1"hooks": [
2     {"name": "dw.order.populateCustomerDetails", "script": "./populateCustomerDetails.js"}
3]

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 

ConstantDescription
extensionPointPopulateCustomerDetails: String = “dw.order.populateCustomerDetails”The extension point name dw.order.populateCustomerDetails.

Constructor Summary 

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

Method Summary 

MethodDescription
populateCustomerDetails(Basket, Customer)Populates registered customer details into a basket.

Methods inherited from class Object 

assign, create, create, defineProperties, defineProperty, entries, freeze, fromEntries, getOwnPropertyDescriptor, getOwnPropertyNames, getOwnPropertySymbols, getPrototypeOf, hasOwnProperty, is, isExtensible, isFrozen, isPrototypeOf, isSealed, keys, preventExtensions, propertyIsEnumerable, seal, setPrototypeOf, toLocaleString, toString, valueOf, values

Constant Details 

extensionPointPopulateCustomerDetails 

extensionPointPopulateCustomerDetails: String = "dw.order.populateCustomerDetails"

The extension point name dw.order.populateCustomerDetails.


Method Details 

populateCustomerDetails(Basket, Customer) 

populateCustomerDetails(basket: Basket, customer: Customer): Status

Populates registered customer details into a basket. This includes the default shipping address and default payment instrument from the registered customer's profile.

If no override script is registered, the system defaults to the platform's standard population logic which copies the customer's default or first address to the basket's default shipment and billing address, then creates a payment instrument from the customer's default or first payment instrument.

This method is automatically invoked when the populateCustomerDetails query parameter is set to true on createBasket and transferBasket endpoints.

Parameters:

  • basket - the basket to populate with customer details
  • customer - the registered customer whose details should be populated into the basket