Skip to main content
Version: Current

Sales Orders

Overview

The Sales Orders integration creates sales order records in NetSuite from Zudello sales order data.

Direction: 📤 Zudello → NetSuite
Type: Real-time sync
API: NetSuite SOAP API
Frequency: On-demand processing

Key Benefits
  • Real-time sales order creation
  • Automatic tax handling with gross amount support
  • Custom field mapping capabilities
  • Support for item lines with inventory commitment
  • Links to customers, projects, and other dimensions

Header Field Mappings

The following fields are mapped from Zudello to NetSuite sales order headers:

Zudello FieldNetSuite FieldDescription
SalesOrderNumbertranIdTransaction reference number
CustomerCodeentityCustomer reference
OrderDatetranDateTransaction date
DueDatedueDateExpected ship date
CurrencycurrencyTransaction currency
MemomemoTransaction memo/description
LocationlocationLocation reference
DepartmentdepartmentDepartment reference
ClassclassClass reference
SubsidiarysubsidiarySubsidiary reference
TermstermsPayment terms reference
OrderStatusorderStatusSales order status (e.g., Pending Fulfillment)

Line Processing

Item Lines

Item-based sales order lines are created with the following mappings:

Zudello FieldNetSuite FieldDescription
ItemCodeitemItem reference
DescriptiondescriptionLine description
QuantityquantityItem quantity
RaterateUnit price
Amountamount/grossAmtLine amount (based on tax config)
LocationlocationLine-level location
DepartmentdepartmentLine-level department
ClassclassLine-level class
TaxCodetaxCodeTax code reference
CommitInventorycommitInventoryInventory commitment level
IsClosedisClosedFlag to close the line

API Configuration

SOAP API Method

The integration uses the add operation with the following configuration:

  • Record Type: SalesOrder
  • Operation: add
  • Response Handling: Captures internal ID on success

Authentication

Uses token-based authentication with:

  • Account ID
  • Consumer Key
  • Consumer Secret
  • Token ID
  • Token Secret

Special Processing

Tax Handling

The integration supports two tax handling modes:

  1. Tax Exclusive (Default): Uses amount field for line amounts
  2. Tax Inclusive: Uses grossAmt field when tax codes are marked as inclusive

Custom Fields

Custom fields are mapped using the following structure:

  • Script ID mapping from Zudello to NetSuite
  • Support for all custom field data types
  • Array-based field collection

Inventory Commitment

The commitInventory field controls how inventory is allocated for the order line. Common values include:

  • AvailableQty
  • CompleteQty
  • DoNotCommit

Processing Logic

Sales Order Creation Flow

  1. Header Preparation

    • Map standard fields
    • Add custom fields
    • Set order status
  2. Line Processing

    • Apply tax handling rules
    • Set inventory commitment level
    • Add custom line fields
  3. API Submission

    • Submit via SOAP API
    • Capture response
    • Store internal ID

Amount Calculations

  • Tax Exclusive: Line amounts exclude tax
  • Tax Inclusive: Line amounts include tax (using grossAmt)
  • Multi-currency: Amounts in transaction currency

Error Handling

Common Errors

Error TypeDescriptionResolution
INVALID_REFInvalid customer or item referenceVerify customer/item exists in NetSuite
INVALID_FLDInvalid field valueCheck field mappings and data types
INSUFFICIENT_PERMISSIONUser lacks permissionReview user role permissions
UNIQUE_TRAN_ID_IN_PERIODDuplicate transaction IDCheck for existing sales orders with the same ID
INSUFFICIENT_INVENTORYNot enough inventory to commitCheck inventory levels in NetSuite
INVALID_ACCTInvalid accountVerify account is active (for non-inventory items)

Retry Logic

  • Automatic retry for transient errors
  • Maximum 3 retry attempts
  • Exponential backoff strategy

Troubleshooting

IssuePossible CauseSolution
Order not createdAuthentication failureVerify API credentials
Missing customerCustomer not synced or invalidEnsure customer exists in NetSuite
Tax calculation errorsIncorrect tax setupReview tax code configuration
Custom fields not mappingScript ID mismatchVerify custom field script IDs
Inventory not committedIncorrect commitInventory valueCheck inventory commitment settings