Generated field reference

TL;DR

Every authored field definition in one readable page, generated from config/dictionary/ and never hand-edited.

Do not edit this file. It is generated from the authored definitions in config/dictionary/, which is where a correction belongs. Regenerate it with:

docker exec ocean1-ccc php /var/www/app/jobs/system/showfieldreference.php > docs/reference/generated/generated-fields.md

Basis: the repository's authored definitions, not a live database. It says what CCC documents a column to mean, not which columns exist in any environment. The live join, which shows documented, undocumented and absent columns together, is at /dictionary/fields.

203 definitions across 5 families.

Customers

34 definitions.

ColumnMeaning
accountAccount fingerprint. One of the two matching keys with no exclusion mechanism
accountcountCount of NetSuite entity fingerprints assigned to the customer, not the count of webshop account fingerprints.
addresscombiNormalised address-only key used for exclusions. Matching uses addressnamecombi, which includes surname and company name.
addressnamecombiNormalised address plus surname and company name used for matching; an address with no usable name is not used.
countryCountry retained with the address fingerprint.
createdWhen CCC created the customer row.
customer_idCurrent CCC customer assignment. Resolve mergedinto for a saved id; membership can change after reconciliation.
customerlife_1yWhich life this order belongs to, where a gap over one year starts a new life
customerlife_2yWhich life this order belongs to, where a gap over two years starts a new life
customerlifesequence_1yOrder number within that one year life
customerlifesequence_2yOrder number within that two year life
customerordersequenceOrder number across the customer, ordered by trandate then salesorder_id. After a completed reconcile, 0 means C/H uncounted. New rows also temporarily default to 0 before numbering.
emailNormalised email matching key. Can be excluded through customerexclusions.json.
entityUpstream entity fingerprint. One of four matching keys, and one of the two that cannot be excluded
entitycountDistinct nonzero NetSuite entity ids carrying this email or address key.
excludedThis fingerprint value is ignored for matching. Only email and address carry this column
excludedreasonWhy the value is excluded
firstorderdateEarliest counted transaction date for the current customer grouping.
firstsalesorder_idFirst counted sales order by trandate then id.
idIdentifier of this customer or fingerprint row, according to the table. A fingerprint row id is not the customer id.
lastevaluatedWhen CCC last evaluated the customer row.
lastorderdateLatest counted transaction date for the current customer grouping.
lastsalesorder_idLast counted sales order by trandate then id.
lifecount_1yNumber of one-year lives among the customer's counted orders.
lifecount_2yNumber of two-year lives among the customer's counted orders.
mergedinto0 for a live customer, otherwise the customer id this row was absorbed into. Follow recursively with a cycle guard.
mergedwhenTimestamp when this customer was absorbed; NULL if never merged.
newcustomer1 on the first counted order across the customer, 0 otherwise. Recomputed after grouping, date or status changes.
newlife_1y1 on the first counted order of each one-year life, including the first-ever life. Reactivation also requires customerlife_1y > 1.
newlife_2y1 on the first counted order of each two-year life, including the first-ever life. Reactivation also requires customerlife_2y > 1.
ordercountOn customers: counted orders. On a fingerprint: orders carrying that key, including uncounted orders.
salesorder_idThe order this row numbers
splitfromPrevious customer id recorded when a new customer is created by a split; 0 when there is none. This is lineage, not a redirect.
splitwhenTimestamp when this customer was created from a split; NULL if not split.

Impacts

21 definitions.

