Skip to main content

Product and Product Rate Plan Transaction Sync

Zuora

Product and Product Rate Plan Transaction Sync

Overview

This process syncs new and recently modified (optional) Zuora products and product rate plans to NetSuite items. The records are synced to NetSuite so they can be referenced on sales orders when creating new Zuora subscriptions.

This is a one-way sync: only products and product rate plans created and modified in Zuora will be synced to NetSuite. Items created or modified in NetSuite will not sync back to Zuora.

About the Product and Product Rate Plan Transaction Sync

  • Only active Product and Product Rate Plans are synced. Draft, cancelled, deleted, or inactive (expired) records are not synced. The sync will not inactivate records.
  • Records are synced to one of three types of NetSuite items (Inventory, Non Inventory, and Service), determined by the Item Type custom field on the Zuora record.
    • Once a record has been synced successfully, do not change the Item Type in Zuora. Changing this field will result in a sync error until the type is corrected. If you need to change the Item Type, delete the NetSuite item, reset the Zuora record’s Integration ID and Integration Status, then resync.
  • Within NetSuite, the item corresponding to the product rate plan will appear as a child or sub-item to the product’s item.
  • Within NetSuite, the item corresponding to the product will not be assigned to a GL account, and therefore cannot be referenced on transactions. This is used for organization and to assist with identifying product rate plans that have similar names.
  • The items created for the product rate plan records will be associated to the default income account as configured in the NetSuite setup.
  • Review the product catalog sync preferences. These preferences and control the behavior and data mapping of the sync including item number.
  • See Migrating Existing Items if you already have item records in NetSuite and Zuora and want to link those existing records to prevent NetSuite Connector from creating duplicates.

Transaction Sync Notes

The syncs will only run if the Enable Sales Order Sync preference is enabled or if the Force Zuora Product Catalog Sync advanced preference is enabled.

The product and product rate plan sync is implemented as two separate processes within NetSuite Connector.

Product Transaction Sync Rules

This integration syncs records according to the following rules:

  1. If the Product Catalog Sync Behavior preference is set to Sync New and Modified Records, initialize the date from which to query Zuora for recent changes. If this is the first time the product sync is run, the updated date of product rate plan and product rate plan charge will be set to Jan 1, 1970 to extract all products. If the sync has already run, the date will be set to that of the most recently successfully synced Zuora product (captured during the previous sync).
    • If the Product Catalog Sync Behavior option was recently changed from Sync New Records Only to Sync New and Modified Records, the query date will be set to the current system time. Typically, this means that no records will be extracted during that sync. Only records modified after that sync will be extracted in future syncs. Note that you can re-save Zuora records without making changes to trigger the sync to extract them.
  2. Zuora product records are synced if they meet all of the following criteria:
    • The Effective Start Date is less than or equal to current system time.
    • The Effective End Date is greater than or equal to current system time.
    • The Integration Status is empty or any status other than Sync Complete.
    • Additionally, if the Product Catalog Sync Behavior option is set to Sync New and Modified Records, the Integration Status is Sync Complete and the Updated Date is greater than the last time NetSuite Connector completed the product rate plan sync successfully.
  3. The sync action is determined based on your preferences and the record’s characteristics:
    • If the Integration ID is empty, the record will be created in NetSuite.
    • If the Integration ID is populated and the Product Catalog Sync Behavior option is set to Sync New and Modified Records, the record will be updated in NetSuite.
    • If the Integration ID is populated and the Product Catalog Sync Behavior option is set to Sync New Records Only, the record will be linked. This means that only the Zuora-related custom fields will be populated in NetSuite, and standard fields will not be modified. 
  4. The following validations are performed during the sync to ensure data integrity (validation skipped if linking a record):
    • The Zuora Item Type field is populated.
    • If the Integration Status is Sync Complete, the Integration ID must be populated.
  5. The remaining steps depend on whether the transaction sync is creating, updating, or linking a record. 

Creating a Record

If the sync is creating a record:

  1. The Zuora product’s Integration Status is updated to Creating Item to indicate that the record is currently being synced and to assist with error recovery.
  2. The NetSuite item is created.
  3. Upon successful creation of the NetSuite item, the new NetSuite internal ID is written back to the Zuora product and the Integration Status is updated to Sync Complete.

Updating a Record

If the sync is updating a record:

  1. The Zuora product’s Integration Status is NOT updated. This prevents circular updates.
  2. The NetSuite item is updated (standard and Zuora-related custom fields).
  3. Upon successful modification of the NetSuite item, no updates are made to the Zuora product.

Linking a Record

If the sync is linking a record:

  1. The Zuora product‘s Integration Status is updated to Linking Item to indicate that the record is currently being synced and to assist with error recovery.
  2. The NetSuite item is updated (only Zuora-related custom fields).
  3. Upon successful modification of the NetSuite item, the Integration Status is updated to Sync Complete on the Zuora product.

