The Billing section in the Shopify-NetSuite Integration App consists of the following flows:
- NetSuite sales order to NetSuite cash sale (add)
- NetSuite sales order to NetSuite invoice (add)
- NetSuite billing to Shopify billing (add)
- Shopify transaction to NetSuite customer deposit (add)
The first two 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 Shopify into NetSuite. Once you enable these flows, you are no longer needed to manually bill these orders in NetSuite. If your business is set up to capture payments in NetSuite, the workflow can also trigger the payment capture in NetSuite.
When an order is marked as “Billed” in your NetSuite account and you run the NetSuite Billing to Shopify Billing Add flow, a request is made by Celigo’s iPaaS platform integrator.io to fetch all the billing associated details from NetSuite, which then makes a request Shopify API’s to trigger the Shopify funds capture process. Once the fund capture process is triggered, it captures the funds for all orders you had imported in NetSuite with the Add web orders into NetSuite drop-down value set as “When they are authorized 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 available with the starter (previously "standard") edition, but the NetSuite Billing to Shopify Billing Add flow is only supported with the standard (previously "premium") edition of the Integration App.
- It is assumed that the Fulfillment process is handled in NetSuite before the order is billed. For all the orders that are directly captured at the time of sale, Auto-Billing data flows bills them in NetSuite and the Billing Export flow ignores them.
Understanding Cash Sale, Invoice and Customer Deposits in NetSuite
- 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.
- Customer Deposits
A customer deposit transaction records the funds received when a customer makes advance payment for an order. This payment is recorded in the general ledger as a liability until the goods or services are actually delivered and does not affect the customer's accounts receivable balance. After the order is fulfilled, the deposit is applied against the invoice and the liability is canceled out.
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 Shopify-NetSuite Integration App before you execute the billing flow:
- Ensure that the order on your Shopify also exists in the NetSuite. You can use Celigo’s effective order flows, Shopify Order to NetSuite Order Add or Shopify Order to NetSuite Cash Sale Add, in the Order section to ensure all your orders in Shopify and NetSuite are always in sync with each other. For more information, see the Order section.
- Click on the Off /On switch against the billing flows to enable them.
- Verify, update, and add field mappings as per your requirements. For more information on field mapping, see Mappings.
- From Settings, select the appropriate saved searches and drop-down list value and click Save.
Create a cash sale or an invoice
Before you run the flow, it is important to understand the criteria the Shopify-NetSuite Integration App 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 the 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 on 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:
Controlling when to auto-bill orders in NetSuite
The Auto-bill orders in NetSuite when the status is a drop-down list in 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. We recommend you to use this option when you import orders in NetSuite using our order import flow with the Add web orders into NetSuite drop-down list value set as When they are captured in Shopify. Billing is completed in Shopify for such orders before they are imported in NetSuite. To maintain the consistency of order status in Shopify and NetSuite, you must select this option so that the 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. We recommend you to use this option when you import orders in NetSuite using our order import flow with the Add web orders into NetSuite drop-down list value set as When they are authorized in Shopify. 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 for the Auto Billing flows in the Shopify-NetSuite Integration App
Once the auto-billing flows are executed, the Integration App 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 Integration App 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 Integration App generates either invoice or cash sale records for every eligible order in NetSuite.
Once the invoice or cash sale record is created for a sales order, the Integration App 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 an invoice or cash sale for an order. Once the checkbox is checked, it is ignored when you run the auto-bill flow.
Information for the Billing export flows in the Shopify-NetSuite Integration App
You can leverage the NetSuite Billing to Shopify Billing Add flow to transfer billing confirmation from NetSuite to Shopify. When you run this flow, the Shopify- NetSuite Integration App perform the following two checks on every sales order to find the eligible order for exporting the billing details to Shopify:
- Select all sales orders with the Status as Billed.
- Among the sales order with status as Billed, select only the orders which have the ETAIL ORDER BILLING EXPORTED checkbox as unchecked.
Once the Integration App identifies all eligible orders for which billing information needs to be imported in Shopify, the payment capture process in Shopify is triggered for all eligible orders. In the eTail tab of an order section, the ETAIL ORDER BILLING EXPORTED checkbox is automatically checked after the billing export is successful.
Note: When orders are imported from Shopify to NetSuite, in the NetSuite eTail tab, the ETAIL ORDER BILLING EXPORTED check box remains unchecked for orders that are created as Authorize only, while for other orders this check box is displayed as selected. It means that for all the orders that are directly captured at the time of sale, Auto-Billing data flows bills them in NetSuite and the Billing Export flow ignores them.
Shopify Transaction to NetSuite Customer Deposit Add
If you charge customers at the time of sale and before the order is fulfilled, this integration flow can be leveraged to create customer deposits in NetSuite as soon as the order is imported into NetSuite. To enable this integration flow, use the “Off/On” option against the flow in the Billing section. Once customer deposit records are created in NetSuite and the order is fulfilled, you can apply the order invoice to the customer deposit records to cancel out the liability and make funds available in account receivable.
- Only Transactions marked as Captured are considered for creating Customer Deposits.
- The integration flow creates one customer deposit per each payment method used on the order.
- You need to manually delete payment method mapping from the Shopify Order to NetSuite Order Add integration flow for the Integration App to create the Customer Deposit records in NetSuite. This is because NetSuite only allows creating Customer Deposits record for a sales order if the Payment Method field on the sales order is not configured.
The customer deposit records can be accessed from your NetSuite account in the following way:
- Use the global search and search with order id, open the sales order and click the Related record/ History tab.
- Go to Transactions > Customers > Record Customer Deposits >List
Screens depicting the Customer Deposit flow run
- In Shopify - NetSuite Integration App, go to Flows > Billing and click on Off/On button against the Shopify Transaction to NetSuite Customer Deposit Add flow.
- Click the run button to execute the Shopify Order to NetSuite Order Add flow.
- Once the order is imported in NetSuite, the Integration App automatically triggers the Shopify Transaction to NetSuite Customer Deposit Add flow.
- Once the flow runs successfully, you can open the sales order in NetSuite and go to the History tab to find all the Customer Deposit records created for the order as displayed in the following image:
- Open the record to match the same information defined in the mappings that have been imported from NetSuite.
Invoice attached to an Order and Customer deposit record in NetSuite
Once you apply the order invoice to the customer deposit records to cancel out the liability and make funds available in account receivable, you can access the same from the order and customer deposit record in NetSuite.
- Customer Deposit
Related Topic: Capture Payments in NetSuite