ColumnMeaning
account_idAccount the impact books to. Its group decides which part of the margin chain it lands in
amount_eur_invatOn the expected table only: the order total the stored figures were calculated from. The queue clears processed only when this differs, so a rule or cost change does not reach an order already calculated
cm1Contribution margin 1, gp + voc
cm2Contribution margin 2, cm1 + vmc. The figure the platform is named for
cm_calculationrule_idThe rule that booked this impact
cm_transactiontype_idTransaction type of the impact, referencing cm_transactiontypes.id.
cogsSigned cost of goods impacts. gp = revenues + cogs; the engine does not normalise the sign.
gl_accountingperiod_idAccounting period assigned by the calculate job for the impact date, referencing gl_accountingperiods.id.
gpSigned gross profit: revenues + cogs.
idStored impact key formed from rule, transaction and account ids; interpret within the group table.
impactSigned amount booked by a rule against an account in a per-group impact table.
pmThe two ledger columns 81100 + 71100, carried beside the chain rather than derived from it
processedThe recalculation queue. 0 means this order is waiting; setting it back to 0 re-queues one order
revenuesSigned revenue impacts for the order. First term of gp = revenues + cogs.
salesorder_idThe order. cm_impact_salesorders holds exactly one row per order; the per-group tables hold many
trandateTransaction date carried on the impact; the impact screen filters this date.
transaction_idTransaction that produced this impact; interpret together with cm_transactiontype_id.
vmcSigned variable marketing cost impacts. cm2 = cm1 + vmc.
vocSigned variable operational cost impacts. cm1 = gp + voc.
71100Sum for the cost-of-goods GL mapping (internal GL id 218). Included in pm.
81100Sum for the product-sales GL mapping (internal GL id 438). Included in pm.

Transactionheaders

75 definitions.

