Skip to content
On this page

ERP integration

NetSuite

The Carton Pack Pro installer and the steps to set Carton Pack Pro up in your NetSuite account. Included with Pro, Business and Enterprise.

Prerequisites

  • Access to a NetSuite Administrator account
  • A Carton Pack Pro organization on Pro, Business or Enterprise, where you are an Owner or Administrator, with at least one active carton under Catalog → Cartons
  • To fill the Pack cheapest rate and Pack cheapest service fields with an estimate by postal code: an API key, a Ship-from postal code and a Country set under Configuration → Integrations → ShipStation API in Carton Pack Pro
  • To fill them with the rate to the Ship To address instead: also the ShipStation warehouse ID (7a) and the ShipStation API secret (8c). The fields keep the estimate when ShipStation API cannot rate the Ship To address. A sales order that Auto pack new orders fills also keeps the estimate. Pack and ship replaces it on that order’s fulfillment
  • To buy shipping labels: a ShipStation API account
  • To buy shipping labels: a ship method without NetSuite’s own UPS, FedEx or USPS integration, created under Lists → Accounting → Shipping Items → New
  • To buy shipping labels: a Static Employee group holding every employee who buys labels, created under Lists → Relationships → Groups → New

Step 1: Enable features

Navigate to: Setup → Company → Enable Features

SuiteCloud subtab

  1. Check these three boxes: Client SuiteScript, Server SuiteScript, SuiteCloud Development Framework. The installer deploys Carton Pack Pro with SuiteCloud Development Framework

Transactions subtab

Decide first: skip steps 2 and 3 if you will not use Save and pick, Pick or shipping labels. The two features below change how every sales order in the account is fulfilled.

  1. Check Advanced Shipping
  2. Check Pick, Pack and Ship

Finish

  1. Click Save

Step 2: Add the installer

2a: Upload the installer

Navigate to: Documents → Files → File Cabinet

  1. Open SuiteScripts
  2. Click New Folder
  3. Folder Name:
  4. Click Save
  5. Open CartonPackPro
  6. Click Add File and choose cpp_sl_install.js

2b: Create the script record

Navigate to: Customization → Scripting → Scripts → New

  1. Script File: cpp_sl_install.js
  2. Click Create Script Record

Main settings

  1. Name:
  2. ID:

Finish

  1. Click Save and Deploy

2c: Deploy it

Main settings

  1. Title:
  2. ID:
  3. Status: Released

Audience subtab

  1. Internal Roles: Administrator

Finish

  1. Click Save

Step 3: Install Carton Pack Pro

Decide first: if your items already have length, width and height fields, clear Create Length, Width, Height and Dimension Unit item fields first. You’ll map your own fields in Step 5.

Navigate to: Customization → Scripting → Script Deployments → Carton Pack Pro installer → URL

Carton Pack Pro installer

  1. Read the Changes list, NetSuite’s dry run of the install
  2. Click the Install button. Installed shows its release when it finishes

Afterward: do each step the page lists under Afterward:.

Step 4: Mark the items to pack

Navigate to: Lists → Accounting → Items

Repeat the steps below for each item that should be packed.

Items list

  1. On the item’s row, click Edit

Primary Information

  1. To buy shipping labels, set UPC Code to the item’s barcode number, where it has one

Sales / Pricing subtab

  1. Set Item Weight and its unit

Purchasing / Inventory or Custom subtab, whichever shows the fields

  1. Check Pack eligible
  2. Set Length, Width, Height and Dimension Unit. If you cleared the dimension fields box in Step 3, set your own dimension fields
  3. Check Stackable when other items can go on top of this one
  4. If the item nests, stack two units, measure their height, and set Nest increment to that height minus the item’s Height, in its Dimension Unit

Finish

  1. Click Save

Step 5: Map your own dimension fields

Decide first: skip this unless you cleared the dimension fields box in Step 3.

Navigate to: Customization → Lists, Records, & Fields → Record Types

Record Types list

  1. On the Carton Pack Pro Mapping row, click List
  2. On the DEFAULT row, click Edit

Main settings

  1. Set Length source, Width source, Height source and Dimension unit source to the IDs of your own item fields

Unit sources: Fill Dimension unit source if you fill Length, Width and Height source. Fill Weight unit source if you fill Weight source. Otherwise lines with those values are not packed.

Finish

  1. Click Save

Step 6: Create the labels folder

