Skip to content

The Commerce extension builds on top of your NPSP or Nonprofit Cloud extension. Read this alongside Your data in NPSP or Your data in Nonprofit Cloud. Those articles cover how MoveData handles contacts, accounts, campaigns, and campaign members. All of those records work the same way with Commerce installed.

Commerce processes non-donation transactions like merchandise, ticket, and raffle sales. These differ from donations because a single transaction contains multiple items — like a cart with different products. This article covers only the sale-specific records that Commerce creates in Salesforce.

Opportunities (Sales)#

Commerce creates an Opportunity record to represent each sale. This applies to both NPSP and Nonprofit Cloud organisations.

Why Opportunities and not Gift Transactions?

If you use Nonprofit Cloud, you might expect sales to appear as Gift Transactions. However, Gift Transactions do not support line items (the individual products in a sale). Opportunities do support line items through Opportunity Products, making them the right fit for commerce.

Key fields set by MoveData#

Field Description
Name Sale name
Stage Name Current stage of the sale
Close Date Date the sale occurred
Amount Total sale amount (calculated from line items)
Account The buyer's account
Campaign The campaign linked to the sale
Primary Contact The buyer (NPSP)
Pricebook Links to the standard pricebook

How MoveData finds existing opportunities#

MoveData matches opportunities using the platform key — a unique identifier that your fundraising platform assigns to each record. If an opportunity with the same platform key already exists, MoveData updates it instead of creating a duplicate.

Refunds

When a refund is issued in your fundraising platform for a commerce transaction, MoveData adjusts the Opportunity amount to reflect the refunded amount. For a full refund, the Stage Name changes to Closed Lost. For a partial refund, the Stage Name stays as Closed Won with the reduced amount.

Products#

Products represent the individual items in a sale. For ticketing, these might be adult tickets, child tickets, or VIP passes. For merchandise, these might be t-shirts, hats, or wristbands.

MoveData creates Product records in Salesforce using the standard Product object (Product2).

Key fields set by MoveData#

Field Description
Name Product name from the platform
Product Code Product code for identification
SKU Stock-keeping unit — a unique code used for inventory tracking
Description Product description
Is Active Whether the product is available

How MoveData finds existing products#

MoveData matches products using the platform key. If a product with the same platform key already exists, MoveData updates it instead of creating a duplicate.

Opportunity Products (Line Items)#

Each item in a sale becomes an Opportunity Product record. This links the Opportunity to the Products it contains. For example, if a buyer purchases two adult tickets and one child ticket, MoveData creates three Opportunity Product records on that Opportunity.

Key fields set by MoveData#

Field Description
Opportunity The sale this line item belongs to
Pricebook Entry Links to the product's price in the pricebook
Quantity Number of this product purchased
Unit Price Price per unit
Total Price Quantity multiplied by unit price

How MoveData finds existing line items#

MoveData matches opportunity products using the platform key. If a line item with the same platform key already exists, MoveData updates it instead of creating a duplicate.

Standard Pricebook#

Salesforce requires a pricebook to use Opportunities with Products. MoveData links the standard pricebook to the associated records. MoveData does not create or manage pricebook entries itself.

Warning

Make sure the standard pricebook is active in your Salesforce environment. If it is inactive, MoveData cannot link products to opportunities.

Further reading#

For the full technical field reference, see Commerce extension fields and objects.

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