Customization on Items
Items support two independent sets of custom fields, each stored in a different place in the transaction.
Fields on the Order Item
Defined on: the Item (OrderableItem)
Stored on: the Order Item (line item) in the transaction
These fields are collected from the donor when they select this item. Each Order Item in a transaction carries its own values, independent of other items in the same transaction. Use them for:
- Per-selection data: meal choice, t-shirt size, attendee name, tribute recipient
- Fields that differ per item selection even within the same order
Configure on the Item’s Custom Fields tab under “Item Custom Fields”.
Fields on the Transaction
Defined on: the Item (OrderableItem)
Stored on: the Transaction (PurchaseOrder)
These fields are added to the whole order when this item is selected — regardless of which other items are in the transaction. Use them for:
- Fields that should apply to the entire transaction when a particular item is present
- Conditional order-level data triggered by specific item selection
Configure on the Item’s Custom Fields tab under “Order Custom Fields”.
Integration Codes on Items
Integration codes are hidden custom fields on the Item. Not shown to donors; used in scripts and reports. Common uses:
- GL account codes for revenue from this item
- External system product identifiers
- Item-level configuration values read by scripts
Access in scripts:
orderItem.get('FieldName').value— value on the Order ItemorderItem.orderableItem.get('FieldName').value— integration code on the parent Item definition
Available in reports: both item custom field values and integration codes appear as selectable columns in Order Item reports.
→ Full reference: Where Custom Fields Live