Decide first: skip this if you will not buy shipping labels.

Navigate to: Documents → Files → File Cabinet

  1. Click New Folder
  2. Folder Name:
  3. Restrict by Group: the group of every employee who buys labels, since the label PDFs hold the ship-to name, address and phone
  4. Click Save

Step 7: Set the warehouse and Auto pack

7a: Get the ShipStation warehouse ID

Decide first: skip this if you will not buy shipping labels and want Pack cheapest rate to stay an estimate by postal code.

Replace YOUR_SHIPSTATION_API_KEY with your ShipStation API key and run this. Use the warehouse_id of the warehouse whose postal code matches Ship-from postal code under Configuration → Integrations → ShipStation API in Carton Pack Pro. Then labels and the plan’s rates are priced from the same place.

curl -s https://api.shipengine.com/v1/warehouses \
  -H "API-Key: YOUR_SHIPSTATION_API_KEY"

If none has that postal code, create one: replace each value in capitals with the address and phone you ship from. The response includes its warehouse_id.

curl -s https://api.shipengine.com/v1/warehouses \
  -H "API-Key: YOUR_SHIPSTATION_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "Main warehouse", "origin_address": {
    "name": "YOUR CONTACT", "company_name": "YOUR COMPANY", "phone": "YOUR PHONE",
    "address_line1": "YOUR STREET", "city_locality": "YOUR CITY",
    "state_province": "YOUR STATE", "postal_code": "YOUR ZIP", "country_code": "US"}}'

7b: Set the preferences

Navigate to: Setup → Company → General Preferences

Custom Preferences subtab

  1. ShipStation warehouse ID: the warehouse_id from 7a. Skip it if you skipped 7a
  2. Auto pack new orders: Checked: packs each new order on save. Cleared: Pick this order button only

Finish

  1. Click Save

Step 8: Create the API secrets

8a: Create a Carton Pack Pro API key

Navigate to: Configuration → API keys, in Carton Pack Pro

New key

  1. Name:
  2. Scopes: check read and write

Finish

  1. Click Create key
  2. Copy the cpp_live_… key it shows

8b: Create the Carton Pack Pro API secret

Navigate to: Setup → Company → Preferences → API Secrets → Create New

Details tab

  1. Name:
  2. ID:
  3. Password: the key you copied
  4. Confirm Password: the same

Restrictions tab

  1. Clear Allow For All Scripts
  2. Restrict to Scripts:
  3. Clear Allow For All Domains
  4. Restrict to Domains:

Finish

  1. Click Save

8c: Create the ShipStation API secret

Decide first: skip this if you will not buy shipping labels and want Pack cheapest rate to stay an estimate by postal code.

Navigate to: Setup → Company → Preferences → API Secrets → Create New

Details tab

  1. Name:
  2. ID:
  3. Password: a key from the same ShipStation API account as the API key under Configuration → Integrations → ShipStation API in Carton Pack Pro, so labels and the plan’s rates use the same carrier accounts
  4. Confirm Password: the same

Restrictions tab

  1. Clear Allow For All Scripts
  2. Restrict to Scripts:
  3. Clear Allow For All Domains
  4. Restrict to Domains:

Finish

  1. Click Save

Step 9: Set the role permissions

Navigate to: Setup → Users/Roles → Manage Roles

Repeat the steps below for each role that packs orders or buys labels. If you checked Auto pack new orders in 7b, also repeat them for each role that creates sales orders. Skip Administrator.

Manage Roles list

  1. On the role’s row, click Edit. A standard role shows Customize instead: click it, then set Name for the new role

Permissions tab → Transactions subtab

  1. Set these levels. Add a line for any permission the role lacks:
  • Sales Order: Edit. A role with View can preview but not save
  • Item Fulfillment: Create or higher, for Save and pick and Pick. Edit or Full for Pack and ship and Mark shipped

Permissions tab → Lists subtab

  1. Set these levels. Add a line for any permission the role lacks:
  • Items: View
  • Custom Record Entries: View, for the mapping record
  • Documents and Files: Full, so Void labels can delete a voided label’s PDF. Only a role that buys labels needs it

Finish

  1. Click Save

Afterward: give each role you customized to its employees under Lists → Employees → Employees → Edit → Access tab → Roles subtab.

Update Carton Pack Pro

Navigate to: Customization → Scripting → Script Deployments → Carton Pack Pro installer → URL

