Off-Invoice Discounts
Configure how discount items added outside the 850 flow generate SAC data on outbound 810 invoices.
Overview
When a discount item is added to a NetSuite invoice through the standard 850 inbound flow, the Orderful SuiteApp automatically links it to an Orderful Authorized Discount record and uses that record's SAC code on the outbound 810.
But discounts are often added to invoices outside the 850 flow — manually, via SuiteScript, CSV import, or workflow. These "off-invoice" discounts have no link to an Authorized Discount record, and without additional configuration, the SuiteApp resolves the SAC code using a fallback chain.
This page explains how the SuiteApp resolves SAC codes for discount items and how to configure fallbacks so every discount produces accurate SAC data on the outbound 810.
SAC Code Resolution Chain
For every discount line on an invoice, the SuiteApp evaluates the following tiers in order. It stops at the first tier that produces a result.
| Tier | Source | When It's Used |
|---|---|---|
| 1 | Linked Authorized Discount record | The discount line has a direct reference to an Authorized Discount record, set automatically during 850 processing. |
| 2 | Customer-specific Authorized Discount | No direct link exists, but an Authorized Discount record is configured for this discount item and this specific customer. |
| 3 | Non-customer-restricted Authorized Discount | No customer-specific match, but an Authorized Discount record exists for this discount item with no customer restriction (applies globally). |
| 4 | Default: C310 (Discount) | No Authorized Discount record matches. The SuiteApp uses C310 (Discount) as the default SAC code. |
How Tiers 2 and 3 Work
When discount lines exist without a linked Authorized Discount record, the SuiteApp runs a single query against the Authorized Discount table to find matches by item. If a match is found for the specific customer (Tier 2), that takes priority. If only a non-customer-restricted match exists (Tier 3), that is used instead.
This means you can create Authorized Discount records that apply to a discount item globally (leave the Customer field blank) or for specific customers. You don't need to manually link them on every transaction — the SuiteApp finds them automatically.
Default Fallback (Tier 4)
If no Authorized Discount record is found through any tier, the SuiteApp defaults to SAC code C310 (Discount). This ensures every discount line on an invoice produces a SAC entry, even without any configuration.
If you need a different SAC code for a specific discount item, create an Authorized Discount record (Tier 2 or 3) to override the default.
Consolidate Discount SAC
By default, each discount line on an invoice produces its own SAC entry on the outbound 810 — even if multiple lines share the same SAC code. Some trading partners expect a single consolidated SAC entry per code with the total amount.
The Consolidate Discount SAC checkbox (custrecord_edi_enab_trans_cons_sac) is located on the customer record under EDI > Order Management Config.
| Setting | Behavior |
|---|---|
| Unchecked (default) | Each discount line produces a separate SAC entry |
| Checked | Discount SAC entries with the same SAC code and indicator (Allowance or Charge) are grouped into a single entry with summed amounts |
Consolidation only affects discount SAC entries. Shipping charges are unaffected.
Allowances and charges are never netted against each other, even with consolidation enabled. Two discount lines with the same SAC code but different indicators (one Allowance, one Charge) produce two separate SAC entries.
Configuration Examples
Example 1: No configuration needed (Tier 4 default)
You have a discount item called "Trade Allowance" added manually to invoices. Without any setup, the outbound 810 generates a SAC entry using C310 (Discount) as the SAC code.
Example 2: Customer-specific Authorized Discount (Tier 2)
Customer A requires SAC code C310 for your "Trade Allowance" item, but Customer B requires G740. Create two Authorized Discount records:
- Customer: Customer A, Item: Trade Allowance, Code: C310
- Customer: Customer B, Item: Trade Allowance, Code: G740
The SuiteApp automatically selects the correct code based on the invoice's customer.
Example 3: Global Authorized Discount (Tier 3)
You want all customers to use SAC code C300 for your "Volume Discount" item unless overridden. Create one Authorized Discount record with the Customer field left blank, Item: Volume Discount, Code: C300. This applies to all customers. If a specific customer needs a different code, create a customer-specific record (Tier 2) — it takes priority.
Troubleshooting
| Issue | Possible Cause | Resolution |
|---|---|---|
| Wrong SAC code on 810 | A higher-priority tier is resolving before your expected one | Check for linked Authorized Discount records on the transaction (Tier 1) or customer-specific records (Tier 2) that may be overriding |
| All discounts showing C310 | No Authorized Discount records are configured for this item/customer | Create an Authorized Discount record with the correct SAC code for the item, either customer-specific (Tier 2) or global (Tier 3) |
| Discount SAC entries not consolidating | The Consolidate Discount SAC checkbox is unchecked, or the entries have different indicator codes | Enable the Consolidate Discount SAC checkbox (custrecord_edi_enab_trans_cons_sac) on the customer record under EDI > Order Management Config. Allowance and Charge entries are never consolidated together |
Updated about 5 hours ago
