Browse Business Software Categories

Close  

Distribution

ERP

Inventory Management

Warehouse Management

NetSuite Item Fulfillment: Pick, Pack and Ship Statuses and the COGS Posting

NetSuite Item Fulfillment: Pick, Pack and Ship Statuses and the COGS Posting

Last updated: November 3, 2026 · Independent guide · We do not sell rankings or coverage.

A NetSuite item fulfillment is the transaction that records goods leaving your warehouse against a sales order or transfer order, and it is the record that relieves inventory and posts cost of goods sold. With Pick, Pack and Ship turned on, each fulfillment moves through three statuses, Picked, Packed and Shipped, and only Shipped posts to the general ledger. Whether COGS posts on the fulfillment or on the invoice depends on whether Advanced Shipping is enabled. Below are the setup steps in order, then partial fulfillments and fixes for fulfillments that will not save.

Before you start

  • Role: A role with the Set Up Accounting permission, which you need to set the fulfillment preferences (Oracle, no date shown).
  • Features: Pick, Pack and Ship works with or without Advanced Shipping, and this guide assumes both are on (Oracle, no date shown). Shipping Label Integration is optional, for printing carrier labels (Oracle, no date shown).
  • License: Oracle does not publish NetSuite pricing, so confirm with your account manager what your subscription includes.
  • A sandbox: Advanced Shipping cannot be turned off again unless every fulfilled sales order has been billed (Oracle, no date shown). Test in a sandbox first.

What Picked, Packed and Shipped mean

The three statuses on the item fulfillment record work as follows (Oracle, no date shown):

Status What it means Posts to GL? Where you set it
Picked Items have been pulled from stock and are waiting to be packed and shipped No Shipping > Shipping > Fulfill Orders
Packed Items are packed and waiting to ship No Shipping > Shipping > Mark Orders Packed
Shipped Items have left the building Yes Shipping > Shipping > Mark Orders Shipped

Stock on a packing bench therefore still sits in Inventory Asset. Fulfilling an item posts a debit to Cost of Goods Sold and a credit to Inventory Asset (Oracle, no date shown). Under Pick, Pack and Ship, that happens at Shipped. See our COGS journal entry guide.

Advanced Shipping on vs off: when COGS posts

With Advanced Shipping off, NetSuite uses a single transaction to fulfill and bill. Fulfilling the order automatically creates the bill, and any items fulfilled on a partial fulfillment are also billed (Oracle, no date shown). The inventory value leaves Inventory Asset in the same step that creates the customer invoice (Oracle, no date shown). Revenue, receivables and COGS land on the same date.

With Advanced Shipping on, the warehouse creates the item fulfillment and accounting bills it later. The value of the inventory fulfilled leaves Inventory Asset at fulfillment, before any invoice exists (Oracle, no date shown). COGS therefore posts on the Shipped fulfillment and revenue posts on the invoice, which can fall in different periods.

Question Advanced Shipping off Advanced Shipping on
Which record relieves inventory The combined fulfillment and invoice Item fulfillment (at Shipped if Pick, Pack and Ship is on)
When COGS posts On the invoice date, with revenue On the fulfillment date, before or after the invoice
Pick, Pack and Ship statuses Available, and the invoice is created when lines are marked shipped Available
Invoice before shipping Not applicable Only with Invoice in Advance of Fulfillment enabled

Illustration (constructed numbers): a distributor ships 200 units costing $12 each on October 31 and invoices them on November 3. With Advanced Shipping on, the $2,400 COGS entry lands in October and the revenue lands in November, so October shows the cost without the sale. A shipped-not-billed saved search at month-end catches this.

Step 1: Enable Advanced Shipping and Pick, Pack and Ship

Go to Setup > Company > Enable Features, open the Transactions subtab, check Advanced Shipping and Pick, Pack and Ship, and click Save (Oracle, no date shown). Treat this as a one-way change: you will not be able to turn Advanced Shipping off while any fulfilled order remains unbilled.

Step 2: Give warehouse roles the right permissions

After enabling Advanced Shipping, go to Setup > Users/Roles > Manage Roles, click Customize on each warehouse role, and set Item Fulfillment and Fulfill Orders to Full on the Transactions permissions subtab (Oracle, no date shown). These add the Fulfill button and the bulk fulfillment page.

Step 3: Set the default fulfillment stage and label stage

Go to Setup > Accounting > Setup Tasks > Shipping. In Default Item Fulfillment Stage, choose Picked, Packed or Shipped. If you use Shipping Label Integration, set Shipping Label Creation Stage to the earliest stage at which you can get tracking numbers and print labels (Oracle, no date shown).

Shipped suits a small team that picks and ships in one pass. Picked suits a warehouse with a separate pack station, because COGS waits until the goods actually ship.

Step 4: Set the order management preferences