Carton Pack Pro installer

  1. Read the Changes list, NetSuite’s dry run of the update
  2. Click the Update to button

Afterward: do each step the page lists under Afterward:.

Check your work

Use a ShipStation API sandbox key

Decide first: skip this if you will not buy shipping labels.

Navigate to: Setup → Company → Preferences → API Secrets

API Secrets list

  1. Click ShipStation API key

Details tab

  1. Password: a ShipStation API sandbox key, which starts with TEST_. Its test labels are free
  2. Confirm Password: the same

Finish

  1. Click Update

Use a sandbox warehouse

Decide first: skip this if you will not buy shipping labels.

Navigate to: Setup → Company → General Preferences

Custom Preferences subtab

  1. ShipStation warehouse ID: a warehouse_id the 7a command lists when you run it with the sandbox key

Finish

  1. Click Save

Pack and ship a test order

Decide first: if you skipped Advanced Shipping in Step 1, click Save plan at step 3 instead. The dialog closes and the sales order shows the Pack fields. Stop there. If you will not buy shipping labels, stop after step 3.

Test items: in a sandbox or demo account, import kitchen-items.csv, kitchen-items-lot.csv and kitchen-items-serial.csv under Setup → Import/Export → Import CSV Records. Set Import Type to Items and Record Type to Inventory Item, Lot Numbered Inventory Item or Serialized Inventory Item, one per file. On Field Mapping, add Tax Schedule and give it a default value. Add their stock with an inventory adjustment. In each lot item’s Inventory Detail, add two lots, such as LOT-DEMO-A and LOT-DEMO-B. In each serial item’s, add one serial per unit, such as BES500-DEMO-01 to BES500-DEMO-05.

Sales order

  1. Open a test sales order with Status Pending Fulfillment and a shipping address, in View mode. To buy shipping labels, use an order whose Ship Via is the ship method from Prerequisites
  2. Click Pick this order. The dialog lists the order’s lines under Items, with a preview beside them
  3. Click Save and pick. The Item Fulfillment opens with Status Picked and the Pack fields filled in

Lot and serial numbered items: Save and pick can’t pick them yet. Fulfill those orders in NetSuite with Status Picked, then click Pack and ship.

Item Fulfillment

  1. Click Pack and ship

Pack and ship dialog

  1. Click Print carton labels. The carton labels open as one PDF in a new tab, each carton’s label followed by its pack sheet. The pack sheet lists what goes in the carton, with its lot and serial numbers
Carton 1 of 2C21964-1Pack sheetCarton 1 of 2QTYITEM20Lot LOT-A × 17Lot LOT-B × 32Serial IO9-01Serial IO9-021Serial BES-02Carton 1 of 2C21964-1Pack sheetCarton 1 of 2QTYITEM20Lot LOT-A × 17Lot LOT-B × 32Serial IO9-01Serial IO9-021Serial BES-02
  1. Under Scan to verify, scan carton 1’s label, or type the code under its barcode, such as C21964-1, and press Enter. Carton 1 is highlighted
  2. Scan each unit into the highlighted carton, or type its UPC Code or Name/Number and press Enter. One scan counts a whole nest: on a row reading 6 × 20 nested, each scan counts 20
  3. For a lot or serial numbered item, scan or type the lot or serial number next, as the pack sheet lists it. For a number with no barcode, click I see that it matches on its row
  4. For an item with no UPC Code, click + on its row
  5. Repeat steps 6 to 9 for each other carton, starting with its label
  6. Click a carton’s Box weight
  7. Type a new weight, then press Enter
  8. Click Buy labels · $…. Each carton shows a tracking number, masked in the sandbox, such as 1ZXXXXXXXXXXXXXXXX
SHIP FROMSHIP TO1234 5678 9012 3456SHIP FROMSHIP TO1234 5678 9012 3456

Shipping labels dialog

  1. Click Print all labels. The labels open as one PDF in a new tab
  2. Click Mark shipped. The dialog header shows Shipped
  3. Click Close. The fulfillment shows Status Shipped, and Pack carton contents lists each carton’s items, lots and serials

Afterward: click Edit on the test fulfillment, then Actions → Delete. If you buy shipping labels, also: delete the PDFs whose names start with its number from the Carton Pack Pro labels folder. Then repeat the two sandbox sub-steps above with your production ShipStation API key and its warehouse ID.

NetSuite cartonization integration · Carton Pack Pro