What is the limit of line items on a Purchase Order?
I have a project that is going to require very large quantities of individual items on purchase orders. Does anyone know the limit of items a single PO can contain?
Out of curiosity, I tried this from a dev console to see how many I could add and I found that using the following code:
var rec = record.create({type: record.Type.PURCHASE_ORDER})rec.setValue({ fieldId: 'entity', value: 24})rec.setValue({ fieldId: 'trandate', value: new Date()})for(var i = 0; i < 200; i++){rec.setSublistValue({sublistId: 'item',line: i,fieldId: 'item',value: 9931});rec.setSublistValue({sublistId: 'item',line: i,fieldId: 'cost',value: 1});}rec.save();
I successfully made 200 and 400 line item orders, but 600 never popped out the order. Now this is from the console, so it might be different in a script, but at least that might give you a ball park.
FYI, the time difference between 200 and 400 was a few minutes, and the page loads for bringing the purchase orders up wasn’t pretty.

Scratch that 600 did save; it just took a solid 20 minutes. To be honest, I’m not going to sit around waiting for 800 or 1000, but feel free to try it yourself just replacing the item id and the integer in the for loop for testing.
Thank you sir! We actually have a script that will be creating the massive orders… from another source. So a wait time for big ones won’t be an issue!
I almost forgot…. THANK YOU!!!!
Transaction Line Items Maximum Recommended Limits
Applies To Product: NetSuite 2019.1
Scenario
-
- Transactions submitted through the user interface: 500 lines per transaction
-
- Transactions submitted through the script: 500 lines per transaction
-
- Transactions submitted CSV import or web services: 1000 lines per transaction
-
- Journal Entries submitted through the user interface or web services: 1000 lines
-
- Journal Entries submitted through CSV Import: 10,000 lines
These recommended limits assume that there is very limited to no line validation scripting on the records. In most cases, transactions with less lines will result in performance issues when scripting is used in line validations.
You may refer to Entering Transaction Line Items for more information.
That said – I would *STRONGLY* advise limiting yourself to 200 lines or less on a purchase order unless they will also be received via webservices. The user experience would be abysmal. I run out of patience waiting for things to load when there are more than 100-150 lines.
I’d keep them under 150. So far I have seen 3 different NetSuite environments, different companies where NetSuite starts to act funny after 150 line items at the Sales Order level and Purchase Order as well.
This SuiteAnswers topic describes the limits:
“The limit for transactions submitted through the user interface is 500 lines. For transactions submitted through CSV import or SOAP web services, the limit is 5,000 lines per transaction. Once you submit transactions exceeding the 500 lines limit through the CSV import or SOAP web services, you must do all additional changes and edits through the CSV import or SOAP web services. For journal entries, these limits are 1,000 lines for the user interface and for synchronous SOAP web services, and 10,000 lines for CSV import and asynchronous SOAP web services.”
I believe that the limits for client scripts are the same as for the UI, and for server scripts the limits are similar for CSV and SOAP. But I do not confirm this information, because depends on the environment and the scripts implemented in the transaction you want to work on; It is always important to know which scripts are implemented and what they do.