Location Config & Overrides
Location Config Endpoint
Section titled “Location Config Endpoint”GET /v1/{companyId}/location/{locationId}
Returns the resolved partner integration configuration for a specific company or location.
Company-Scoped Requests
Section titled “Company-Scoped Requests”If locationId is equal to companyId, the endpoint returns the company-level configuration.
GET /v1/12345/location/12345Location-Scoped Requests
Section titled “Location-Scoped Requests”When locationId differs from companyId, the endpoint returns the location-level configuration.
GET /v1/12345/location/67890Response Shape
Section titled “Response Shape”{ "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:
- Defaults — system-level baseline config
- Company config — overrides applied to all locations under the company
- Location config — overrides applied to a specific location (highest priority)
How Merging Works
Section titled “How Merging Works”variantAssetConfig: location config fully replaces company config values.allowedFields: location config fully replaces company config values forlabels,badges, anddisplayNameOverrides.
Scope Behavior
Section titled “Scope Behavior”| 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:
- BPD (BudSense Product Database) — canonical product data is the base layer
- Company variant overrides — company-specific field values applied on top
- Company display attributes — display-level overrides from the company scope
- 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.
What Can Be Overridden
Section titled “What Can Be Overridden”- Currently only a variant’s
namecan be overridden
Catalog Source
Section titled “Catalog Source”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 Resolution
Section titled “Asset Resolution”Asset filtering follows a similar fallback pattern:
- Default asset config — system default asset types per variant type
- Partner config
variantAssetConfig— if present, overrides the defaults