Salesforce - Netsuite Order Creation

Donna Weeden
Donna Weeden
  • Updated

Overview

Creating NS Orders based on SFDC Oppties/Quotes is a common workflow use case between Salesforce & Netsuite. 

Objects involved in the workflow

SFDC Account ↔︎ Netsuite Customer

SFDC Contact ↔︎ Netsuite Contact

SFDC Product ↔︎ Netsuite Items

SFDC Opportunity

SFDC Opportunity Product

SFDC Opportunity Quotes

SFDC Opportunity Contact Role

Netsuite Sales Orders

Salesforce Opportunity is made of

  • Opportunity fields (Name, Account, Type etc)

  • A list of opportunity Products (reference to Product, price, quantity, discount and other fields on the many-to-many). This is a first class object n Salesforce

  • Opportunity Contact Roles (reference to Contact, role of that contact).This is a first class object n Salesforce

Netsuite Sales Order is made of

  • SalesOrder fields(Name, reference to customer etc)

  • A list of line items (reference to Item, quantity, price and other fields on the many-to-many) - these are embedded objects inside a sales order

  • Shipping Details (Shipping Date, Carrier and a Shipping address) - this is an embedded object in a sales order. Shipping address can be selected from one of the customer addresses

  • Billing Details (Terms , Payment details -optional, and a Billing address) - this is an embedded object in a sales order. Billing address can be selected from one of the customer addresses

  • Contact Roles(reference to Contact, role of that contact and other fields on the many-to-many) - this is an embedded object in a sales order.

There is a mismatch in the data model between SFDC and Netsuite. SFDC presents a flat set of objects, and Netsuite has a nested structure.

Workflow Details

Addresses are very important in this workflow.

Prerequisites - Product/Item, Account/Customer and Contact/Contact objects are in sync, including address

Flow 1

SFDC Oppty Closes → Create new Sales Order

  • Opportunity Products translated to NS SO Line items with field level mappings

  • Account Shipping address referenced in NS SO

  • Account Billing Address referenced in NS SO

  • Oppty Contacts are mapped to Relationships->Contacts in NS SO

In this flow, optionally, sync NS SOs back to SFDC SO

Flow 2

SFDC Oppty Closes → Create new Sales Order using SFDC Quote

  • Quote fields map to SO fields, along with Oppty fields

  • Opportunity Products translated to NS SO Line items with field level mappings

  • Quote’s Shipping address referenced in NS SO

  • Quote’s Billing Address referenced in NS SO

  • Oppty Contacts are mapped to Relationships->Contacts in NS SO

In this flow, optionally, sync NS SOs back to SFDC SO

Flow 3

SFDC Oppty Closes → Create new Sales Order using SFDC Quote

  • Opportunity Products translated to NS SO Line items with field level mappings

  • Oppty Primary Contact’s Shipping address referenced in NS SO

  • Oppty Primary Contact’s Billing Address referenced in NS SO

  • Oppty Contacts are mapped to Relationships->Contacts in NS SO

In all these flows, optionally, sync NS SOs back to SFDC SO

Things to Consider

  • Addressing data model mismatches - Oppty object does not have children object available in the pipeline

  • Making sure foreign keys are resolved correctly (Has a new product created in SFDC synced to Syncari & NS before we create a SO?)

  • Looking up children and mapping them (Flow -3 From Oppty to OCR to Contact and use the contact’s shipping address to map)

  • Should we use actions to create Sales Orders, instead of data sync? If so, how does FK resolution and children mapping work?

Share this

Was this article helpful?

0 out of 0 found this helpful