Product Rate Plan Transaction Sync Rules

This integration syncs records according to the following rules:

  1. If the Product Catalog Sync Behavior option is set to Sync New and Modified Records, initialize the date from which to query Zuora for recent changes. If this is the first time the product rate plan sync is run, the date will be set to Jan 1, 1970 to ensure that the sync extracts all products. If the sync has already run, the date will be set to that of the most recently successfully synced Zuora product rate plan (captured during the previous sync).
    • If the Product Catalog Sync Behavior option was recently changed from Sync New Records Only to Sync New and Modified Records, the query date will be set to the current system time. Typically, this means that no records will be extracted during that sync. Only records modified after that sync will be extracted in future syncs. Note that you can re-save Zuora records without making changes to trigger the sync to extract them.
  2. Zuora product rate plan records are synced if they meet all of the following criteria:
    • The Effective Start Date is less than or equal to current system time.
    • The Effective End Date is greater than or equal to current system time.
    • The Integration Status is empty, or any value other than Sync Complete.
    • If the Product Catalog Sync Behavior option is set to Sync New and Modified Records, the Integration Status is Sync Complete and the Updated Date is greater than the last time NetSuite Connector completed the product rate plan sync successfully.
  3. The sync action is determined based on your preferences and the record’s characteristics:
    • If the Integration ID is empty, the record will be created in NetSuite.
    • If the Integration ID is populated and the Product Catalog Sync Behavior option is set to Sync New and Modified Records, the record will be updated in NetSuite.
    • Additionally, if the Integration ID is populated and the Product Catalog Sync Behavior option is set to Sync New Records Only, the record will be linked. Only the Zuora-related custom fields will be populated in NetSuite, and standard fields will not be modified.
  4. The following validations are performed during the sync to ensure data integrity (validation skipped if linking a record):
    • The associated Zuora product has been synced (it has an Integration ID).
    • If Multi Currency Price is populated and if the NetSuite Connector Use Multiple Currencies or Use Advanced Pricing options are enabled, the Multi Currency Price value has the appropriate syntax (for example, <currency code 1>:<amount 1>;<currency code 2>:<amount 2>...). See "Multi-Currency Pricing," below, for more information.
    • If Multi Currency Price is populated and if the NetSuite Connector Use Multiple Currencies or Use Advanced Pricing options are enabled, each of the Multi Currency Price currency codes is a valid NetSuite currency code.
    • If populated, the Zuora NetSuite Location matches a valid NetSuite location.
    • If populated, the Zuora NetSuite Class matches a valid NetSuite class.
    • If populated, the Zuora NetSuite Department matches a valid NetSuite department.
    • The Zuora Item Type field is populated.
    • If the Integration Status is Sync Complete, the Integration ID must be populated.
  5. The remaining steps depend on whether the transaction sync is creating, updating, or linking a record. 

Creating a Record

If the sync is creating a record:

  1. The Zuora product rate plan’s Integration Status is updated to Creating Item to indicate the record is currently being synced and to assist with error recovery.
  2. The NetSuite item is created.
  3. Upon successful creation of the NetSuite item, the new NetSuite internal ID is written back to the Zuora product rate plan and the Integration Status is updated to Sync Complete.

Updating a Record

If the sync is updating a record:

  1. The product rate plan’s Integration Status is not updated. This prevents circular updates.
  2. The NetSuite item is updated (standard and Zuora-related custom fields).
  3. Upon successful modification of the NetSuite item, no updates are made to the Zuora product rate plan.

Linking a Record

If the sync is linking a record:

  1. The Zuora product rate plan’s Integration Status is updated to Linking Item to indicate that the record is being synced and to assist with error recovery.
  2. The NetSuite item is updated (only Zuora-related custom fields).
  3. Upon successful modification of the NetSuite item, the Integration Status is updated to Sync Complete on the Zuora product rate plan.

Multi-Currency Pricing

If you use multiple currencies or advanced pricing in NetSuite (see Configure Sync Preferences for more information), you can configure the Zuora product rate plan charge with different prices for different currencies. NetSuite will then reference the appropriate default price for the customer’s currency when adding that Item to a sales order (to sync as a new Zuora subscription).

On the Zuora product rate plan record, the NetSuite Price field will be mapped for the default currency, as configured in your NetSuite Connector preferences. You can include prices for additional currencies in the NetSuite Multi Currency Price field using the following syntax:

<currency code 1>:<amount 1>;<currency code 2>:<amount 2>...

For example:

CAD:250.25;GBP:126.99

You can list one price per currency, and as many currencies as are valid for your Zuora tenant. The currency code must match a valid code in NetSuite, and the syntax of the string will be validated.