Skip to main content
Version: Current

Item Pricing

Overview

The Item Pricing integration retrieves real-time, customer-specific pricing for items directly from NetSuite. This ensures that sales orders created in Zudello use the most accurate and current pricing available, reflecting all of NetSuite's complex pricing rules.

Direction: 📤 Zudello → NetSuite (Real-time Query)
Type: Real-time sync
API: SuiteQL
Frequency: On-demand

Key Benefits
  • Real-time Accuracy: Fetches live pricing data at the moment of order creation.
  • Complex Logic Support: Respects NetSuite's full pricing hierarchy, including customer-specific prices, price levels, and quantity breaks.
  • Reduced Errors: Eliminates manual price entry and reliance on cached or outdated pricing lists.
  • Dynamic Pricing: Supports dynamic pricing based on order quantity and currency.

NetSuite Pricing Hierarchy

NetSuite determines the final price for an item by evaluating a hierarchy of pricing rules. The integration queries NetSuite in a way that respects this hierarchy, which is typically processed in the following order:

  1. Customer-Specific Price: The price defined for a specific item and a specific customer. This is the highest priority.
  2. Price Group / Price Level Price: The price associated with a price level (e.g., "Wholesale," "Retail") assigned to the customer.
  3. Quantity Pricing: Price breaks based on the quantity of the item being ordered. This can apply to the base price or a specific price level.
  4. Base Price: The standard list price of the item if no other pricing rules apply.

API Request Parameters

To retrieve a price, Zudello sends the following parameters to NetSuite in a SuiteQL query:

ParameterDescriptionData TypeExample
Item IDThe internal ID or SKU of the item.String'ITEM-123'
Customer IDThe internal ID of the customer placing the order.String'CUST-456'
QuantityThe quantity of the item being ordered.Decimal10.0
CurrencyThe currency for the transaction.String'AUD'
DateThe date of the transaction, used for time-sensitive pricing.Date'2023-10-27'

API Response

NetSuite returns the following information, which Zudello uses to populate the sales order line:

FieldDescriptionData Type
priceThe final calculated price per unit.Decimal
currencyThe currency of the returned price.String
priceLevelThe name of the NetSuite price level that was used.String
priceLevelIdThe internal ID of the price level.String

SuiteQL Query Logic

The integration constructs a SuiteQL query that simulates NetSuite's pricing engine logic. The query joins the Item, Customer, and Pricing tables.

Query Steps:

  1. Check for Customer-Specific Price: The query first looks for a price entry matching the specific Item ID and Customer ID.
  2. Check for Price Level: If no customer-specific price is found, it retrieves the customer's assigned Price Level and looks for a price for the item at that level.
  3. Apply Quantity Breaks: The query evaluates quantity-based pricing schedules associated with the determined price level (or base price). It selects the correct price tier based on the requested Quantity.
  4. Fall back to Base Price: If no other rules apply, the item's basePrice is returned.

Error Handling

Error TypeDescriptionResolution
ITEM_NOT_FOUNDThe requested item ID does not exist in NetSuite.Verify the item code is correct and the item is active in NetSuite.
CUSTOMER_NOT_FOUNDThe requested customer ID does not exist.Verify the customer code is correct and the customer is active.
NO_PRICE_FOUNDThe item has no base price and no other pricing rules apply.Ensure the item has a base price configured in NetSuite.
INSUFFICIENT_PERMISSIONThe API user role lacks permission to view items or pricing.Review the permissions for the integration user role in NetSuite.

Troubleshooting

IssuePossible CauseSolution
Incorrect price is returnedPricing hierarchy in NetSuite is misconfigured.Review the customer's price level and any customer-specific pricing for the item.
Base price is always usedCustomer is not assigned a price level.Assign the correct price level to the customer record in NetSuite.
Quantity discounts not applyingQuantity pricing schedule is not set up correctly.Verify the quantity break tiers and prices on the item's pricing subtab.
Query times outThe pricing query is too complex or the dataset is large.Contact Zudello support to review query optimization.