The Billing section in the Salesforce Commerce Cloud-NetSuite connector consists of the following flows:
- NetSuite Order to NetSuite Cash Sale Add
- NetSuite Order to NetSuite Invoice Add
These flows (for cash sale or invoice generation) have been designed to support the auto-billing feature for orders within NetSuite. The invoice and cash sale data flow enable you to automate the generation of cash sales or invoices for orders imported from Salesforce Commerce Cloud into NetSuite. Once you enable these flows, you are no longer needed to manually bill these orders in NetSuite.
Billing flows are batch integration workflows. You can configure to run these flows in scheduled intervals. You can schedule these flows to run between the ranges of once every 15 mins to once every week. The status of the flow runs can be checked in the integrator.io dashboard.
- These flows do not support partially billed orders.
- The Auto-billing flows are only supported with the Premium edition of the connector.
Understanding Sales Order, Cash Sale, and Invoice
- Sales Orders
A sales order is a transaction that records a commitment to sell items or services to a customer. Sales orders have no accounting impact until items are shipped or services are completed.
Sales Order mainly stores:
- Customer Information
- Order Source, Order Date, and Order Number
- Item(s) ordered by a customer
- Already shipped items
- Remaining items to be shipped
Once you fulfill items associated with a sales order, you can generate an invoice or a cash sale record to bill the customer. When an invoice or cash sale record is generated, it automatically shows the items, quantities, and prices from the order without having to re-enter the information.
- Cash Sales
A cash sale is a transaction where payment is settled immediately. Generally, you should create a cash sale only if you receive assured payment at the time of the sale. This could be in the form of credit card, check or cash.
An invoice is a record of a sale to a customer. Invoicing is the process of creating bills for goods and services that customers receive. Record an invoice when payment is not received at the time of delivery. The invoice amount is the total due to be paid to you by the customer. When you provide terms for your customers and let them pay within a certain period of the delivery of the product or service, you should issue an invoice so you can keep track of who owes you and how much. NetSuite keeps track of your outstanding invoices in an account called Accounts Receivable.
Prerequisite settings to run billing flows
The following are the recommended configurations and settings that must be completed in Salesforce Commerce Cloud-NetSuite Connector before you execute the billing flow:
- Ensure that the order on your Salesforce Commerce Cloud account also exists in the NetSuite. You can use Celigo’s effective order flow, Commerce Cloud Order to NetSuite Order Add, in the Order section to ensure all your orders in Salesforce Commerce Cloud and NetSuite are always in sync with each other.
- Click on the Off /On switch against the billing flows to enable them.
- Verify, update, and add field mappings as per your requirements.
- From Advanced Settings, select the appropriate saved searches and drop-down list value and click Save.
Invoice or cash sale generation process
Before you run the flow, it is important to understand the criteria the Salesforce Commerce Cloud-NetSuite connector uses to calibrate if an invoice or a cash sale for a sales order needs to be generated.
When you bill an order in NetSuite, whether an order will be billed as Cash Sale or Invoice is actually determined by the fact whether the Payment Method field in the Billing tab on a sales order in NetSuite is empty or not. If the field is empty, an invoice is created for the sales order. If the field is non-empty, a cash sale is created for the sales order.
You can access the invoice or cash sale record from the sales order in NetSuite using the History tab. The History tab displays the basic details of associated invoice or cash sale for a sales order. To access the invoice or cash sale record for that order click on the date. As you can see in the aforementioned screen, the Payment Method field does not have any value. So when invoice flow is run, it generates an invoice in the History tab as shown in the following screen:
Control to Auto-bill orders in NetSuite
The Auto-bill orders in NetSuite when the status is the drop-down list in Advanced Settings of the Billing section enables you to control when an order is billed. The drop-down list consists of the following options:
- Pending Fulfillment
When you select this option, the NetSuite Saved Search for auto-billing orders: Celigo eTail Auto-Billing Search in NetSuite only auto bills the orders with status as Pending Fulfillment. Billing is completed in Salesforce Commerce Cloud for such orders before they are imported in NetSuite. To maintain the consistency of order status in Salesforce Commerce Cloud and NetSuite, you must select this option so that order is billed before it is fulfilled in NetSuite.
- Pending Billing
When you select this option, the NetSuite Saved Search for auto-billing orders: Celigo eTail Auto-Billing Search in NetSuite only auto bills the orders with status as Pending Billing. If the flows are configured to trigger on orders post-fulfillment, the orders are auto-billed only when they are completely fulfilled. Partially fulfilled orders are not picked for auto-billing. When an authorized order is imported into NetSuite, the expectation is to fulfill the order before you actually bill the customer who has placed the order. In NetSuite, the order status changes to Pending Billing once you fulfill an order. This drop-down value ensures that all orders whose status is Pending Billing are picked for Invoice or cash sale generation.
The value you select for the Auto-bill orders in NetSuite when the status is drop-down list is stored in the NetSuite Saved Search for auto-billing orders: Celigo eTail Auto-Billing Search.
Information flow for the Auto Billing flows in the Salesforce Commerce Cloud-NetSuite Connector
Once the auto-billing flows are executed, the connector identifies the value (Pending Billing or Pending Fulfillment) set in the Status filter in the NetSuite Saved Search for auto-billing orders: Celigo eTail Auto-Billing Search to determine the orders for which the cash sale or invoice needs to be generated.
Once the orders are determined in NetSuite for which Invoice or cash sale needs to be generated, the connector checks for the Payment Method field in the Billing tab for every eligible sales order. Based on the value of the Payment Method field, the connector generates either invoice or cash sale record for every eligible order in NetSuite.
Once the invoice or cash sale record is created for a sales order, the connector also updates the status of the order to Billed in NetSuite. In the eTail tab of the sales order, the ETAIL ORDER AUTO BILLING EXPORTED check box is automatically checked after the successful creation of invoice or cash sale for an order. Once the checkbox is checked, it is ignored when you run the auto-bill flow.
Advanced Settings for billing flows
The following are the available advanced setting available for the billing export flow:
NetSuite Saved Search for auto-billing orders: Select appropriate saved search. Refresh to fetch the latest values for the saved search. This saved search holds the criteria as to when an order is billed as the cash sale or invoice and allows you to add additional criteria as per your business needs. The following screen displays the saved search and its associated criteria in NetSuite:
Auto-bill orders in NetSuite when the status is: Provide the order status in NetSuite after which the connector should automatically bill the sales orders and create corresponding cash sales or invoices.