The quick answer
Go to Transactions > Order Management > Fulfill Orders and click Import - CSV. Choose a file that lists the orders to fulfill, using the columns of the page's sample file (Order Number, Transaction Type, Weight, Tracking Number and Label Integration). Set Set Shipment Status To, Bulk Fulfill From Location, Ship Via, Date and Posting Period once for the whole file, add any shared header values in the Field sublist, and click Submit. NetSuite creates the item fulfillments in a Fulfill Sales Orders background process. Refresh Process Status until it reads Complete, read the Message column for errors, then check the orders. With Advanced Shipping, a fully shipped order moves from Pending Fulfillment to Pending Billing.
The screenshots show sample data. Person and operating-company names are fictional. Use your own records and values when following the steps.
Before you start
You need a role that can fulfill sales orders, and the orders need to be approved with something left to fulfill. This guide covers sales orders. The same file also takes transfer orders, which aren't shown here. This is a different tool from the Import Assistant under Setup > Import/Export. The file only names the orders. It doesn't map fields, and it doesn't set lines or quantities. NetSuite builds each fulfillment from the order, the location you choose, what's committed there and your fulfillment preferences.
Some fields on the Import CSV page depend on features. Bulk Fulfill From Location is required with Multi-Location Inventory, Set Shipment Status To offers Picked, Packed and Shipped with Pick, Pack and Ship, and Ship Via comes with Advanced Shipping. Without Advanced Shipping, fulfilling and billing happen together, so the order won't wait in Pending Billing the way it does here.
In this example, three sales orders are waiting at Fresno Warehouse: SO5207 for Cedar Point Landscaping, SO5211 for Brightwater Nursery and SO5214 for Hollis Park District. The warehouse has shipped the first two. Every line on those orders is committed at Fresno Warehouse.
01. Review the orders waiting to ship
Go to Transactions > Order Management > Fulfill Orders. The Orders subtab lists all three sales orders.
Click SO5207's date, 09/24/2026, to open it. It's Pending Fulfillment, its Total is 508.00, and it still offers Fulfill.
The Items subtab has quantity 6 of Drip irrigation kit and quantity 10 of Pruning shears at Fresno Warehouse, with Fulfilled 0 on both. Click Back to return to Fulfill Orders.
02. Review the import file
Open the file, sales-orders-to-ship.csv here. It uses the five columns of the sample file, which you get from the "Click here for a sample file." link on the Import CSV page. Two rows name SO5207 and SO5211, each with Transaction Type Sales Order and Label Integration F. SO5214 hasn't shipped, so it isn't in the file.
Order Number has to match the order's number exactly, prefix included. Transaction Type takes Sales Order or Transfer Order. Which of the other columns you need depends on your shipping and label setup. With a label integration, Weight and Tracking Number may be required, and F in Label Integration means the row doesn't use one. Start from your account's own sample file, keep its header row as it is, and delete its instruction rows before importing.
03. Open Import - CSV and set the values
On Fulfill Orders, click Import - CSV.
The Import CSV page opens. Under File, click Choose File and select the file. Leave Character Encoding at Unicode (UTF-8), Posting Period at Sep 2026 and Date at 09/30/2026. Choose Shipped in Set Shipment Status To and Fresno Warehouse in Bulk Fulfill From Location. Leave Ship Via at Default From Order so each fulfillment keeps its order's shipping method.
These values apply to every fulfillment the file creates. The posting period has to be open.
04. Set a memo on every fulfillment
In the Field sublist, choose Memo in Field. Memo is a text field, so its value goes in the Text column. Type Tuesday carrier pickup and click Add.
The Field sublist works like the Set Fields subtab on Fulfill Orders. It offers header fields from the item fulfillment form, and you get one value per field for the whole file. It isn't a per-order mapping.
05. Submit and follow the process
Click Submit. Process Status opens with submission 7412, Process Type Fulfill Sales Orders, Not Started at 0.0%. The fulfillments are created in the background. You can come back to this page later from Fulfill Orders > Status.
Click Refresh. Submission 7412 reads Complete, 100.0%, with the message 0 Errors.
Read the Message column even when the status is Complete. A complete submission can still report errors on individual orders, so open the orders themselves to confirm.
06. Check the sales order
Open SO5207 again. It's now Pending Billing, and Bill has replaced Fulfill.
Open the Related Records subtab. It lists Item Fulfillment IF3318, dated 09/30/2026, status Shipped. Depending on the form, you may find fulfillments under History instead.
07. Open the item fulfillment
Click IF3318. It's Shipped, dated 09/30/2026 in Sep 2026, with Memo Tuesday carrier pickup and Created From Sales Order #SO5207. The Items subtab ships quantity 6 of Drip irrigation kit and quantity 10 of Pruning shears from Fresno Warehouse, the full quantities that were waiting.
Check the result
- Process Status shows the submission Complete, and its Message reports no errors.
- Each order in the file has an item fulfillment whose Created From is that order. With Multiple Shipping Routes, an order can get one fulfillment per ship-to address.
- The fulfillment has the status, date, period, location and memo you set on the Import CSV page.
- A fully shipped order reads Pending Billing.
08. Confirm what's left to fulfill
Go back to Transactions > Order Management > Fulfill Orders. SO5207 and SO5211 are gone because nothing is left to ship on them. SO5214 is still there, because it wasn't in the file. An order whose row failed would stay on the list too.
A Shipped status in NetSuite records the shipment. It doesn't prove the carrier picked it up or delivered it.
Common questions
Is this the same as the Import Assistant?
No. The Import CSV page on Fulfill Orders is its own tool. The file only names the orders, there's no field mapping step, and the header values come from the page. You get there from Import - CSV on Fulfill Orders, not from Setup > Import/Export.
Why didn't a Complete submission fulfill every order?
Complete means the process finished, not that every row worked. Read the Message column, then open the orders. Common causes are an order number that doesn't match, a closed or unapproved order, nothing committed at the location you chose, a closed posting period, or missing lot, serial or bin detail. An order that isn't in the file isn't touched at all, like SO5214 here.
Can the CSV set quantities for each line?
No. The file names orders, not lines or quantities. NetSuite decides what each fulfillment contains from the order, the Bulk Fulfill From Location, what's committed there and your fulfillment preferences. Here every line was committed at Fresno Warehouse, so the fulfillment took the full quantities. To ship part of an order, fulfill it by hand.
Does Picked or Packed make the order billable?
No. Picked and Packed record warehouse progress. With Advanced Shipping, the order becomes billable once the fulfillment is Shipped, which is what moved SO5207 to Pending Billing.
Where do I check the process later?
Go to Transactions > Order Management > Fulfill Orders > Status. That opens Process Status, where each submission shows its Process Type, status, percent complete and message.
Why did my sales order change to Pending Billing?
Everything on SO5207 shipped, and with Advanced Shipping, fulfilling and billing are separate steps. The order waits in Pending Billing with a Bill button until you invoice it. Saving the fulfillment doesn't create an invoice.