Skip to content

Location Config & Overrides

GET /v1/{companyId}/location/{locationId}

Returns the resolved partner integration configuration for a specific company or location.

If locationId is equal to companyId, the endpoint returns the company-level configuration.

GET /v1/12345/location/12345

When locationId differs from companyId, the endpoint returns the location-level configuration.

GET /v1/12345/location/67890
{
"companyId": "12345",
"locationId": "67890",
"clientId": "PARTNER_ID",
"variantAssetConfig": { ... },
"allowedFields": {
"labels": true,
"badges": false,
"displayNameOverrides": false
}
}
Field Description
companyId Company identifier as a string
locationId Location identifier as a string. Equals companyId for company-scoped requests
clientId Your partner client identifier
variantAssetConfig Asset configuration keyed by variant type. Controls which asset types and how many are returned per variant
allowedFields Feature flags indicating which optional data fields and overrides are enabled for this scope

Config Resolution: Default → Company → Location

Section titled “Config Resolution: Default → Company → Location”

Partner integration configs are resolved using a layered merge strategy with lowest to highest priority:

  1. Defaults — system-level baseline config
  2. Company config — overrides applied to all locations under the company
  3. Location config — overrides applied to a specific location (highest priority)
  • variantAssetConfig: location config fully replaces company config values.
  • allowedFields: location config fully replaces company config values for labels, badges, and displayNameOverrides.
Request Type Resolution Layers
locationId omitted or locationId == companyId Default -> Company
locationId differs from companyId Default -> Company -> Location

Variant Data Overrides (Batch Get Variants, webhook payloads)

Section titled “Variant Data Overrides (Batch Get Variants, webhook payloads)”

Variant records returned by POST /v1/{companyId}/variants/batch-get, or through webhooks, follow the same layered override pattern:

  1. BPD (BudSense Product Database) — canonical product data is the base layer
  2. Company variant overrides — company-specific field values applied on top
  3. Company display attributes — display-level overrides from the company scope
  4. Location display attributes — display-level overrides from the location scope (highest priority)

After overrides are applied, unit-of-measure normalization (CUOM/TUOM) is applied based on the resolved company configuration.

  • Currently only a variant’s name can be overridden

Each field in a variant response includes a catalogSource map that indicates where the value came from:

Value Meaning
BPD Value from the BudSense Product Database
Company Value from a company-level override
Location Value from a location-level override

Asset filtering follows a similar fallback pattern:

  1. Default asset config — system default asset types per variant type
  2. Partner config variantAssetConfig — if present, overrides the defaults