Preparing Dealer Brand App content
Preparing Dealer Brand App content
Preparing Dealer Brand App content
A dealer clone's organizations are a parent group and the stores it owns. entities.preset is automotive-dealer. The public way to find a store is /rooftops, not the login-gated directory.
This page is the dealer-pack overlay of the entities article. The Layer 1 entity record, member roles, and parentEntityId are unchanged. The catalog and the public map are the pack.
| Type id | What it is |
|---|---|
dealer_group | Parent company. Partner applications are addressed here when a group exists. |
dealer_rooftop | A physical store with its own inventory and staff. |
service_center | Service drive, attached or standalone. |
body_shop | Collision repair in the group. |
finance_partner | A lender the group works with. Not a credit application on the website. |
insurance_partner | An insurance desk partner. |
Visitors open /rooftops, search by city or name, and can ask the browser for nearby stores. Each pin shows the rooftop, a phone link when you published one, directions, and a count of vehicles in stock. Inventory links go to /store, not into a private office.
Staff still live on the entity. A lead is visible to the shopper who created it, platform admins, and members of that rooftop or its parent group. Choosing "Independent dealer" or "Parts supplier" under How I shop does not add that person to the rooftop.
/entities stays login-gated on Layer 1. Send guests to /rooftops.
No. It is an entity-visible lead to the group. Staff invite members the same way as any other entity.
The audience save still stores the note. The application is created only when a dealer_group or dealer_rooftop row exists.
A dealer clone's organizations are a parent group and the stores it owns. entities.preset is automotive-dealer. The public way to find a store is /rooftops, not the login-gated directory.
This page is the dealer-pack overlay of the entities article. The Layer 1 entity record, member roles, and parentEntityId are unchanged. The catalog and the public map are the pack.
| Type id | What it is |
|---|---|
dealer_group | Parent company. Partner applications are addressed here when a group exists. |
dealer_rooftop | A physical store with its own inventory and staff. |
service_center | Service drive, attached or standalone. |
body_shop | Collision repair in the group. |
finance_partner | A lender the group works with. Not a credit application on the website. |
insurance_partner | An insurance desk partner. |
Visitors open /rooftops, search by city or name, and can ask the browser for nearby stores. Each pin shows the rooftop, a phone link when you published one, directions, and a count of vehicles in stock. Inventory links go to /store, not into a private office.
Staff still live on the entity. A lead is visible to the shopper who created it, platform admins, and members of that rooftop or its parent group. Choosing "Independent dealer" or "Parts supplier" under How I shop does not add that person to the rooftop.
/entities stays login-gated on Layer 1. Send guests to /rooftops.
No. It is an entity-visible lead to the group. Staff invite members the same way as any other entity.
The audience save still stores the note. The application is created only when a dealer_group or dealer_rooftop row exists.
A dealer clone's organizations are a parent group and the stores it owns. entities.preset is automotive-dealer. The public way to find a store is /rooftops, not the login-gated directory.
This page is the dealer-pack overlay of the entities article. The Layer 1 entity record, member roles, and parentEntityId are unchanged. The catalog and the public map are the pack.
| Type id | What it is |
|---|---|
dealer_group | Parent company. Partner applications are addressed here when a group exists. |
dealer_rooftop | A physical store with its own inventory and staff. |
service_center | Service drive, attached or standalone. |
body_shop | Collision repair in the group. |
finance_partner | A lender the group works with. Not a credit application on the website. |
insurance_partner | An insurance desk partner. |
Visitors open /rooftops, search by city or name, and can ask the browser for nearby stores. Each pin shows the rooftop, a phone link when you published one, directions, and a count of vehicles in stock. Inventory links go to /store, not into a private office.
Staff still live on the entity. A lead is visible to the shopper who created it, platform admins, and members of that rooftop or its parent group. Choosing "Independent dealer" or "Parts supplier" under How I shop does not add that person to the rooftop.
/entities stays login-gated on Layer 1. Send guests to /rooftops.
No. It is an entity-visible lead to the group. Staff invite members the same way as any other entity.
The audience save still stores the note. The application is created only when a dealer_group or dealer_rooftop row exists.
GET /api/dealer/audience and PUT /api/dealer/audience write users.data.dealerAudience only (shopper, independent_dealer, parts_supplier, other). They never write users.data.role and never call assertEntityRole to grant membership.
When the audience is independent_dealer or parts_supplier, the route resolves the first dealer_group (or, if none, the first dealer_rooftop) and calls createDealerLead with kind: 'partner_application'. An open application for that user is reused.
The page is app/[locale]/(protected)/profile/audience/page.tsx. Desktop nav id audience points at /profile/audience. It is not on the landing page or the store.
GET /api/dealer/audience and PUT /api/dealer/audience write users.data.dealerAudience only (shopper, independent_dealer, parts_supplier, other). They never write users.data.role and never call assertEntityRole to grant membership.
When the audience is independent_dealer or parts_supplier, the route resolves the first dealer_group (or, if none, the first dealer_rooftop) and calls createDealerLead with kind: 'partner_application'. An open application for that user is reused.
The page is app/[locale]/(protected)/profile/audience/page.tsx. Desktop nav id audience points at /profile/audience. It is not on the landing page or the store.
GET /api/dealer/audience and PUT /api/dealer/audience write users.data.dealerAudience only (shopper, independent_dealer, parts_supplier, other). They never write users.data.role and never call assertEntityRole to grant membership.
When the audience is independent_dealer or parts_supplier, the route resolves the first dealer_group (or, if none, the first dealer_rooftop) and calls createDealerLead with kind: 'partner_application'. An open application for that user is reused.
The page is app/[locale]/(protected)/profile/audience/page.tsx. Desktop nav id audience points at /profile/audience. It is not on the landing page or the store.