Skip to content

The commerce pipeline processes non-donation transactions — ticket sales, merchandise purchases, raffle entries, and event registrations — into your Salesforce org. It extends the standard donation pipeline with additional phases for product catalogue management and order line items.

Commerce-capable extension required

The commerce pipeline requires a commerce-capable extension. NPSP organisations need both the NPSP Fundraising & Donations Extension and the Commerce Extension. Nonprofit Cloud organisations need only the Nonprofit Cloud Extension, which handles commerce natively. See Understanding extensions for installation details.

How the commerce pipeline works#

The commerce pipeline follows the same phase-based processing model as the donation pipeline, but adds phases for products and order line items.

Each notification passes through a series of ordered phases. At each phase, MoveData runs one or more Lightning Flows provided by your extension. These flows find or create Salesforce records using the standardised data in the notification.

The commerce pipeline implements the commerce schema, which extends the donation schema with catalogue, order, and order item entities.

Pipeline phases#

The commerce pipeline processes notifications through six phases in the following order:

Phase Purpose Salesforce records
Account Find or create the organisation account (if the buyer is purchasing on behalf of an organisation) Account
Contact Find or create the buyer's record Contact (NPSP) or Person Account (Nonprofit Cloud)
Campaign Find or create the related campaign(s) Campaign + CampaignMember
Catalogue Find or create the product or ticket type Product2 + PricebookEntry
Order Create the transaction record Opportunity
Order Item Create one line item per product in the order OpportunityLineItem

Shared phases#

The Account, Contact, and Campaign phases work identically to the donation pipeline. They use the same duplicate matching logic, the same record creation flows, and the same customisation points.

For details on how these phases work, see the donation pipeline.

Catalogue phase#

Purpose: Find or create Product2 records for each unique product or ticket type, and create PricebookEntry records to link each product to the standard pricebook.

Default SObject: Product2

Configuration phase Metadata key Description
Disable PIPELINE_COMMERCE_CATALOG_DISABLE Disable catalogue processing entirely
SObject Type PIPELINE_COMMERCE_CATALOG_SOBJECT Override the default Product2 SObject type
Field Set PIPELINE_COMMERCE_CATALOG_FIELDSET Define fields to load for existing records
Platform Key PIPELINE_COMMERCE_CATALOG_PLATFORM_KEY Generate a unique platform identifier
Catalogue Name PIPELINE_COMMERCE_CATALOG_NAME Custom product name generation logic
Record Matching PIPELINE_COMMERCE_CATALOG_DUPLICATE Locate existing product records
Field Mapping PIPELINE_COMMERCE_CATALOG_MAPPING Primary field mapping logic
Post-Processing PIPELINE_COMMERCE_CATALOG_POST Post-upsert processing logic

If a matching product already exists (matched by platform key), MoveData updates the existing record rather than creating a duplicate.

Order phase#

Purpose: Create or update an Opportunity record representing the complete purchase transaction.

Default SObject: Opportunity

Configuration phase Metadata key Description
Disable PIPELINE_COMMERCE_ORDER_DISABLE Disable order processing entirely
SObject Type PIPELINE_COMMERCE_ORDER_SOBJECT Override the default Opportunity SObject type
Field Set PIPELINE_COMMERCE_ORDER_FIELDSET Define fields to load for existing records
Platform Key PIPELINE_COMMERCE_ORDER_PLATFORM_KEY Generate a unique platform identifier
Order Name PIPELINE_COMMERCE_ORDER_NAME Custom order name generation logic
Record Matching PIPELINE_COMMERCE_ORDER_DUPLICATE Locate existing order records
Field Mapping PIPELINE_COMMERCE_ORDER_MAPPING Primary field mapping logic
Post-Processing PIPELINE_COMMERCE_ORDER_POST Post-upsert processing logic
Finaliser PIPELINE_COMMERCE_ORDER_FINAL Final processing after all order items are created

Order Item phase#

Purpose: Create one OpportunityLineItem record for each product or ticket in the order.

Default SObject: OpportunityLineItem

Configuration phase Metadata key Description
Disable PIPELINE_COMMERCE_ORDERITEM_DISABLE Disable order item processing entirely
SObject Type PIPELINE_COMMERCE_ORDERITEM_SOBJECT Override the default OpportunityLineItem SObject type
Field Set PIPELINE_COMMERCE_ORDERITEM_FIELDSET Define fields to load for existing records
Platform Key PIPELINE_COMMERCE_ORDERITEM_PLATFORM_KEY Generate a unique platform identifier
Order Item Name PIPELINE_COMMERCE_ORDERITEM_NAME Custom line item name generation logic
Record Matching PIPELINE_COMMERCE_ORDERITEM_DUPLICATE Locate existing line item records
Field Mapping PIPELINE_COMMERCE_ORDERITEM_MAPPING Primary field mapping logic
Post-Processing PIPELINE_COMMERCE_ORDERITEM_POST Post-upsert processing logic

Each line item links back to both the Opportunity and the Product2 record, recording the quantity and unit price for that item.

Opportunities, not Orders

The commerce pipeline creates Opportunities and OpportunityLineItems. It does not create Salesforce Order or OrderItem objects. The phase names "Order" and "Order Item" refer to the conceptual commerce transaction, not the Salesforce Order object.

NPSP vs Nonprofit Cloud#

Both data models use the same Salesforce objects for commerce records (Opportunity, OpportunityLineItem, Product2). The difference lies in the account model and which extensions you install.

Data model Account type Extensions needed
NPSP Household Account NPSP Fundraising & Donations + Commerce
Nonprofit Cloud Person Account Nonprofit Cloud (single extension)

For NPSP organisations, the Commerce Extension works alongside the NPSP Fundraising & Donations Extension. You must install both.

For Nonprofit Cloud organisations, a single extension handles both donation and commerce processing. No additional extension is needed.

Customising the commerce pipeline#

You can customise commerce processing the same way you customise the donation pipeline — by adding your own Lightning Flows before or after the extension's default flows.

Common commerce customisations include:

  • Setting record types on opportunities based on the product or event type
  • Mapping platform-specific custom fields onto opportunity line items
  • Skipping the Catalogue phase if you manage products manually in Salesforce
  • Adding business rules that route commerce transactions to specific campaigns

All customisation is done through Lightning Flows. For guidance, see Customising MoveData.

Ask MoveData AI
Ask about setup, configuration, or troubleshooting
How can I help you with MoveData today?