One of the biggest limitations of standard NetSuite CSV imports is partial receiving. If you receive against a purchase order in stages, which almost every warehouse does, the CSV Import Assistant cannot handle it cleanly, so you end up entering receipts manually, line by line, inside NetSuite.
Legacy Excel add-ons try to solve this, but they require downloading separate purchase order sheets, building VLOOKUP formulas, and toggling technical flags like ReplaceAll = FALSE.
NetXcel by Maayins removes that complexity with direct, line-level receiving control straight from your spreadsheet. Below is the complete workflow, including a real purchase order received in two stages, with serial and lot tracking handled inline.
Open the side menu and go to Data Source, then Data Management. Choose your data source, select Item Receipt as the record type, pick your template, and click Add Template (or Update Template) to pull it into the sheet.
Every picklist field loads live from NetSuite, so you can select values from dropdown menus or type and tab without memorizing internal IDs.
1. Pull open purchase orders: query open PO numbers into Excel using NetXcel saved searches or SuiteQL to see the quantities remaining on each line.
2. Enter partial quantities and serial numbers: set Created From to the PO (for example PO449), which auto-fills the header. Enter the partial quantity for each line, attach any serial or lot numbers from the picklist, and put the same External ID on every row you want grouped into one receipt.
3. Upload to NetSuite: click Upload in the NetXcel side panel. NetXcel creates the Item Receipt in NetSuite immediately, links it to the original PO, and returns the new Item Receipt internal ID back to your sheet.
Here is a typical partial receipt where only part of a purchase order has arrived. PO449 mixes control types that standard CSV imports usually cannot handle in one pass, and it is received across two separate item receipts.
| PO449 Line | Control Type | Ordered Qty | Stage 1 Receipt | Stage 2 Receipt |
|---|---|---|---|---|
| S1_SERVICE | Service (no inventory detail) | 1 | 1 | N/A |
| SERIAL_TST_01 (Serial Test 01) | Lot / Serial controlled | 3 | 1 (SN00001) | 2 (SN00002, SN00003) |
| SATB_5OZ | Standard inventory | 1 | 0 | 1 |
Stage 1 covers three different control types where CSV imports typically fail: a service item (S1) that needs only quantity and location, a bin-controlled item that needs only a bin assignment, and the lot and serial item Serial Test 01, where you assign serial SN00001 with a quantity of 1 for a deliberate partial receipt.
Fill in the same External ID across every row to group them into one receipt, then click Upload. Within seconds the status turns green and internal IDs populate in the sheet. Refreshing PO449 in NetSuite moves the status from Pending Receipt to Pending Billing, Partially Received, and opening the new item receipt confirms every detail matches.
For the rest of the order, clear the sheet, redownload the template, and enter the PO number and date. This time the remaining serial units are split across separate rows for full line-level flexibility:
SN00002 on the first row.SATB 5 oz on the second row.SN00003 for Serial Test 01 on the third row.Copy the External ID down across all rows and click upload. PO449 is now fully Pending Billing, and the new item receipt confirms both SN00002 and SN00003 were logged accurately on separate lines.
Open NetSuite and check purchase order PO449. The status updates automatically to Pending Billing, Partially Received after Stage 1 and to Pending Billing after Stage 2, with received quantities and serial numbers logged accurately on the transaction record.
| Feature / Capability | Standard NetSuite CSV | Legacy Excel Add-ons | NetXcel by Maayins |
|---|---|---|---|
| Partial Receiving | All-or-nothing limitation | Manual formula mapping required | Built-in PO reference auto-fill |
| PO Header Population | Manual entry | Manual lookup formulas | Automatic upon entering PO ID |
| Multi-Line Serial/Lot Tracking | Complex or unsupported | Multiple tab setups | Directly inline per row |
| Live NetSuite Picklists | None (requires internal IDs) | Static / periodic refresh | Dynamic live picklist dropdowns |
NetXcel lets warehouse and finance teams sync inventory status, track remaining line items, and update multi-stage receipts seamlessly from a single spreadsheet interface, with no manual CSV formatting. For any team that receives POs in stages, it turns a manual, time-consuming task into a simple spreadsheet upload.
NetXcel is a multi-platform spreadsheet connector for Excel and Google Sheets developed by Maayins Technologies LLC. It is available on Microsoft AppSource and the Google Workspace Marketplace. NetSuite is a registered trademark of Oracle; NetXcel is an independent solution and is not affiliated with or endorsed by Oracle.