Skip to main content

Brands

A Brand represents a vehicle marque (FOTON, Chery, Jetour, BAIC, Lynk&Co, RADAR, …). Every brand holds the connection details for its upstream distributor (an Odoo 12 instance) so the BPO CRM can:

  • Pull the vehicle catalog (crm.vehicle.model).
  • Pull dealer records (crm.dealership).
  • Pull incoming web leads (quotations + test-drive requests).
  • Write back a 'synced' status to the distributor so the same lead is not re-imported.

:::info Who can edit this? Creating and editing brands, including distributor credentials, requires the BPO Manager group. BPO Agents and Supervisors can view brands but cannot trigger sync or modify credentials. :::

Open the Brands list

Navigate to BPO CRM → Data → Brands.

Brands list view

The list shows:

ColumnDescription
CodeShort brand code, max 10 chars (e.g. FOTON). Used as a stable key.
NameDisplay name.
ModelsNumber of vehicle models currently synced.
LeadsNumber of leads in the pipeline for this brand.
Distributor ConnectedLast Test Connection result.
Last Vehicle SyncTimestamp of the most recent successful model sync.
ActiveArchive toggle.

Create a brand

Click New. A blank brand form opens.

New brand form

Fill in the header:

FieldNotes
LogoOptional image, displayed in lead forms and kanban cards.
Brand NameRequired, e.g. Foton Philippines.
Brand CodeRequired, unique, max 10 chars, e.g. FOTON. Used by sync code — do not rename casually.
Brand ColorPicker. Used for kanban color coding.
SequenceDrag-handle order in lists.
ActiveUncheck to archive (leads are preserved).

Save the brand before configuring the distributor connection.

Configure the Distributor Connection

Open the Distributor Connection tab.

Brand distributor connection tab

Connection Settings

FieldExampleNotes
Distributor URLhttps://foton.uaagi-uno.comOdoo 12 instance URL. No trailing slash.
Distributor Databasefoton_prodOdoo DB name.
Distributor Usernamebpo_sync@uaagi-uno.comMust be a service account on the distributor side with read access to product.template, res.partner, and the web-lead models.
Distributor Password(masked)Stored encrypted in Odoo's filestore.
Verify SSL CertificateOnTurn off only for self-signed development environments.

:::tip Service account setup On the distributor (Odoo 12), create a dedicated user (e.g. bpo_sync) with:

  • Read on product.template, res.partner, cheryweb.quotation, cherywebsite.test.drive
  • Write on cheryweb.quotation.status and cherywebsite.test.drive.status (for the 'synced' write-back)

Do not reuse a human user account — rotating their password will break the sync silently. :::

Test the connection

Click Test Connection in the top toolbar.

Test connection success toast

On success, the Status group flips to Distributor Connected = ✓. On failure, read the toast message — the two most common causes are wrong database name and an expired service-account password.

Sync Filters

Under the Distributor Connection tab, configure which products to pull as vehicle models.

Sync filters panel

FilterMeaning on the distributor side
Is Unitproduct.template.is_unit = True. Distinguishes vehicle units from parts/accessories. On in most setups.
Serial Trackingtracking = 'serial'. Only products tracked by serial number. On in most setups.
Saleablesale_ok = True. Off by default because not every sellable product is a unit.

Uncheck all three to sync the full active-product catalog.

Run the syncs

The header exposes three sync buttons — see their dedicated docs:

  • Sync Vehicle Models → covered in Vehicle Models.
  • Sync Dealers → covered in Dealerships.
  • Lead ingestion is scheduled (cron) and writes to crm.lead; the Brand form surfaces its last-run timestamps only.

Field reference

Last-run timestamps on each brand:

FieldSet by
distributor_last_syncSync Vehicle Models
distributor_last_lead_syncCron-driven lead import
distributor_last_dealer_syncSync Dealers

Troubleshooting

SymptomLikely cause
Test Connection fails with Access DeniedWrong username/password, or service account lacks model access on distributor.
Test Connection fails with Database not foundWrong distributor_db. Check the distributor's DB selector page.
ValueError: Wrong value for cheryweb.quotation.status: 'synced'Distributor is on the wrong branch — it needs the 'synced' Selection value. See the chery-distributor branch note in the ops runbook.
No models pulled after SyncAll three sync filters are too strict. Temporarily turn them off and retry.