Custom Guided Wizard

12min

Introduction

Breadwinner was designed to create Transactions (Sales Orders, Invoices, Purchase Orders, etc.) in NetSuite from any object(s) in Salesforce. This can be accomplished either automatically (through Triggers and Global Classes) or via a Custom Guided Wizard. The configuration of that Guided Wizard is detailed below.

Restrictions

Many of our restrictions are restrictions of NetSuite. If you can’t create a record in NetSuite manually via copying and pasting, then you probably can’t use our Custom Guided Wizard approach to create that same record.

Additionally, Breadwinner does not include logic that is already native to Salesforce. For instance, this tool cannot merge two Salesforce fields into one NetSuite field. However, you may create a Salesforce formula that merges those two Salesforce fields and use this tool to pull that single Formula Field into NetSuite.

Preparation

The following are required for this process:

  1. An Originating object. This is the record that contains the information you want to go on the Sales Order, such as Date, Customer, etc. (this record may optionally have a child object shown as a single related list, with many records in that related list that become the Line Items in NetSuite).
  2. A NetSuite object (technically, this is an object that is included in the Breadwinner managed package, though the object will start with “NetSuite”, like NetSuite Invoice). You must create a lookup to the Originating Object.
  3. A NetSuite Customer record. However, most people reference a Salesforce Account instead of the NetSuite Customer, and Breadwinner will prompt the user to either select one of the existing NetSuite Customers associated with that Salesforce Account or to create a new NetSuite Customer.
  4. A Formula Field on the Child Object that references the NetSuite Item (briefly explained below)

The NetSuite Object (typically either the NetSuite Estimate, Sales Order, or Invoice) must have a lookup to the Originating Object. For instance, if you are creating Sales Orders from Opportunities, you will need to create a lookup field in the NetSuite Sales Order object in Salesforce to the Opportunity Object. And we strongly recommend you add the relevant related list to that Object’s page layout.

And the Originating Object will need either a direct lookup to the Salesforce Account (either via a lookup or master-detail) or a formula field that references a lookup to the Salesforce Account. (Or you can create a formula field or a lookup pointing directly to a NetSuite Customer, instead of the formula field or a lookup pointing to an Account).

Formula Referencing the NetSuite Item

When you create a NetSuite Transaction Record (Estimate, Sales Order, Invoice, Credit Memo, etc), you will need to specify at least one Line Item. And those Line Items will need to specify an existing NetSuite Item. So to create a record from Breadwinner, a NetSuite Item needs to be specified. Normally this is specified via a formula that points to a lookup to Breadwinner's NetSuite Item, but a direct lookup is technically possible.

Breadwinner has, as part of its managed package, a lookup from Salesforce's standard Product to Breadwinner's NetSuite Item. And, we have a Product Match tool in Breadwinner's setup tab that will help you associate the Salesforce Products to the NetSuite Items. If Breadwinner was used to mass-create Salesforce Products from NetSuite Items, then this association is already established.

However, you will need to create an additional Formula Field in Salesforce to reflect this lookup. So, if you are creating NetSuite records from the Opportunity Products, or from the Order Products, you would need a formula on those objects traversing the association between the Opportunity Products or Order Products, through the Salesforce Product, to the final NetSuite Item. And, if you are creating records from Salesforce Custom Objects, you will need a formula (or lookup) from those line-item-esque custom objects to Breadwinner's NetSuite Item.

Also, there are various restrictions around NetSuite Items and Item Groups that are to known before you start creating any transactions

Exposing the Picklist IDs

If you wish to create or modify a record with a Picklist in NetSuite, then you will need to pass Breadwinner the ID of the Picklist Option. The visibility of Picklist IDs might not be enabled in your NetSuite org. To enable visibility of Picklist IDs (which will only be visible in the Customization section of NetSuite, and not visible to end-users), please go to Home > Set Preferences. On the General Tab, in the Defaults section (usually on the right) you will be able to enable “SHOW INTERNAL IDS”



Show Internal IDs
Show Internal IDs


Conventions to Follow in Button URL

In the formulas below, the left side of the equation is our field, and the right side of the equation (after the = sign) is for you to populate based on the API names in your Salesforce org.

For instance, if you see

Button URL


then your formula would include &parent_account=, but the api_field_name__c would be replaced by the API name of the field in your Salesforce org.

Ease-of-Use Tip

We have made a Custom Guided Wizard to help you create the NetSuite records. To view that, simply make a button with the text below, quick-save it, add it to the Originating Object's Sales Order Related List page layout, and click.

This button should be created on the Sales Order object (as a Button, not an Action or Link). We recommend setting the name of the button to be something like “New NetSuite Sales Order from the [Something Object]”.

Button URL


Once created, the button should be displayed on the page layout of the object in question (the one you wish to create Sales Orders from), on the Sales Orders related list on that object. (in the page layout for that object, click the wrench on the related list, and then click "Buttons" to change the buttons on the related list). This is also the time to remove the standard "New" button by unchecking it, as the standard "New" button won’t work on custom objects.



New Sales Order List Button
New Sales Order List Button




URL Formula

The Button URL Generator will give you the formula you need. However, you may wish to further modify the URL, or understand it further.

Also, you can create multiple buttons per object, with different formulas to be allowed Sales Orders to be populated in different ways from different fields.

When creating formulas in Salesforce, you can create a formula over many lines, separated by a new line for readability.

Button on Sales Order Related List

You can create a button on the Breadwinner Sales Order object itself as a List Button (without multi-checkboxes). After creating it, you must display it on the related list of the Originating Object’s page layout.

These buttons will be added to the page layout of the Originating Object by clicking the wrench/spanner on the Sales Orders related list.

Button or Link on Originating Object

You can also create the button or link on the Originating Object. This will be added directly to the page layout of the Originating Object. However, this can cause slight usability issues, so we recommend the button go on the Sales Orders related list.