Order-to-Cash in NetSuite: Complete Ecommerce Walkthrough

If you're running an ecommerce brand processing more than a few hundred orders per month, your order-to-cash process is either your competitive advantage or your biggest bottleneck. There's no...

12 min read

Disclosure: NetSuiteForge may earn a commission through affiliate links in this article. We only recommend solutions we've personally implemented for ecommerce clients. Our editorial process is independent, and our recommendations are based on hands-on experience.

Order-to-Cash in NetSuite: Complete Ecommerce Walkthrough

If you're running an ecommerce brand processing more than a few hundred orders per month, your order-to-cash process is either your competitive advantage or your biggest bottleneck. There's no in-between.

After implementing NetSuite for over 40 ecommerce brands—from $2M Shopify stores to $50M multi-channel operations—I've seen how the order-to-cash (O2C) cycle can make or break operational efficiency. When it works, orders flow seamlessly from your website through fulfillment and into your bank account. When it doesn't, you're drowning in manual reconciliation, shipping errors, and cash flow blind spots.

This guide walks you through every step of the NetSuite order-to-cash process, specifically tailored for ecommerce operations. No generic ERP theory—just the practical workflow you need to implement.

Key Takeaways

  • The complete O2C cycle in NetSuite spans 7 core transaction types, from sales order creation through bank deposit, each with ecommerce-specific configurations
  • Shopify and Amazon integrations require specific webhook configurations to automate sales order creation without manual data entry
  • Partial shipments and split fulfillments are where most ecommerce implementations struggle—get the item fulfillment workflow right from day one
  • Payment application and bank reconciliation are the final steps most teams skip automating, leaving thousands of dollars unreconciled monthly
  • A properly configured O2C process reduces order-to-ship time by 40-60% compared to disconnected systems

What Exactly Is the Order-to-Cash Cycle in NetSuite?

The order-to-cash cycle encompasses every transaction from the moment a customer places an order to the moment cash hits your bank account. In NetSuite, this involves a chain of linked records, each triggering the next step in the process.

For ecommerce specifically, the cycle looks like this:

Web Order → Sales Order → Pick Ticket → Item Fulfillment → Invoice → Customer Payment → Bank Deposit

Each of these steps creates a transaction record in NetSuite that links back to the original sales order. This linkage is critical—it's what gives you end-to-end visibility and makes reconciliation possible.

The Ecommerce Difference

Traditional B2B order-to-cash starts with a quote or estimate. Ecommerce skips that entirely. Your "quote" is your product page, and the customer's "acceptance" is clicking the buy button. This means your O2C process needs to handle:

  • High transaction volumes (hundreds or thousands daily vs. dozens)
  • Automated order creation (no sales rep involvement)
  • Multiple payment methods (credit cards, PayPal, buy-now-pay-later)
  • Real-time inventory updates across channels
  • Customer-initiated returns without a relationship manager

How Do You Configure Sales Order Creation from Shopify?

The first step in your O2C cycle is getting orders from your ecommerce platform into NetSuite as sales orders. For Shopify—the most common platform I see in implementations—this typically works through one of three methods.

Method 1: Native Shopify-NetSuite Connector (Recommended for Most)

Oracle's native connector (formerly Celigo's base connector) handles the basics well. It maps Shopify orders to NetSuite sales orders, syncs inventory, and pushes fulfillment status back to Shopify.

Configuration steps:

  1. Navigate to Setup → Integration → Manage Integrations in NetSuite
  2. Create a new integration record with Token-Based Authentication
  3. In the connector, map your Shopify order fields to NetSuite sales order fields
  4. Set up item mapping—your Shopify SKUs must match NetSuite item names/IDs
  5. Configure customer matching rules (email match is standard for DTC)
  6. Set default values: subsidiary, location, payment method, sales channel

Critical ecommerce setting: Enable "Create Customer if Not Found" with a default customer category for DTC buyers. You'll accumulate thousands of customer records—plan your customer hierarchy accordingly.

Method 2: Webhook-Based Custom Integration

For brands needing more control, Shopify webhooks can trigger a custom RESTlet in NetSuite:

Shopify Order Created Webhook → Your Middleware → NetSuite RESTlet → Sales Order

This approach lets you transform data before it hits NetSuite. Common transformations include:

  • Splitting orders with items from different warehouses into separate sales orders
  • Applying customer-specific pricing tiers
  • Routing orders based on shipping destination
  • Handling subscription-first-order vs. recurring-order differently

Method 3: iPaaS Middleware (Celigo, Boomi, Workato)

For multi-channel operations running Shopify plus Amazon plus wholesale, an iPaaS platform provides a single integration layer. Celigo is the most NetSuite-native option, with pre-built flows for common ecommerce scenarios.

Cost consideration: Native connectors run $500-1,500/month. iPaaS platforms start at $1,000/month and scale with volume. Custom webhooks have lower ongoing costs but higher development investment ($15,000-30,000 initial build).

How Does the Pick, Pack, and Ship Process Work?

Once a sales order lands in NetSuite, the fulfillment process begins. This is where ecommerce operations get complex—especially when you're shipping from multiple locations.

