Bulk Fulfill Sales Orders from a CSV File in NetSuite

Use Import - CSV on the Fulfill Orders page to create item fulfillments for a list of sales orders in one background process, then check the orders moved to Pending Billing.

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.

Three orders are waiting to ship.

Click SO5207's date, 09/24/2026, to open it. It's Pending Fulfillment, its Total is 508.00, and it still offers Fulfill.

SO5207 is Pending Fulfillment.

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.

Nothing on SO5207 has been fulfilled yet.

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.

The file lists SO5207 and SO5211. SO5214 is left out.

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.

Import - CSV opens the bulk fulfillment import.

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.

One set of values for every order in the file.

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.

Every fulfillment in the file gets this memo.

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.

The submission is queued.

Click Refresh. Submission 7412 reads Complete, 100.0%, with the message 0 Errors.

Complete with 0 Errors: both orders were fulfilled.

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.

SO5207 moved to Pending Billing.

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.

The import created IF3318.

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.

IF3318 carries the memo and ships both lines in full.

Check the result

  1. Process Status shows the submission Complete, and its Message reports no errors.
  2. 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.
  3. The fulfillment has the status, date, period, location and memo you set on the Import CSV page.
  4. 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.

Only SO5214, which wasn't in the file, is still waiting.

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.