ColumnMeaning
addresscityCity component of the transaction address.
addresscompanynameCompany name appended after the surname in the named customer matching key.
addresscountryCountry component of the transaction address; included in customer address keys.
addressfirstnameGiven name retained with the address; not included in the named customer matching key.
addresshousenumberHouse number component of the transaction address.
addresshousenumberadditionHouse-number suffix component of the transaction address.
addresslastnameSurname appended to the address when constructing the named customer matching key.
addressline1First address line. It can also contain the house number; customer keys retain both supplied components.
addressline2Second address line.
addressstateState or region component of the transaction address.
addresszipPostal code component of the transaction address.
amount_eur_exvatTransaction amount in euro excluding VAT. Imports retain supplied euro amounts or derive them from the header and tax rows.
amount_eur_invatTransaction amount in euro including VAT. The credit-memo header is negative; do not infer posting-line signs from this header.
amount_foreign_invatAmount in the original currency including VAT, before conversion
costestimate_eurEstimated transaction cost in euro, not a realised cost posting.
costestimate_foreignEstimated transaction cost in the original currency.
createddateLeading creation date used by transaction listing filters. Customer numbering and rule activation use trandate instead.
createddatetimeSame moment with a time. Absent on records imported before it existed, so surfaces fall back to createddate
createdfromUpstream parent transaction reference. Its type depends on this transaction; classification resolves the sales order.
creditmemostatus_idNetSuite credit-memo status code; resolve against its transaction-specific status table.
currency_idCurrency of the foreign amount
daysopenDays open as supplied by NetSuite, rounded to two decimals by the import; not recomputed from the current date in the report.
emailEmail on the imported order or transaction. Customer matching normalises the sales-order value.
entityNetSuite customer record id. This is an identity input, not CCC's computed customer_id.
exchangerateRate used to convert this transaction. Stored per transaction, not per period
externalidExternal identifier carried by the source transaction.
gl_accountingperiod_idImported accounting period reference; use gl_accountingperiods for its dates and label.
gl_subsidiary_idImported legal-entity reference, joined to gl_subsidiaries.id.
idCCC transaction identifier. Interpret it together with the transaction type; historic and modern import paths resolve identifiers differently.
invoicestatus_idNetSuite invoice status code; resolve against its transaction-specific status table.
isengravingSource header engraving flag, imported as 1 for T and 0 otherwise; separate from CCC's line-derived engraving classifications.
isinactiveSource prepayment inactive flag, imported as 1 for T and 0 otherwise.
itemfulfillmentstatus_idNetSuite fulfillment status code; resolve against its transaction-specific status table.
itemreceiptstatus_idNetSuite receipt status code; resolve against its transaction-specific status table.
lastmodifieddateSource header modification date used by import refresh logic.
linelastmodifieddateSource line modification date retained with the imported transaction.
memoSource transaction free text; interpret through the specific classifier if it contributes to a flag.
netsuiteidOriginal NetSuite internal transaction id, retained for upstream lookup.
netsuitenumberNetSuite transaction number displayed to users.
nexusNetSuite nexus identifier retained on the financial transaction.
nexuscountrySource nexus-country value; separate from the delivery address country.
ns_category_idImported NetSuite category reference; separate from the Akeneo product taxonomy.
ns_paazloption_idImported Paazl shipping option reference.
ns_paazloptiontype_idImported Paazl shipping option type reference.
ns_saleschannel_idImported NetSuite channel id. Classification maps it to CCC saleschannel_id through saleschannels.
paymentPaid amount on a prepayment in its currency. Classification computes round(payment * exchangerate, 2) as the euro amount.
paymentmethodNetSuite payment method id. Holds the same id whatever the customer actually paid with, which is why expected margin treats it as Unknown
paymentmethodrawRaw payment-method text resolved by the prepayment classifier against paymentmethods.
paymentnotesSource payment notes.
paymentproviderrefPayment provider reference from the source, not a customer identity key.
paymentreferencePayment reference retained from the source.
paymenttotalamountPayment total supplied on the source transaction; distinct from prepayments.payment.
phonePhone number retained from the source; it is not a customer matching axis.
postingSource posting flag. Its presence on a header does not make all related lines posting lines.
promisedshipdatePromised shipment date used in timing classifications.
refundapprovalreasonSource reason associated with refund approval.
refundblockedSource indication that the refund is blocked.
refunddateSource refund date; classification requires a usable date before treating an unsuccessful refund as failed.
refundresponseResponse retained from the refund process.
refundsuccessSource indication of refund success, used with refunddate to derive refundfailed.
returnactionRequested return action supplied by the source.
returnauthorizationstatus_idNetSuite return-authorization status code; resolve against its transaction-specific status table.
salesorder_idThe sales order this transaction belongs to. The join key for order-level margin
salesorderstatus_idOrder status. C is cancelled and H is closed, and both mean the order did not happen
servicepointcityCity of the Paazl service point selected for delivery.
servicepointcodePaazl service-point code supplied on the order.
servicepointzipPostal code of the Paazl service point.
sourceSource-system transaction-origin value. This is not the resolved marketing source/medium.
statustextSource payment-status text; separate from the transaction-specific status codes.
ticketsrawRaw ticket identifiers supplied on the order; classification parses the hyphen-separated values.
trackingnumberShipment tracking reference retained from the source transaction.
trandateTransaction date. What the customer order sequence and rule activation windows use, not createddate
vatnumberVAT number supplied on the transaction; not a customer matching axis.
warrantyclaimnumberSource warranty-claim reference associated with this transaction.
zerovalueSource zero-value flag, imported as 1 for T and 0 otherwise; distinct from checking whether an amount is numerically zero.

Transactionlines

32 definitions.

