

אסטרטגיה. תכנון. יישום.
יוסי ויזל - יעוץ אסטרטגי למערכות מידע
NetSuite Implementation in a Distribution Company for the US Market
Multi-channel Distribution Company (Omnichannel)
The leading brand Doona is the world's first car seat that integrally combines a stroller with wheels together with a car seat, eliminating the need to carry the car seat by hand or attach/detach it to a stroller. (See video here about how it operates)
The product is a unique Israeli patent. The company's development center is in Israel, headquarters in Hong Kong, manufacturing plants in China and Burma, and distribution is done worldwide through several companies and distributors.
SPDistribution is the distribution company for the North American market.
The company manages all classic distribution channels to maximize its sales potential in this enormous market.
B2B Channel - Major Retail Chains
The company sells to some of the largest retail chains in the US (Target, buy buy BABY, Dillards, and more).
Each chain has hundreds of stores across the US and dozens of logistic Distribution Centers.
All business communication with the chains (orders, invoices, etc.) is conducted through EDI systems for document transmission between large companies and their suppliers.
These orders are created by buyers at the chain headquarters and contain large quantities of items. A typical order can contain hundreds of items supplied to multiple stores or distribution centers (DCs) of the chain spread across the US.
Drop Shipping
Beyond physical stores, most chains also operate e-commerce sites for online sales to their customers.
Each individual order that a chain's customer makes on their website goes through the chain's back office systems, then to EDI, and flows into SPD's information system.
Drop ship orders have a special process in the company. These orders are sent directly to the end customer (not to the chain's store or distribution centers). The order reaches the end customer as if it was sent by the chain, although it was actually sent directly from SPD. SPD is the engine behind the scenes of the process, but the end customer doesn't see any document mentioning it.
FBA - Fulfilled By Amazon
A group of stores that sell the company's products through Amazon.
The end customer buys the product on Amazon. The store owner buys large quantities for inventory managed at their location or in Amazon warehouses, and they send the order to the end customer on behalf of Amazon.
Private Stores Channel
The company sells to hundreds of private stores across the US. These stores buy for inventory with immediate delivery times.
Some stores also process drop ship orders for their customers. Here too, shipping is directly to the end customer.
A sophisticated order portal was built for these stores.
B2C Channel - E-commerce
In parallel to all the above, the company also operates an online store on the Shopify platform.
All orders from all channels flow in real-time through 24/7 interfaces to the company's ERP system.
Each channel has a completely different work process, with the business goal of implementing as many automations as possible, so that the order is approved, reaches the warehouse, and is shipped to the customer - in the shortest possible time.
Channel Allocation Management
One of the business challenges facing a multi-channel distribution company is controlling sales allocations for each channel, in a way that no channel is harmed and there is no cannibalization between different channels.
For the company's main items, the company manages "soft" allocations of physical inventory.
This means that at any given moment, the quantity of units physically in the company's warehouse is divided (allocated) for each channel. Any order that comes from a specific channel is approved only if there is enough inventory in the appropriate allocation.
It's important to emphasize that this is a virtual division ("coloring" the inventory). Physically on the shelf, there is no division and all inventory is identical (no division into different shelves, for example).
To control allocations in a smart business way, a mechanism was built that allows deciding on a new allocation of existing inventory according to business circumstances. For example, if during the COVID period they identify fewer sales in physical stores and many more online sales, the company's business manager can easily regulate the allocation and "transfer" inventory from one allocation to another.
Any shortage in a specific allocation triggers alerts to the company's business manager, who needs to decide on internal regulation of inventory between different allocations.
Since NetSuite doesn't have a built-in solution for allocation management, we developed a rather complex mechanism that easily manages all allocation logic.
(Note: NetSuite has a module called Sales Channel Allocation. It was evaluated and found unsuitable for our specific needs.)
[Continued in next sections...]
EDI
All business communication with major chains is conducted digitally through EDI systems.
To communicate with the chains' information systems (or in EDI language - transmit "documents"), every supplier must choose an intermediary company to be the mediator between their ERP system and the chains' EDI systems.
We chose eZCom's Lingo system, which has a built-in solution (more or less...) for NetSuite.
The communication ("documents") that pass between the company and the chains are:
-
Purchase order from chain buyers (850 document) - which becomes a customer order in the ERP
-
Company's shipping notification (856) - Advanced Shipping Notice
-
Invoice for payment from the company to chains (810)
Additionally, chains operating online sites need to know the real-time inventory status allocated to the chain, as actual inventory availability must be exposed to customers buying on their sites. The company is therefore required to notify each chain's online site about changes in the inventory level allocated to the chain, to prevent situations where a customer purchases a product on the site and it later turns out there's no inventory for them. (Chains impose penalties for each such event)
For this purpose, the company transmits an Inventory Advice document (846) once a day, which updates inventory levels on chain sites. As explained above, this is not the company's physical inventory, but the chain's allocation inventory level.
In 2023, for integration with Bloomingdale's, we added a solution with a completely different technological approach from the Israeli company Cymbio.
Shopify Integration
The availability and order rate of Shopify requires full automatic 24/7 integration.
The interface works bidirectionally:
-
Every customer order creates a real-time order in the ERP
-
Every order shipped to a customer is synced back to Shopify with shipping details as received from the shipping company. The Shopify system sends an email to the customer about the shipping date with a Tracking Number that allows them real-time tracking of the shipment status (direct link to UPS).
The company's policy is to allow returns and provide refunds. Every refund made in Shopify also immediately updates the ERP system.
Periodically, Shopify transfers all payments (minus commissions) to the company. This information is automatically checked and verified against actual order receipts.
For Shopify integration, we chose a solution from Indian company Netscore (with extensions and customizations for company needs).
We activated several complementary add-ons in the Shopify store. Worth mentioning is the add-on that approves credit card verification (fraud detection) to minimize financial risk exposure to merchants arising from a buyer's ability to cancel their purchase with the credit card company. This phenomenon, where the customer receives the order and later cancels the payment, causes enormous damage to online merchants.
To prevent this, we use Riskified's add-on (Israeli!) which checks the buyer's reliability level (based on Big Data and AI models) and essentially "insures" the merchant.
Only orders approved by Riskified are approved in Shopify and only then flow to the ERP system.
Shipping Management System - ShipStation
Company shipments are made in different ways - according to the marketing channel, product type, and various chains.
Shipping packaging is also done using predefined logic that takes into account product dimensions and weight, whether packaging is in boxes or on pallets, what can be packed with what, etc.
This is an entire world, and we looked for a SuiteApp addon from NetSuite's business partners that would adequately address all needs.
For implementing the shipping system, we chose ShipStation with online integration to NetSuite. Every order that passed the approval cycle (different per channel) is pushed in real-time to ShipStation for immediate warehouse handling.
In ShipStation, you can define a large set of Automation Rules that make most decisions almost completely automatic. For example:
Preferred carrier selection:
-
The system takes product data (dimensions and weight) and shipping address, and communicates online with UPS and FedEx systems.
-
Each carrier has several services at different prices, such as standard shipping, 2-hour shipping, etc.
-
An automatic rule might say, for example: "If the order is from a Shopify customer, choose the cheapest shipping."
-
Or "If the order is from a chain customer, choose FedEx shipping," etc.
Shipping label generation:
-
With the desired shipping selection, the system produces UPS or FedEx labels with all shipping details for attachment to the shipment, and this data is immediately transmitted to the chosen shipping company. Later, when collecting the shipment, the shipping company employee will scan the label, creating, among other things, a business commitment between the company and the shipping company.
-
You can also define shipping costs to be charged to a third party - for example, the chain from which the dropshipping customer ordered.
Insurance selection:
-
You can define that shipments above a certain amount will be insured by a specific insurance company or even the shipping company itself.
Packaging method:
-
You can define automation rules that say, for example, "this and that product can be packed together in such and such box."
Accompanying documentation:
-
Each chain has its specific guidelines regarding accompanying documentation like Packing list, BOL (Bill Of Lading), etc.
-
One of the special needs in DropShipping channel shipments is producing Branded paperwork, meaning documents reaching the end customer will appear in the exact format defined by the purchasing chain without mentioning SPD.
Additional detailed instructions: Such as: recipient signature required, must be received by someone over a certain age, etc.
SPS Bundle
It's important to emphasize that ShipStation doesn't support LTL (Less than Truck Load) shipments. For this type of shipping, we use the SPS bundle, which generates all required paperwork. Carrier selection is done by receiving shipping quotes from an external system that communicates with information systems of several shipping companies and brokers (currently not integrated with NetSuite).
ShipStation Integration
Two interfaces run around the clock between ShipStation and NetSuite:
-
Every order approved by the sales department is automatically pushed to ShipStation.
-
Every shipment made in ShipStation is pushed back to NetSuite and creates a fulfillment transaction with all shipping data (including Tracking Number)
The integration was developed by Novamodule based on Celigo infrastructure.
PayPal Integration
There are many solutions for PayPal payment in e-commerce sites. This is a synchronous payment method - the buyer selects products, and at checkout can pay via PayPal. They enter their account, pay, and the customer's payment and order confirmation are immediately updated on the site.
This is the model that also serves us in Shopify purchases (although from the customer's Shopify account and not their PayPal account).
However, for the store sales channel, the payment model is reversed. First, we receive and approve the order, and only then request payment from the customer. Payment can be made in several methods - one of them being PayPal payment.
This is an asynchronous payment method - we send an email with a payment request containing a direct link to PayPal payment, and the customer can pay at any time they want (or not at all).
For this asynchronous payment method, we didn't find a solution in NetSuite. For this purpose, we specially developed (by Indian company Netscore) a specific payment page for the order, through which the customer can pay using a credit card or PayPal account. Upon payment completion, a Deposit transaction is immediately created in NetSuite for the order, and if payment was made in full, the order is automatically pushed to the warehouse.
Meanwhile and automatically, PayPal processing fees are recorded in NetSuite and allocated to the appropriate financial accounts.
Bill.com Integration
While NetSuite supports vendor payment recording, Bill.com provides a comprehensive solution for the entire vendor payment process, and also, of course, executes the actual payment.
Invoice receipt:
-
Vendor invoice is received in Bill.com as a PDF file, immediately analyzed by the system and automatically converted to invoice structure.
-
The system performs smart OCR on the invoice and analyzes the invoice printout structure - vendor, amount, dates, and more.
-
The system uses AI algorithms to learn the invoice, so for example, if the first time it didn't identify the vendor name in the invoice printout, once the user tells it who it is, from then on it will do this automatically.
Approval cycle:
-
Building an approval cycle based on varied business logic (vendor type, invoice amount, billing item, etc.)
-
Consolidation of payments according to Due date
-
Support for many payment methods (credit card, ACH, and more)
Additionally, the vendor can enter the company's dedicated portal and directly report invoices for payment there.
Towards 2024, we replaced the implementation with FISPAN's product called "Treasury Ignition" to achieve full integration with J.P. Morgan bank.
Technical Architecture
Our entire architecture is based solely on cloud SaaS systems, which made the technical side of implementation relatively easy.
The complexity was on the application side - due to the great variance between different work processes, the need to support changes throughout (quantity changes, date changes, item changes, and so on) so that the process is "non-linear."
Core System - ERP:
-
NetSuite OneWorld
Additional systems used by the company:
-
ShipStation
-
SPS portal
-
Shopify (with add-ons for Riskified, Addrexx, and more)
-
PayPal
-
Bill.com
Installed Bundles:
-
SPS
-
PayPal
-
Shopify
-
Addrexx
-
Celigo Integrator.io
-
Avalara for managing sales taxes and dealing with tax authorities in federal states
For implementation, we used logistic and financial implementers and the development department (where dedicated code development was needed) of Netcloud company.
A significant management challenge was the need to coordinate between global development, implementation, and support teams (US, India, Philippines) when each sees a narrow and small angle of the big picture - despite every change in one of them having implications for the entire system.