Glossary
Audience: developers & AI agents · Scope: the Beta-Calco / ConfigBox terms and acronyms used across the docs · Last reviewed: 2026-07-20
The docs lean on a lot of shorthand. This is the quick reference — skim it once, refer back as needed. Terms link to the doc that covers them in depth.
Platform & codebase
- ConfigBox (CB) — the third-party product-configurator component (
com_configbox) the whole site is built on. Provides products, options, pricing, cart/quotes, and the admin backend. See configbox/architecture.md. - Kenedo — the MVC framework ConfigBox itself is built on (
external/kenedo/). ProvidesKenedoController/KenedoModel/KenedoView,KenedoDatabase,KenedoPlatform, routing, etc. Portable across Joomla / WordPress / standalone. - Joomla — the CMS host (version 5). ConfigBox runs as a Joomla component.
- Customization overlay /
data/customization/— where all of Beta-Calco's own code lives. The single rule that prevents breakage: only edit here; everything else is third-party and overwritten on update. - Core / third-party — Joomla, Kenedo, ConfigBox core, and vendored libs. Read them to understand behaviour; never modify them. Change core behaviour via an override mechanism.
- Override mechanisms — the sanctioned ways to change core behaviour from the overlay:
system_overrides/(classes),language_overrides/(strings),model_property_customization/+properties/(model fields & custom field types),rule_condition_types/. See architecture.md. Bc/bcprefix — marks Beta-Calco custom code (e.g.BcQuote,bcquotelandingpage) vs. core ConfigBox (Configbox…) and framework (K…/Kenedo…).- Migration — a numbered, idempotent PHP script under
data/customization/updates/(e.g.0.5.69.php) that changes the DB schema/data, run automatically on the next request. Never hand-edit the schema. See migrations.md. KenedoDatabase/KenedoPlatform::getDb()— the DB wrapper used everywhere (not Joomla's driver). Uses#__as the table-prefix placeholder; hassetQuery/loadResult/loadObject/insertObject, noquote()or transactions. See migrations.md.- SEF (link) — a "Search-Engine-Friendly" clean URL (
/quote-follow-up/AAA0001) instead of the rawindex.php?option=com_configbox&view=…. Producing one takes a controller router hook + a Joomla menu item. See sef-links.md. /cb-api/…— a custom XHR endpoint (a system-plugin frontname) for AJAX, documented as a deliberate core exception. See sef-links.md.- Property type — a custom Kenedo field type under
properties/(e.g. the read-onlybcimported*types that render import-owned fields as static text).
Configurator & catalog
- Product — one luminaire line (e.g. Xacara L™) that a visitor configures.
- Element / Option — an element is an option group in the configurator (e.g. "CCT"); an option is a choice within it (e.g. "3000K"). Each option carries a code segment and a price. Options live in one shared library reused across the whole catalog — editing one changes every product using it.
- Option assignment — the link between an element and a reused option (
adminxrefelementoptions, shown in the admin as Predefined Answers). It carries the per-product extras: default, enabled, rule, calculations, quantities. - Rule — a visibility condition on an element or an option assignment ("in what case should this be visible?"), shown in the admin as a sentence. What makes impossible combinations unselectable.
- Discontinued — a retired product: removed from every browse and quote surface, but kept on the public Discontinued Products page so its spec sheet stays available. See features/discontinued-products.md.
- Product code — the SKU assembled live from the selected options' code segments as the visitor
configures (e.g.
30A+WH+ …). - Product family — a marketing grouping of products shown on the public Products/Families pages (e.g. Arko), grouped under a family category (Decorative / Exterior).
- Performance data / photometrics — the lumen/wattage numbers and files (IES/LDT, candela curves, polar plots, TM-30) behind a product's spec sheet; imported from Google Sheets.
- Finish — a colour/material a product can be made in; shown as configurator swatches and on the public Finishes page.
Quotes & sales
- Customer group — the one group every user belongs to. Carries their currency, price visibility, checkout/quote permissions, group discount and agent status, and gates which products and files they can see at all. The site's core access model — see features/customer-groups-and-visibility.md.
- Agent / Specifier — the two audiences, distinguished by the group's
is_agentflag. Agents see pricing and the agent-only areas (Sales Tools, Resources); specifiers browse and request. - Branch — a rep office/agency a customer belongs to; quotes are attributed to it and it maps to a Pipedrive organisation. Imported from the Rep Master Google Sheet, not maintained by hand.
- Region — the flag picker in the site header. Choosing one rewrites the visitor's customer group (hence currency and visibility) and their imperial/metric units.
- Quote — a saved configuration/estimate a sales agent builds for a customer. Identified by a serial.
- Serial — a quote's unique reference (e.g.
BC-12345/AAA0001); also the key that matches a quote to its Pipedrive deal. - Deal — the Pipedrive (CRM) mirror of a quote. See pipedrive/README.md.
- RSM — Regional Sales Manager; a quote's branch RSM becomes the deal's owner (fallback
pipe@betacalco.com). - OOT — Out Of Territory; a flag/form on a quote for deals outside an agent's region.
- Quote Console — the agent-facing quote builder, plus the admin reference data behind it (account/sales managers, tax rates, payment terms, overages).
- Overage — a selectable markup percentage applied when building a quote.
- Commission tier / Volume discount tier — the incentive structures that drive commission and quantity/length-based discounts.
- Cold quote — a deal that's gone stale; a scheduled job emails reps and writes a Cold Quotes report sheet. See pipedrive/admin-manual.md.
Quote Follow-Up
- Landing page — the no-login, mobile-first page where an agent updates one quote (status / stage / dates / comments) from an emailed link. See quote-follow-up/landing-page.md.
- Magic link / grant token — the signed token in the follow-up email that authorises the agent to update their own quotes without logging in (deliberately not a Joomla login). See quote-follow-up/authentication.md.
- Nudge / cadence — a quote is "due for a nudge" when it's sat in a pipeline stage longer than the stage's configured days (per quote size); the "due" list is written to a sheet a reminder workflow reads. See quote-follow-up/nudge-cadence.md.
- Pipeline / stage — imported from Pipedrive; the stage picker on the landing page moves the deal along its pipeline. See quote-follow-up/pipeline-stages.md.
- Stage-sync sheet — an optional Google Sheet mirroring quote stage/status changes. See quote-follow-up/stage-sync.md.
- n8n — the external workflow tool that reads the nudge sheet and sends the reminders. See quote-follow-up/link-api-n8n.md.
Integrations & external systems
- Pipedrive — the CRM. Quotes mirror to deals; edits flow both ways (outbound queue + inbound webhook). See pipedrive/README.md.
- Webhook (inbound) — Pipedrive's "deal changed" call back to the site; queued, then drained by cron.
- CPQ — Configure-Price-Quote; Infor's rule engine. Given a ruleset and option-list values it configures a part and returns its manufacturing data — even for a build that has never existed. Reached over SOAP, on its own endpoint. See bom/cpq.md.
- BOM — Bill of Materials; the parts that make up a product. See the BOM System.
- Flat BOM — a BOM flattened to one row per material, quantities already multiplied down the levels. Everything on the site deals in flat BOMs, never nested ones.
- Item / material — an item is a part number in Infor (
item_mst.item); a material is an item consumed by another item's job. "Material" is always relative to a parent, and the root item is the top of one lookup. - Slash method — resolving a BOM by matching the slash-separated configuration code to an existing
Infor item name (or a known order-line code) and reading that item's cached BOM — as opposed to asking CPQ.
Recorded per quote line in
bom_fetch_method. See bom/position-boms.md. - PMT code — Infor's product material type code (
item_mst.p_m_t_code), carried on every material row and used downstream for costing and grouping. - Infor — the ERP system. Read via
BcHelper::getInforDb()(a PDO). Also referred to by its product name Syteline / CSI (CloudSuite Industrial) for order data. - Google Sheets — used for many exports/imports (performance data, price lists, BOM caches, schedules, cold-quote & nudge sheets). A Google service account authorises the writes.
- ClicData — a BI tool; one source format for the price-list import (comma-delimited).
- GTM (Google Tag Manager) — loads the analytics/marketing tags (GA4, Meta Pixel, Pinterest). See features/tracking.md.
- CMP (Cookiebot) — the Consent Management Platform (the cookie banner) that gates the tags by consent category (Necessary / Preferences / Statistics / Marketing).
- AWS CloudWatch / BigQuery / GA4 — metrics & analytics destinations for scheduled CLI jobs.
Docs & process
- Reference docs (
docs/) — the developer/AI source of truth (here). Admin Guide (admin-guide/) — the operator-facing, plain-language counterpart. See Two audiences. - Diary (
docs/diary/) — the off-git, per-developer work journal for cross-session continuity (not part of the published docs). - Capture mode — a testing mode that intercepts real Pipedrive/external writes so tests don't hit live systems. See testing/.
Missing a term? Add it here (keep entries one or two lines; link to the doc that owns the detail).