ColumnMeaning
accountUpstream gl_accounts.id for this posting line, not the displayed account number. GL rules map it through accounts.gl_account.
amount_eur_exvatLine amount in euro excluding VAT
amount_foreign_exvatLine amount excluding VAT in the original currency.
bundle_amount_eur_exvatBundle-related euro amount retained by the bundle redistribution step.
bundle_manipulatedMarks a line whose amount was redistributed by the bundle-classification step.
bundle_skuBundle SKU associated with the redistributed item line.
costestimate_eurEstimated line cost in euro. Expected fulfillment uses this amount with its sign inverted; it is not the realised cost posting.
costestimate_foreignEstimated line cost in the original currency, not realised cost of goods.
creditmemo_idParent credit memo id in creditmemos.
ctlineidcommercetools line reference retained from the source.
exchangerateExchange rate retained on the source line.
giveawaytransactionSource giveaway line flag, imported as 1 for T and 0 otherwise.
idTransaction-line identifier within this line table.
invoice_idParent invoice id in invoices.
itemfulfillment_idParent fulfillment id in itemfulfillments.
itemreceipt_idParent receipt id in itemreceipts.
linelastmodifieddateSource line modification date.
linesequencenumberSource ordering of lines within a transaction.
locationSource location reference on the line.
memoLine free text. Specific markers are interpreted by classification, such as the combideal marker.
ns_category_idNetSuite category reference on the line, separate from product taxonomy.
ns_item_idNetSuite item reference, joined to ns_items.id. Product enrichment resolves the SKU separately.
postingWhether the line is a posting line. System gl_impact rules require posting = 1.
quantityUnits on this line. A fixed line impact is per matching line, not per unit, so quantity does not multiply it
returnauthorization_idParent return authorization id in returnauthorizations.
salesorder_idThe order this line belongs to. Joining an order to its lines and summing the order total counts it once per line
skuSKU received on the transaction line; resolved through productskus for product enrichment.
transactionlineSource transaction-line identifier used with the parent transaction id to construct the stored line id.
unit_fromprice_invatOriginal unit from-price including VAT as supplied by the source.
unit_toprice_invatUnit selling to-price including VAT as supplied by the source.
warrantyclaimSource warranty-claim line flag, imported as 1 for T and 0 otherwise.
warrantyexpireSource warranty-expiry value retained on the invoice line.

Classifications

41 definitions.

ColumnMeaning
aftikkerContains aftikker yes/no
bundleContains bundle yes/no
bundleitemIs part of a bundle yes/no
bundleproduct_idID of the bundle product
bundlesCount of bundles
cidCommercial ID, regardless of localized SKU
combidealContains combideal yes/no
combidealsCount of combideals
daysafterpromisedDays shipped after promised date
daysaftersalesorderDays shipped after sales order date
discountamountContains discount yes/no
discountcartCarried a webshop cart discount that applied without a code yes/no, a free gift for example
discountcodeCarried a webshop cart discount unlocked by a discount code yes/no. Can be 1 alongside discountcart
discountorderCarried an order level discount from NetSuite yes/no, an amount on the order rather than on a product
doubleorderThe accidental repeat of another order placed the same day by the same customer for the same amount: the member of that group that should not count. The payment decides which member is the real one, and with no payment anywhere the last one is. An order that counts as intake is never marked, so orderintake and doubleorder are never both 1
engravingContains any engraving yes/no
engravingextendedContains extended engraving yes/no
engravingextendedsCount of extended engravings
engravingpotentialContains engravable product yes/no
engravingsimpleContains simple engraving yes/no
engravingsimplesCount of simple engravings
frompriceContains from price yes/no
linesinvonlyCount of inventory lines
linesnoshippingCount of all lines but shipping
mainproduct_idProduct with highest value
mainproductbrand_idBrand with highest value
mainproductcategory_idCategory with highest value
mainproductcategorytoplevel_idTop level category with highest value
multilineMulti line yes/no
newproduct_1mNew product within 1 month yes/no (localized)
newproduct_1wNew product within 1 week yes/no (localized)
newproduct_2mNew product within 2 months yes/no (localized)
newproduct_3mNew product within 3 months yes/no (localized)
newproduct_6mNew product within 6 months yes/no (localized)
orderintakeCounts as order intake yes/no. A sales channel set to paid waits for a payment before its order counts, every other channel counts the order on arrival, and a zero value order counts on arrival everywhere because it never receives one
percentagePercentage of value
privatelabelContains private label yes/no
refundfailedRefund attempted and not successful yes/no. Credit memos only: they are the only type carrying the refund date, so elsewhere a failure cannot be told apart from a refund never attempted
returnpercentagePercentage of returned value
shipper_idID of the mapped shipper
ticketsCount of tickets

Evidence

Generated from config/dictionary/fields/*.json and config/dictionary/transactionclassifications.json by app/jobs/system/showfieldreference.php. Basis: the repository's authored definitions. It reads no database, so it is not evidence that any of these columns exists in any environment. /dictionary/fields is the live join that answers that.

About this document
  • Type
    reference
  • Status
    active
  • Updated
    2026-09-14
  • Created
    2026-09-14