# How to Create an Item Fulfillment in NetSuite (Pick, Pack, Ship)

> Source: https://netray.co/erp-help/netsuite-how-to-item-fulfillment-pick-pack-ship
> Publisher: Netray (netray.co), AI and integration engineering for ERP and manufacturing systems.
> Section: ERP Help

## Short answer

Open an approved sales order and click Fulfill, or use Transactions > Sales > Fulfill Orders to batch them, then set quantities and inventory detail and save. With the Pick, Pack and Ship feature on, the fulfillment moves through Picked, Packed and Shipped statuses, and inventory and cost of goods post when it reaches Shipped.

## Kind

how-to

## System

netsuite

## Erp

Oracle NetSuite

## Module

Order Management / Item Fulfillment

## Query

how to create an item fulfillment in NetSuite

## Alternate Queries

- NetSuite pick pack ship setup
- NetSuite item fulfillment partial shipment
- NetSuite fulfill orders page
- NetSuite item fulfillment status picked packed shipped

## Applies To

NetSuite with Order Management; Pick, Pack and Ship and Advanced Bin / Numbered Inventory Management where inventory detail is required

## Steps

### Fulfill a sales order

**Items:**

- Confirm the sales order is approved (status Pending Fulfillment). If your account uses order approval, an unapproved order cannot be fulfilled.
- Open the order and click Fulfill. NetSuite creates an Item Fulfillment form with every line pre-filled for the open quantity.
- Set the Status. Without Pick, Pack and Ship the form is simply saved as shipped. With it enabled (Setup > Company > Enable Features > Transactions > Shipping), choose Picked, Packed or Shipped.
- On the Items subtab, tick Fulfill only on the lines going out now and edit Quantity for a partial shipment. Untick the rest; they stay open on the order.
- For lot, serial or bin items click the Inventory Detail icon on each line and assign the specific lots, serials and bins, with quantities that sum to the line quantity.
- On the Shipping subtab, set the ship method, packages and tracking numbers if you use integrated shipping.
- Save. Set the status to Shipped when the goods leave, then create the invoice from the order or, with fulfillment-based billing, from the fulfillment.

## Sections

### What posts when you fulfill

**Body:**

A fulfillment is a non-posting transaction until it is Shipped. When it reaches Shipped, NetSuite decrements on-hand and posts the cost: debit Cost of Goods Sold, credit Inventory Asset at the item's costing method value (average, FIFO, LIFO, standard or lot costing). Picked and Packed only record warehouse progress and do not touch the ledger.

That timing matters for month end. Fulfillments left in Picked or Packed at period close mean the inventory is still on hand in the books and no cost is recognized, even though the goods may be on a truck. Review fulfillments by status before closing.

### Partial, multiple and batch fulfillment

**Body:**

A sales order can have many fulfillments. Each one consumes part of the open quantity, and the order status moves from Pending Fulfillment to Partially Fulfilled, then Pending Billing or Billed. This is how you ship from several locations: set Location on each fulfillment line and fulfill each location separately.

To work through a queue, use Transactions > Sales > Fulfill Orders, filter by location or ship date, tick the orders, and mark them. For warehouse flows you can print pick tickets and packing slips from the same menu, then update status in bulk with the Mark Packed and Mark Shipped list actions.

**Code:**

// SuiteScript 2.x: transform a sales order to an item fulfillment
const fulfill = record.transform({
  fromType: record.Type.SALES_ORDER,
  fromId: soId,
  toType: record.Type.ITEM_FULFILLMENT,
  isDynamic: true
});
fulfill.setValue({ fieldId: 'shipstatus', value: 'C' }); // C = Shipped
fulfill.save();

### Common blockers

**Body:**

If a line will not fulfill, the usual causes are insufficient available quantity at the line location, an item with a bin or lot requirement and no inventory detail, an inactive location, or a commitment problem where stock is committed to another order. Check Available vs On Hand on the item record's Inventory subtab for that location.

Backordered items need the Commit setting on the order line and the preference for Order Commitment (Setup > Accounting > Accounting Preferences > Items/Transactions). If you ship without committing, lines show as not available even when stock exists.

## Pitfalls

- Leaving fulfillments at Picked or Packed through period close, so COGS and inventory relief are missed.
- Entering inventory detail quantities that do not match the line quantity, which blocks saving.
- Fulfilling from the wrong location because the order header location differs from the line location.
- Deleting a Shipped fulfillment to fix a mistake instead of editing it, which breaks the audit trail and can reopen the order unexpectedly.
- Assuming an invoice posts inventory. Inventory relief comes from the fulfillment, the invoice only recognizes revenue and receivable.

## Ai Angle

A grounded assistant can answer questions such as which approved orders are stuck in Pending Fulfillment, which fulfillments are still Packed at month end, or which lines lack inventory detail. ERPray shows the underlying query and works read-only by default, so warehouse and finance staff can see the list, while any change to a fulfillment stays an approved human action.

## Faq

### Why is the Fulfill button missing on a sales order?

**Answer:** The order is probably not approved, is already fully fulfilled, or your role lacks the Fulfill Orders permission. Also check the order status and whether all lines are non-inventory service items, which are not fulfilled. Approval and status are the first two things to check.

### Does an item fulfillment post to the general ledger?

**Answer:** Only when its status is Shipped. At that point NetSuite debits COGS and credits Inventory Asset at the item cost. Picked and Packed statuses are non-posting. Fulfillments of non-inventory items follow the item's own expense or COGS account setup.

### How do I do a partial shipment?

**Answer:** On the item fulfillment, untick Fulfill for lines you are not shipping, or reduce the quantity. Save as Shipped. The sales order moves to Partially Fulfilled and the remainder stays open, so you can create another fulfillment later.

### Can I bill before fulfillment?

**Answer:** Yes, if the Accounting preference does not require fulfillment before billing. By default, NetSuite can bill an order as soon as it is approved. Many companies enable the setting that requires fulfillment first so invoices only follow shipped goods.

## Search terms

netsuite item fulfillment, netsuite pick pack ship, netsuite fulfill sales order, netsuite partial fulfillment, netsuite fulfill orders page, netsuite item fulfillment inventory detail, netsuite fulfillment shipped status, netsuite sales order pending fulfillment

---
Talk to an engineer: https://netray.co/contact?intent=erp_ai | Machine catalog: https://netray.co/agent/catalog.json
