embedded.orders.price.before

Description

This action occurs before the Commerce runtime makes a call to the Pricing runtime to obtain pricing for an order. Changes made to the order or order items in this action persist in Kibo eCommerce.

Action Type Embedded
Full Action ID embedded.commerce.orders.price.before
Runs multiple custom functions? No

JavaScript File Structure

Action files share the following basic structure:

module.exports = function(context, callback) {
	// Your custom code here
	callback();
};
			

When you code the custom function for an action, you have access to two arguments:

callback—This argument follows the established JavaScript callback pattern: it takes an error as the first argument (or null if there is no error) and a result as the second argument (if required).

context—This argument provides the function access to relevant objects and methods that interface with Kibo eCommerce.

Context: Order

The following methods and objects are available to this action through the use of the context argument.

Microservice Operation
This action corresponds to the call made by the Commerce runtime to the Pricing runtime to obtain pricing for an order.


Get Methods

Exec Methods

Context Objects Available to All Actions

Get

get.order
Obtains a response that includes information about the current order.
Parameters Type Description
N/A N/A N/A

Example:

context.get.order();

Response:

For information about the properties in the response, refer to the REST API Help.



Exec

exec.setItemAllocation
Sets soft allocation information on an order item.
Parameters Type Description
allocationId int Id of the allocation to set on the order item.
expiration date/time Date/time of the allocation expiration.
productCode string Code of the product or product variation that is allocated.
itemId string Id of the item to set the allocation on if applied to a line item that is not the current line item. Current line item only applies when called for an order item action.

Example:

context.exec.setItemAllocation(5, dateVariable, "LUC-SAMPLE-PROD", "123");

Response:

For information about the properties in the response, refer to the REST API Help.





exec.setAttribute
Sets an attribute from the order.
Parameters Type Description
fqn string Fully-qualified name of the attribute to set on the order. Must apply to an existing attribute.
value object Value or values to set on the order for the specified attribute.

Example:

context.exec.setAttribute("attributeName", value);

Response:

For information about the properties in the response, refer to the REST API Help.





exec.removeAttribute
Removes an attribute from the order.
Parameters Type Description
fqn string Fully-qualified name of the attribute to set on the order. Must apply to an existing attribute.

Example:

context.exec.removeAttribute("attributeName");

Response:

For information about the properties in the response, refer to the REST API Help.





exec.setData
Sets custom key/value data on the current order.
Parameters Type Description
key string Key of the data to set on the order.
value object Value of the data to set.

Example:

context.exec.setData("customField", value);

Response:

For information about the properties in the response, refer to the REST API Help.





exec.removeData
Removes custom key/value data from the current order.
Parameters Type Description
key string Key of the data to remove from order.

Example:

context.exec.removeData("customField");

Response:

For information about the properties in the response, refer to the REST API Help.





exec.setItemData
Sets custom key/value data on an order item.
Parameters Type Description
key string Key of the data to set on the order item.
value object Value of the data to set.
itemId string Id of the order item to which the data is applied.

Example:

context.exec.setItemData("customField", value, "123");

Response:

For information about the properties in the response, refer to the REST API Help.





exec.removeItemData
Removes custom key/value data from an order item.
Parameters Type Description
key string Key of the data to remove from the order item.
itemId string Id of the item from which to remove data if applied to a line item that is not the current line item. Current line item only applies when called from an order item action.

Example:

context.exec.removeItemData("customField", "123");

Response:

For information about the properties in the response, refer to the REST API Help.





exec.setDutyAmount
Sets the duty amount applied to an order.
Parameters Type Description
dutyAmount number The duty amount to set on the order.

Example:

context.exec.setDutyAmount(8);

Response:

For information about the properties in the response, refer to the REST API Help.





exec.setHandlingAmount
Sets the handling amount applied to an order. Note:  This method is only available for the embedded.commerce.orders.price.before action. In addition, do not use both the setHandlingAmount and the setItemHandlingAmount methods within the same function, as this forces ambiguous adjustments on the handling amount.
Parameters Type Description
handlingAmount number The handling amount to set on the order.

Example:

context.exec.setHandlingAmount(3.99);

Response:

For information about the properties in the response, refer to the REST API Help.





exec.setItemHandlingAmount
Sets the handling amount applied to an order item. Note:  This method is only available for the embedded.commerce.orders.price.before action. In addition, do not use both the setHandlingAmount and the setItemHandlingAmount methods within the same function, as this forces ambiguous adjustments on the handling amount.
Parameters Type Description
handlingAmount number The handling amount to set on the order.
itemId string Id of the item for which to set the handling amount.

Example:

context.exec.setItemHandlingAmount(2, "123");

Response:

For information about the properties in the response, refer to the REST API Help.



Context Objects Available to All Actions

apiContext

Acesses Kibo eCommerce tenant information.

Properties Type Description
baseUrl string The base URL for the site.
basePciUrl string The base PCI URL for the site.
tenantPod string The name of the tenant pod in which the tenant resides.
appClaims string The application claims token.
appKey string The application key.
tenantId integer Unique identifier for the tenant.
siteId integer Unique identifier for the site. This ID is used at all levels of a store, catalog, and tenant to associate objects to a site.
masterCatalogId integer Unique identifier for the master catalog.
catalogId integer The unique identifier for the product catalog. Catalogs are part of a master catalog.
currencyCode string The default three-letter ISO currency code for monetary amounts.
previewDate date/time The date and time that the content is being viewed. This might be a future date if the content is previewed with an active date range set in the future.
localeCode string The locale code per the country code provided. This code determines the localized content to use and display.
correlationId string The unique identifier of the API request associated with the event action, which might contain multiple actions.
isAuthorizedAsAdmin Boolean Indicates whether the Dev Account user is authorized as an admin.
userClaims string The user claims token.

Example:

context.apiContext.baseUrl;




configuration
Receives a JSON response that contains information about the configuration data set in the Action Management JSON editor.
Properties Type Description
Varies object Custom fields and values that you can set in the Action Management JSON Editor.

Example:

context.configuration.customData;