Generating Pick Tickets

NetSuite generates pick tickets from open sales orders. For ecommerce, you'll want to configure:

  1. Auto-generate pick tickets when sales orders are approved (Setup → Accounting → Accounting Preferences → Order Management)
  2. Pick task priority based on shipping method (expedited orders first)
  3. Wave picking for high-volume warehouses—group picks by zone to reduce travel time

Creating Item Fulfillments

The item fulfillment record is the workhorse of ecommerce shipping. Each fulfillment record:

  • Reduces inventory on hand
  • Triggers shipping label generation (if integrated with a shipping platform)
  • Updates the sales order status
  • Can trigger customer notification emails

For ecommerce, configure these fulfillment settings:

  • Enable partial fulfillments (you will have backorders)
  • Set up fulfillment exceptions for items on hold
  • Configure auto-fulfill for digital goods
  • Link your shipping integration (ShipStation, ShipBob, or native UPS/FedEx)

Handling Partial Shipments

Partial shipments are the norm in ecommerce, not the exception. A customer orders three items, two ship from your warehouse, one drops ships from a vendor. NetSuite handles this by allowing multiple item fulfillments against a single sales order.

Configuration: On the sales order, each line item has a "Quantity Fulfilled" field. When you create an item fulfillment for a subset of items, NetSuite updates the fulfilled quantity and keeps the sales order open until all lines are completely fulfilled.

Watch out for: Split fulfillments triggering multiple shipping charges. Configure your shipping rules to only charge once per original order, even if you fulfill in multiple shipments.

Drop-Ship Fulfillment

For ecommerce brands using drop-ship vendors, NetSuite can automate the purchase order creation:

  1. Mark items as "Drop Ship" in the item record
  2. When a sales order contains drop-ship items, NetSuite auto-creates a purchase order to the vendor
  3. The vendor ships directly to the customer
  4. You receive the vendor's invoice separately from the customer's payment

Ecommerce gotcha: Drop-ship items don't reduce your inventory because you never hold them. But they do appear in your revenue, so make sure your financial reports distinguish between warehouse-fulfilled and drop-shipped revenue.

How Do Invoices and Revenue Recognition Work for Ecommerce?

In many ecommerce implementations, invoicing happens automatically when an item fulfillment is created. This "fulfill-then-invoice" approach matches the standard ecommerce model where customers pay at checkout.

Auto-Invoice Configuration

Navigate to Setup → Accounting → Accounting Preferences → Revenue Recognition and enable:

  • Auto-create invoice on item fulfillment
  • Apply customer deposit (pre-payment) to invoice automatically
  • Set invoice date to fulfillment date (not order date)

Revenue Recognition Considerations

For simple product sales, revenue is recognized at shipment (when the item fulfillment is created and the invoice is generated). But ecommerce brands often have more complex scenarios:

  • Subscription boxes: Revenue recognized over the subscription period
  • Gift cards: Deferred revenue until redemption
  • Bundles with services: Split recognition between product (at shipment) and service (over time)
  • Pre-orders: Deferred until fulfillment

NetSuite's revenue recognition schedules handle all of these. Create a revenue schedule for each scenario and link it to the appropriate items.

Sales Tax Automation

Ecommerce sales tax is a nightmare without automation. NetSuite integrates with Avalara (AvaTax) or can use its native SuiteTax module:

  • Avalara: Best for US multi-state compliance, handles marketplace facilitator rules
  • SuiteTax: Better for international operations with VAT/GST requirements

Cost note: Avalara starts at $200/month for small operations, scaling to $1,000+/month for high-volume. SuiteTax is included in your NetSuite license but requires more configuration.

How Do You Handle Customer Payments and Deposits?

Ecommerce customers typically pay at checkout, before you fulfill the order. In NetSuite accounting terms, this is a "customer deposit"—you've received money but haven't earned it yet (no invoice exists until fulfillment).

The Customer Deposit → Payment Application Flow

  1. Customer places order → Shopify charges their credit card
  2. Shopify settles to your bank → You receive a Shopify payout (net of fees)
  3. NetSuite creates a customer deposit → Records the pre-payment against the sales order
  4. Item fulfillment + invoice created → Revenue is recognized
  5. Customer deposit applied to invoice → The pre-payment clears the invoice balance
  6. Customer payment record → Links the deposit application to the bank deposit

Handling Multiple Payment Methods

Modern ecommerce customers pay via credit card, PayPal, Apple Pay, Klarna, Afterpay, and more. Each payment method needs:

  • A payment method record in NetSuite
  • A corresponding GL account for the payment clearing account
  • Mapping in your integration to identify which method was used

Pro tip: Create a "Shopify Payments" clearing account separate from your operating bank account. All Shopify payouts hit this clearing account first, then you reconcile the clearing account to your bank when the ACH deposit lands. This makes reconciliation dramatically easier.

How Do You Reconcile Bank Deposits for Ecommerce?

Bank reconciliation is the final step in the O2C cycle, and it's where most ecommerce NetSuite implementations fall apart. The problem: marketplaces don't pay you per-order. They batch transactions into periodic payouts with fees deducted.

