Map Custom Fields required by commercetools InStore.
LINEITEM_FULFILLMENT_FIELD
allows InStore to track whether a sale made in-store is a take with sale or a ship to sale, and this is linked to the Order that is maintained by Composable Commerce.
By mapping and using these Custom Fields, InStore can associate transaction, payment, and item-level context with the underlying Composable Commerce resources. This enables functionality in the InStore colleague app, or your own in-store application, such as reporting, fulfillment workflows, returns processing, and price overrides. For example, the LINEITEM_FULFILLMENT_FIELD
differentiates between in-store (take-with) sales and ship-to orders, and the value is persisted with the related Order in Composable Commerce.Composable Commerce resources used by InStore
InStore uses the following Composable Commerce resources:
If you are new to commercetools, you won't have existing Types defined. You can use a Terraform script provided by your commercetools representative to create the required Type resources.
You may need additional Custom Fields beyond the required set. Do not modify the InStore required fields independently in Composable Commerce. Any extra fields must exist in both InStore and the Composable Commerce Project and be mapped: this can be done entirely through the API or using the InStore Center.
Field names must match exactly. A mismatch blocks InStore from operating for affected resources.
Use the InStore Center to identify missing mappings across all environments.
Set mappings in the InStore Center
-
Access the InStore Center after you complete the initial environment setup described in Using the InStore Center.
-
Complete the Project Settings tab on the Environment page. These settings allow the InStore Center to access Composable Commerce and pre-populate select lists on the next tab.
-
Go to the Custom Fields tab on the Environment page and use the list below to add or verify the required fields.
Custom Fields reference
Required attributes are maintained in Composable Commerce. InStore-specific Custom Fields are maintained in the InStore Center.
Required attribute definitions
CUSTOMER_PAYMENTACCOUNTIDS_FIELD
Takes effect only if the Pay-On-Account feature is activated. It lists the set of account IDs that the attached Customer is eligible to charge against.
LINEITEM_FULFILLMENT_FIELD
Differentiates between in-store (take-with) sales and ship-to orders.
LINEITEM_ISGIFT_FIELD
Flags the Line Item as a gift to enable the Gift Receipt option and change receipt printing output in the InStore colleague app.
LINEITEM_MISTID_FIELD
Supports InStore processing and retrieval of item-level sales and returns; transaction tracking and reporting; payment and discount calculation; and more. References the transaction and is the Session ID of the refund event that generated this line item.
LINEITEM_PRICEOVERRIDEAPPROVER_FIELD
Supports item-level price changes initiated within the InStore colleague app. It identifies the ID of the approver of a price override, such as a manager.
LINEITEM_PRICEOVERRIDECODE_FIELD
LINEITEM_PRICEOVERRIDETYPE_FIELD
Supports item-level price changes initiated within the InStore colleague app. It identifies the type of override, such as percent (%) or amount ($ or other).
LINEITEM_PRICEOVERRIDEVALUE_FIELD
LINEITEM_PRICEOVERRIDETYPE_FIELD
to resolve the override (for example, $5 off or 20% off).LINEITEM_PURCHASELINEITEM_ID_FIELD
A reference to the LineItem of the purchase order. Used for return Carts.
LINEITEM_PURCHASEORDERID_FIELD
Prompt_for_Purchase_Order_POA
administration parameter.LINEITEM_RETURNCOMMENT_FIELD
ReturnLineItem
after conversion to an Order. A return comment is the customer's reason for returning an item (selected in the InStore colleague app during the return workflow).LINEITEM_SALESPERSONID_FIELD
Identifies the salesperson for the LineItem and is used for commission tracking. It supports extensibility and future functionality for item-level processing and retrieval of take-with sales and delivery orders. By default, the user who performs checkout is assigned as the salesperson.
ORDER_LOCATIONID_FIELD
Supports order-level processing and retrieval of take-with sales and delivery orders. It identifies the location (store), which in turn determines the languages, administration parameters, receipt templates, taxes, and other characteristics that are applied to the sale.
ORDER_ORDERTYPE_FIELD
Supports order-level processing and retrieval of take-with sales, delivery orders, and returns. It differentiates among purchase types, such as Normal, In-Store Purchase, In-Store Return, and In-Store Exchange.
ORDER_SEQUENCE_NUMBER_FIELD
ORDER_USERID_FIELD
Supports order-level processing and retrieval of take-with sales, delivery orders, and returns. It specifies the ID (from the IdP) of the associate who rang up the transaction.
ORDER_WORKSTATIONID_FIELD
Supports order-level processing and retrieval of take-with sales, delivery orders, and returns. It identifies the in-store workstation (terminal), which in turn can determine the administration parameters that are applied to the transaction.
PAYMENT_ACCOUNTNAME_FIELD
Used only if the Pay-On-Account feature is activated for the retailer. It lists the payment account name associated to Cart's Customer, if any. If the Pay-On-Account feature is not in use, you can leave this blank as unpopulated fields are omitted from the Composable Commerce resource.
PAYMENT_ACCOUNTNUMBER_FIELD
Used only if the Pay-On-Account feature is activated for the retailer. It lists the payment account number associated to Cart's Customer, if any. If the Pay-On-Account feature is not in use, you can leave this blank as unpopulated fields are omitted from the Composable Commerce resource.
PAYMENT_BARCODE_FIELD
The string representation of the Wallet app barcode, which is the scannable account code.
PAYMENT_CUSTOMERNUMBER_FIELD
Supports order-level processing and retrieval of take-with sales, delivery orders, and returns if a Customer is associated to the Cart.
PAYMENT_ISSUERID_FIELD
Supports order-level processing and retrieval of take-with sales, delivery orders, and returns that involve gift card as tender. This is the InStore ID of the gift card issuer.
PAYMENT_MISTID_FIELD
Supports order-level and transaction-level processing and retrieval of take-with sales, delivery orders, and returns. This is the InStore ID of the Payment record.
ORDER_EMAILTRIGGERED_FIELD
Supports order-level processing and retrieval of take-with sales, delivery orders, and returns. This boolean indicates whether the customer requested to receive the receipt from the retailer by email, if permitted by administration parameter settings.
PAYMENT_CASHROUNDING_FIELD
Supports cash-based order-level processing and retrieval of take-with sales, delivery orders, returns, and subsequent cash reporting. Two payments of cash are generated, one of which is flagged with this Boolean indicating the cash-rounded amount.
TRANSACTION_MISTID_FIELD
The InStore ID of the payment transaction.
Order number structure
Order numbers in InStore have the following components:
- Cart Key Prefix: Optional. Set in the InStore Center > Environment > Project Settings. The prefix must be unique across your tenant environments and can be used only once per Composable Commerce Project.
- Location ID: Optional. Alphanumeric (typically 3–6 characters). Defined in the InStore Center > Locations > Add Location.
- Workstation ID: Optional. Alphanumeric (up to 3 characters). Defined in the InStore colleague app > Manage Devices > Workstations.
- Sequence Number Length: Optional. The first Cart or transaction uses
1
. Subsequent numbers increment sequentially as Cart IDs are created. Length is 3–9 digits (6
is common) and is set in the InStore Center. Left-pad with zeros to the configured length.
806
is the prefix, 001
is the location ID, 01
is the workstation ID, and 14
(rendered as 000014
for a length of 6) is the sequence number:80600101000014
3
):300101001131