Go to Setup > Accounting > Accounting Preferences and open the Order Management subtab (Oracle, no date shown). The settings that change fulfillment behavior most are:

  • Fulfill Based on Commitment: Limit to Committed caps the fulfillment at the committed quantity. Allow Uncommitted lets users fulfill more, which can drive on-hand negative. Ignore Commitment removes the check. See our guide to inventory allocation.
  • Allow Overage on Item Fulfillments: lets a fulfillment exceed the remaining quantity on the order line. Pair it with Ignore Commitment or Allow Uncommitted.
  • Default Items to Zero Received/Fulfilled: when on, every line opens at zero and the user enters what was picked.
  • Invoice in Advance of Fulfillment: lets billing invoice the full amount before the order is completely fulfilled.

Step 5: Decide how fulfillment dates move with status

With Update Transaction Date Upon Fulfillment Status Change enabled, NetSuite stamps the Pick, Pack and Ship Dates as each status is reached, resets the Transaction Date, and bases the accounting period on the Ship Date (Oracle, no date shown). Oracle says this preference is what lets you pick items in one accounting period and ship them in another. Turn it on if picked orders often carry over month-end.

Step 6: Fulfill (pick) an order

Go to Shipping > Shipping > Fulfill Orders, filter by customer if needed, and click Fulfill in the Process column (Oracle, no date shown). Confirm the status, date and quantities, then save. The Shipping and Packages subtabs stay locked while the status is Picked. The same help page also names Transactions > Sales > Fulfill Orders, so the path depends on your role’s center.

Filters include All Items Committed and Respect Ship Complete (Oracle, no date shown). Serialized items need one serial number per unit.

Step 7: Mark orders packed and shipped

Go to Shipping > Shipping > Mark Orders Packed, check the Pack box on each order (or enter one order number), and click Submit (Oracle, no date shown). Then go to Shipping > Shipping > Mark Orders Shipped and do the same in the Mark Shipped column (Oracle, no date shown). Bulk runs that take longer than ten seconds open a Job Status page, and its Order Processing Log shows the processed status of each order and any errors. Check it after every bulk run.

Step 8: Handle partial fulfillments

To ship part of an order, enter a quantity lower than the Remaining amount on each line. The order stays on the Fulfill Orders list until every item is picked, and each fulfillment carries its own status (Oracle, no date shown). A partially processed order must be fulfilled on its own, not in a multiple-order run (Oracle, no date shown).

To unpick some lines, edit the fulfillment, clear the Fulfill box on those lines and save. To unpick everything, delete the fulfillment from the Actions menu (Oracle, no date shown). You can reallocate stock away from an order with a Picked or Packed fulfillment, but you cannot fulfill the other order with it, and if the original fulfillment ships the stock returns to the original order (Oracle, no date shown). In practice, unpick first and then reallocate.

Common mistakes: fixing a fulfillment that will not save

Symptom Likely cause Fix
Line shows the inventory detail arrow and the save fails Bin, lot or serial detail not entered, or the detail total does not equal the line quantity Open the Inventory Detail icon, choose bins associated with the fulfillment’s location, and make the totals match (Oracle)
Cannot enter more than the remaining quantity Allow Overage on Item Fulfillments is off Enable it, and set Fulfill Based on Commitment to Allow Uncommitted or Ignore Commitment, or add the extra quantity to the sales order
Quantity capped below what is on the shelf Limit to Committed, with stock committed to other orders Fix the commitment on the order line or reallocate, rather than loosening the preference for everyone
Save blocked because stock would go negative Prevent Negative Inventory is set (Enhanced Validations and Defaulting SuiteApp) Post the missing receipt or an inventory adjustment first; see our NetSuite inventory adjustment guide
Shipped fulfillment cannot be edited or deleted It posts to a closed accounting period Ask finance to reopen the period or correct it in the current period
No Fulfill button on the sales order Order is Pending Approval, or the role lacks the Item Fulfillment permission Approve the order, or add the permission in Manage Roles

Sources for the table: negative inventory (Oracle, no date shown), closed periods (Oracle, no date shown) and Pending Approval orders (Oracle, no date shown). When Prevent Negative Inventory is not set, NetSuite shows a warning instead of blocking the save, which is how negative on-hand creeps in.

Limitations of the native feature

  • Oracle documents Pick, Pack and Ship as list pages and status changes. Mobile picking, wave release and scan-based workflows are documented under NetSuite WMS or sold by third parties.
  • You cannot disable Pick, Pack and Ship while any fulfillment is Picked or Packed (Oracle, no date shown).
  • Bulk pack and ship jobs report errors order by order, and you find them in the processing log.
  • COGS and revenue can post in different periods, so you need a shipped-not-billed review at every close.

When companies add a third-party tool

Distributors usually add tools once paper picking tickets cause mis-picks or carrier rate shopping matters. Oracle’s NetSuite WMS creates fulfillments automatically once the committed quantities on released orders are fully picked, though partial picks still need a manual fulfillment (Oracle, no date shown). RF-SMART, which sells a NetSuite mobile app, says it creates the fulfillment as each pick completes and updates the status as the fulfillment moves through each step; it does not publish pricing (RF-SMART, no date shown). For a vendor-neutral comparison with published prices, see our pick, pack and ship software guide.