The Reconciliation Challenge

A single Shopify payout might include:

  • 347 order payments
  • 12 refunds
  • Platform fees
  • Chargebacks
  • Adjustments

You need to match this single bank deposit to hundreds of individual NetSuite transactions. Manually, this takes days. Automated, it takes minutes.

Automated Reconciliation Approach

  1. Import bank transactions via bank feed (most major banks support OFX/QFX feeds to NetSuite)
  2. Create a matching rule that matches Shopify payout reference numbers to NetSuite deposit records
  3. Use a saved search to identify unmatched transactions
  4. Reconcile marketplace fees against your fee expense accounts

For Amazon, the process is even more complex because FBA fees, storage fees, and advertising charges are all deducted from your payouts. I recommend a dedicated "Amazon Settlement" reconciliation workflow that breaks each settlement report into its component transactions.

Monthly Close Checklist for Ecommerce O2C

At month-end, verify these O2C reconciliation points:

  • All sales orders for the period have been invoiced (no orphaned fulfillments)
  • Customer deposits have been applied to their corresponding invoices
  • Bank deposits match marketplace payout reports within a reasonable tolerance ($50 or less)
  • Sales tax collected matches sales tax liability accounts
  • Shipping revenue matches shipping expenses within expected margins
  • Return/refund transactions are properly coded against original orders

What Are the Most Common O2C Mistakes in Ecommerce Implementations?

After 40+ implementations, these are the mistakes I see repeatedly:

Mistake 1: Not Using Customer Deposits

Some implementers skip the customer deposit step and create invoices directly from sales orders with immediate payment. This technically works but breaks your revenue recognition—you show revenue before fulfillment, which is incorrect for accrual accounting and problematic for audits.

Mistake 2: Single Fulfillment Location

Setting up a single location works for small operations but creates a bottleneck as you scale. Configure multiple locations from the start, even if you only ship from one warehouse today. Adding locations later requires re-mapping every item record.

Mistake 3: Ignoring Marketplace Fee Reconciliation

Shopify takes 2.9% + 30¢ per transaction. Amazon takes 15% plus FBA fees. If you're not tracking these fees at the transaction level, you have no idea what your true gross margin is per channel.

Mistake 4: Manual Refund Processing

Returns are inevitable in ecommerce (15-30% return rate for apparel). If your return process isn't automated—from RMA creation through credit memo and refund—you're burning 2-3 hours per day on manual refund processing.

Mistake 5: Not Testing the Full Cycle Before Go-Live

I've seen implementations where the team builds each step individually but never tests the complete end-to-end cycle. A sales order that creates perfectly might fail at the fulfillment step because of a location mismatch. Test the entire O2C cycle with realistic data before go-live.

Frequently Asked Questions

How long does it take to implement the full O2C cycle in NetSuite?

For a standard ecommerce implementation with one sales channel and one warehouse, plan for 8-12 weeks. Multi-channel operations with 3PLs and drop-ship vendors typically take 16-24 weeks. The integration work (connecting Shopify/Amazon to NetSuite) usually takes the longest.

Can NetSuite handle high-volume ecommerce (10,000+ orders/day)?

Yes, but you need to configure it properly. Use asynchronous order import (not real-time one-at-a-time), enable SuiteCloud Plus for parallel processing, and optimize your saved searches and scripts. NetSuite handles this volume for brands like The Honest Company and Carvana.

What's the difference between item fulfillment and item receipt?

Item fulfillment is outbound (shipping to customers). Item receipt is inbound (receiving inventory from vendors). Both update inventory, but in opposite directions. In the O2C cycle, you only deal with item fulfillments. Item receipts are part of the procure-to-pay cycle.

How do I handle international orders with different currencies?

Enable the Multi-Currency feature in NetSuite. Each sales order records the transaction in the customer's currency, and NetSuite converts it to your base currency at the current exchange rate. You can set up automated exchange rate feeds to keep rates current.

Should I use NetSuite's native shipping integration or a third-party tool?

For most ecommerce operations, use a third-party shipping platform like ShipStation, ShipBob, or EasyPost. NetSuite's native shipping integration works but lacks the rate shopping, label generation speed, and carrier breadth that dedicated shipping platforms provide. Budget $200-500/month for shipping software.

How do I track cost of goods sold (COGS) accurately in the O2C cycle?

Configure your item records with accurate cost methods (FIFO, weighted average, or standard cost). When an item fulfillment is created, NetSuite automatically generates the COGS journal entry debiting COGS and crediting inventory. For ecommerce, weighted average cost is most common because product costs fluctuate with supplier pricing and shipping costs.

Ready to Optimize Your Order-to-Cash Process?

A properly configured O2C cycle in NetSuite transforms ecommerce operations. Orders flow automatically from your website through fulfillment, invoicing, and into your bank account with minimal manual intervention.

But every ecommerce business has unique complexities—multiple warehouses, international shipping, subscription models, or complex return policies. The configuration details matter enormously, and getting them wrong creates more work than your old system.

Take our free NetSuite readiness assessment → to identify where your current O2C process has gaps and get a customized implementation roadmap for your ecommerce operation.

Related Articles