Shipping is where a clean NetSuite implementation usually starts to leak. Native carrier integration covers a limited set of accounts and label scenarios, so the moment you add a regional carrier, a second FedEx or UPS account for a different Location, an LTL lane, or international shipments that need a commercial invoice, your warehouse ends up in carrier web portals. Addresses are re-keyed, tracking numbers are pasted back onto Item Fulfillments by hand, service selection becomes whatever the packer picked last time, and nobody can answer why the carrier invoice does not match what the order was quoted.
That gap is expensive in two directions at once. Operationally it costs seconds per parcel that scale into hours per day. Financially it costs the difference between the cheapest compliant service and the habitual one, multiplied by every shipment nobody rate-shopped.
What ECOSIRE builds
This is a build-to-order engagement. We build a shipping hub as NetSuite customisations inside your own account - SuiteScript 2.1, custom records, SuiteFlow and Advanced PDF/HTML templates - wired to the carrier accounts you already hold. There is nothing to download and no trial, because the build is shaped by which carriers you use, which Locations ship, and what your packing stations look like.
Carrier accounts and credentials
Every carrier account becomes a record: account number, meter or shipper number, negotiated-rate flag, origin Location, enabled services, and the API credentials themselves stored in NetSuite credential fields and consumed at runtime through N/https.createSecureString. Credentials never sit in script parameters, in the File Cabinet or in a custom field a support user can read. Multiple accounts per carrier are normal - a west-coast account and an east-coast account, or a brand-specific account - and each is bound to the Locations allowed to use it.
Rate shopping
A Suitelet callable from the Sales Order or the Item Fulfillment queries every enabled carrier account and returns service, transit days and quoted cost side by side. Selection is not left to instinct: a rule engine on a custom record evaluates free-shipping service maps, customer-specific service overrides, per-Location cutoff times, must-arrive-by dates and a configurable weighting of cost against transit time, then stamps the chosen carrier, service and quoted cost onto the transaction in custom body fields. The same rules can run headlessly on a Map/Reduce for batch waves, so a picker never waits on an API call.
Cartonisation and packing
Box selection uses length, width, height and weight custom fields on the Item record against a box catalogue custom record, producing one line per carton written to the Item Fulfillment package sublists - package, packagefedex, packageups or packageusps as appropriate to the carrier. Dimensional weight is calculated before rating so the quoted cost reflects what the carrier will actually bill. Where your warehouse packs by hand, the packing station Suitelet lets an operator confirm or override the suggested cartons and reprint.
Labels
Labels are generated as ZPL streamed to network label printers, or as PDF filed in the File Cabinet and attached to the Item Fulfillment record. Both paths are available from the same packing Suitelet, along with reprint, void and return-label generation. Void reverses the carrier shipment, clears the tracking on the package sublist and writes an audit row to a custom record, so a cancelled shipment does not leave a phantom tracking number on a customer notification.
International and freight documentation
Commercial invoices, packing lists and certificates of origin are produced from Advanced PDF/HTML templates. Harmonized codes and country of origin come from an Item custom field or a Custom Segment so classification is maintained once and reused everywhere. Incoterms sit on a transaction body field, and electronic export filing references are captured where required. For LTL and freight lanes the hub generates a bill of lading, handles pallet counts, freight class and NMFC fields, and supports third-party and collect billing arrangements.
Tracking and reconciliation
Tracking numbers are written to the package sublist and to transaction body fields as shipments are created. A Scheduled Script polls carrier tracking endpoints and stamps delivery status and delivery date, which drives customer notification emails from N/email and gives customer service a Saved Search of shipments in transit past their expected date instead of a stack of portal tabs. Finally, carrier invoice detail is imported into a custom record and compared line by line against quoted cost, producing a Saved Search of variances by carrier, service and Location - the report that turns address corrections, dimensional-weight adjustments and residential surcharges from invisible leakage into a monthly action list.
Fitting your account, not a template
Address validation and residential classification run against the carrier API on the Customer address book through a User Event script with a Client Script prompt, so bad addresses are caught at order entry rather than at the label printer. In OneWorld, carrier accounts, origin addresses and document templates are scoped by Subsidiary. Roles and permissions are configured so a packing-station user can rate, label and void without holding setup or script permissions, and so finance can see the reconciliation searches without touching the warehouse screens.
Who this is for
Brands and distributors shipping parcel and freight from more than one Location. Teams holding several carrier accounts whose packers currently choose services by habit. Companies shipping internationally who produce customs paperwork outside NetSuite. Finance teams who suspect the gap between quoted and billed freight is material but have no report that proves it.
How delivery works
1. Scoping call. Tell us which carriers and accounts you hold, which Locations ship, whether you run LTL, whether you ship internationally, and what your packing stations and label printers look like. 2. Fixed quote. You get a written scope naming every carrier integration, every document template and every rule set, with a fixed price and a delivery window. Nothing is built before you approve it. 3. Build. Development runs against carrier test or sandbox credentials with your item dimensions and address data shape. Typical lead time is two to four weeks depending on carrier count and whether international documentation and LTL are in scope. 4. Install in sandbox. Delivered to your NetSuite sandbox as an SDF project and unmanaged bundle. Your packers run real orders end to end, print real test labels and confirm the printer path before anything reaches production. 5. Production. After sign-off we install into production, switch to live carrier credentials, configure deployments and schedules, and stand alongside your team for the first live wave. 6. Support. A post-go-live support window agreed in the quote, then a written change-request route for adding carriers, services or Locations later.
What this is not
We do not resell shipping, negotiate your rates or hold your carrier contracts - you bring your own accounts and API credentials, and the rates you see are the rates your account is entitled to. Some carriers require the label output to be certified before they issue production credentials; we support that submission, but the carrier controls the timeline. And there is no instant download: every hub is built for the carrier mix in your quote.