How we researched this

Every menu path and rule comes from Oracle’s NetSuite online help, checked on November 3, 2026. Oracle’s pages show no last-updated date, so confirm labels in your own account. We also reviewed the top-ranking pages from ShipHawk (which sells NetSuite WMS software), Folio3 (a NetSuite partner) and an independent SuiteFoundation study guide. None of them sets out when COGS posts with Advanced Shipping on and off, or how to fix fulfillments that will not save. The month-end example uses constructed numbers.

Related guides

Frequently asked questions

Does a Picked item fulfillment reduce inventory in NetSuite?

No. Picked and Packed are non-posting statuses, so the value stays in Inventory Asset until the fulfillment is marked Shipped.

Does NetSuite post COGS on the invoice or the item fulfillment?

It depends on Advanced Shipping. With it off, the invoice or cash sale fulfills and bills in one step, so COGS posts with the invoice. With it on, COGS posts on the item fulfillment, which can fall in a different period from the invoice.

Can I use Pick, Pack and Ship without Advanced Shipping?

Yes. Oracle documents a Pick, Pack and Ship workflow without Advanced Shipping, in which NetSuite creates the invoice automatically when you mark the lines shipped. Billing cannot then be a separate step.

How do I partially fulfill a sales order in NetSuite?

Enter a quantity lower than the Remaining amount on each line of the item fulfillment and save. The order stays open for the balance, and each later fulfillment has its own status.

Why does my item fulfillment post to last month?

Usually because it was picked in one period and shipped in the next. Turn on Update Transaction Date Upon Fulfillment Status Change so the date and period follow the Ship Date.

Sources

  • Oracle NetSuite Help, Pick, Pack, and Ship Overview, no date shown, checked November 3, 2026. docs.oracle.com
  • Oracle NetSuite Help, Setting Up Pick, Pack, and Ship, no date shown, checked November 3, 2026. docs.oracle.com
  • Oracle NetSuite Help, Fulfilling Orders Using Pick, Pack, and Ship, no date shown, checked November 3, 2026. docs.oracle.com
  • Oracle NetSuite Help, Marking an Order Packed, no date shown, checked November 3, 2026. docs.oracle.com
  • Oracle NetSuite Help, Marking an Order Shipped, no date shown, checked November 3, 2026. docs.oracle.com
  • Oracle NetSuite Help, Pick, Pack, and Ship Workflow Charts, no date shown, checked November 3, 2026. docs.oracle.com
  • Oracle NetSuite Help, Advanced Shipping, no date shown, checked November 3, 2026. docs.oracle.com
  • Oracle NetSuite Help, Fulfilling Orders, no date shown, checked November 3, 2026. docs.oracle.com
  • Oracle NetSuite Help, Fulfilling Inventory, no date shown, checked November 3, 2026. docs.oracle.com
  • Oracle NetSuite Help, Billing or Invoicing a Sales Order, no date shown, checked November 3, 2026. docs.oracle.com
  • Oracle NetSuite Help, Fulfilling Orders Across Multiple Accounting Periods, no date shown, checked November 3, 2026. docs.oracle.com
  • Oracle NetSuite Help, Order Management Accounting Preferences, no date shown, checked November 3, 2026. docs.oracle.com
  • Oracle NetSuite Help, Fulfill a Single Order Using Advanced Shipping, no date shown, checked November 3, 2026. docs.oracle.com
  • Oracle NetSuite Help, Commitment Settings for Reallocation of Picked or Packed Inventory, no date shown, checked November 3, 2026. docs.oracle.com
  • Oracle NetSuite Help, Entering Inventory Details on Transactions or Records, no date shown, checked November 3, 2026. docs.oracle.com
  • Oracle NetSuite Help, Setting the Prevent Negative Inventory Preference, no date shown, checked November 3, 2026. docs.oracle.com
  • Oracle NetSuite Help, Fulfilling Released Orders (NetSuite WMS), no date shown, checked November 3, 2026. docs.oracle.com
  • RF-SMART, Pick, Pack, Ship for NetSuite, no date shown (vendor sells this product). rfsmart.com
  • ShipHawk, A Guide to NetSuite Order Management and Fulfillment, May 19, 2026 (vendor sells NetSuite WMS and shipping software). blog.shiphawk.com
  • Folio3, What Is the Order Fulfillment Process of NetSuite, October 31, 2022 (NetSuite partner that sells services). netsuite.folio3.com
  • Open Exam Prep, SuiteFoundation study guide 9.2 Fulfillment Controls, September 2026. open-exam-prep.com

Sherman Hsieh

CEO & Editor-in-Chief, Business-Software.com
Independent analysis of enterprise software — ERP, CRM and more
Sherman Hsieh is the founder, CEO, and editor-in-chief of Business-Software.com. He leads the site's independent, buyer-focused coverage of ERP, CRM, and other business systems, including vendor-neutral comparisons, pricing analysis, and implementation guidance. Before founding Business-Software.com, Sherman was an executive at Siebel ...