Documentação de Marcas
Visão Geral
Uma marca é, essencialmente, uma empresa que se apresenta ao mercado por meio de sua identidade, cultura e posicionamento 🏷️.
Ela é construída a partir de elementos como imagem, comunicação, proposta de valor e características percebidas nos seus produtos.
No contexto de e-commerce, a marca vai muito além de apenas indicar quem é o fabricante.
Ela atua como elemento estratégico de organização, segmentação e fortalecimento comercial dentro da loja.
As marcas podem possuir páginas próprias, descrições institucionais, identidade visual personalizada e até comportamentos distintos conforme a política comercial aplicada.
Além disso, exercem papel importante em filtros de navegação, estratégias de SEO, campanhas promocionais e ações de merchandising, contribuindo diretamente para a experiência do usuário e para o desempenho comercial 🚀.
Entidades Envolvidas
A principal entidade relacionada a uma marca são os produtos, pois são eles que materializam sua proposta de valor.
Uma marca pode estar vinculada a diversos produtos, permitindo agrupamento estratégico, organização do catálogo e fortalecimento da identidade comercial dentro da plataforma.
A marca também pode se relacionar com políticas comerciais, regras de exibição e configurações específicas, influenciando diretamente como seus produtos são apresentados ao consumidor.
Listagem de Marcas
/products/brands
Retorna lista paginada de marcas
Descrição
Endpoint responsável por retornar uma lista paginada de marcas cadastradas na loja 📄.
Rota destinada para o contexto administrativo, atuando no painel para possibilitar o lojista consultar as marcas da loja.
Parâmetros
Headers Obrigatórios
| Header | Valor | Descrição |
|---|---|---|
Authorization | Bearer {userToken} | Token de autenticação |
Campos Disponíveis (fields)
| Campo | Descrição |
|---|---|
| urls | Carrega as urls referentes à marca |
| description | Carrega a descrição da marca |
| linkedTradePolicies | Carrega políticas comerciais vinculadas |
| bannerGroups | Carrega os banners da marca |
Campos de Condição Disponíveis
| Campo | Tipo | Descrição |
|---|---|---|
| name | string | nome da marca |
| originalLogo | string | url do logo da marca |
| mainUrl | string | url principal da marca |
| code | string | código de identificação da marca |
| active | boolean | status de ativação da marca |
| createdAt | string | data de cadastro da marca |
| updatedAt | string | data da última atualização da marca |
Campos de Ordenação Disponíveis
| Campo | Descrição |
|---|---|
| id | Identificador da marca |
| name | Nome da marca |
Exemplo de Requisição
1curl --request GET \2 --url {{MAIN_URL}}/products/brands \3 --header "Authorization: Bearer SEU_TOKEN_AQUI" \✅ Resposta de Sucesso
1{2 "registers": [3 {4 "id": 1,5 "code": "Razer",6 "name": "Razer",7 "logo": "",8 "originalLogo": "",9 "productOrdering": "",10 "active": true,11 "bannerGroups": [],12 "createdAt": "2026-03-02 18:35:41",13 "updatedAt": "2026-03-02 18:35:41",14 "url": "/razer",15 "urls": [],16 "linkedTradePolicies": null,17 "description": {18 "id": 1,19 "tradePolicyId": 1,20 "name": "Razer",21 "shortDescription": null,22 "videoUrl": null,23 "searchDescription": null,24 "description": null,25 "customDescription1": null,26 "customDescription2": null,27 "customDescription3": null,28 "measureTable": null,29 "seoTitle": null,30 "seoDescription": null,31 "seoKeywords": null,32 "seoCanonical": null,33 "seoSocialTitle": null,34 "seoSocialDescription": null,35 "seoTwitterImageUrl": null,36 "seoGraphImageUrl": null,37 "seoGoogleCategoryId": null,38 "seoIndexOnGoogle": true,39 "seoGoogleCondition": null,40 "seoGoogleAgeGroup": null,41 "seoGoogleGender": null,42 "seoStructuredData": null,43 "productId": null,44 "productCategoryId": null,45 "productBrandId": 1,46 "productPageId": null47 }48 },49 ],50 "pagination": {51 "limit": 10,52 "offset": 0,53 "pages": 1,54 "registers": 155 }56}Listagem de Marcas por política comercial
/products/brands/trade-policy/{tradePolicyId}
Retorna lista paginada de marcas
Descrição
Endpoint responsável por retornar uma lista paginada de marcas cadastradas na loja pelo ID de política comercial.
Atua em contexto administrativo, sendo utilizado pelo lojista para acessar as marcas da loja.
No contexto de política comercial, a marca pode apresentar descrições e comportamentos distintos conforme a política aplicada.
Dessa forma, ao realizar a busca considerando uma política comercial específica, a marca será retornada exatamente conforme configurada para aquela política, respeitando suas regras e particularidades ⚙️.
Parâmetros
Headers Obrigatórios
| Header | Valor | Descrição |
|---|---|---|
Authorization | Bearer {userToken} | Token de autenticação |
Parâmetros da URL
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| tradePolicyId | integer | Sim | Identificador da política comercial associada |
Campos Disponíveis (fields)
| Campo | Descrição |
|---|---|
| urls | Carrega as urls referentes à marca |
| description | Carrega a descrição da marca |
| linkedTradePolicies | Carrega políticas comerciais vinculadas |
| bannerGroups | Carrega os banners da marca |
Campos de Condição Disponíveis
| Campo | Tipo | Descrição |
|---|---|---|
| name | string | nome da marca |
| originalLogo | string | url do logo da marca |
| mainUrl | string | url principal da marca |
| code | string | código de identificação da marca |
| active | boolean | status de ativação da marca |
| createdAt | string | data de cadastro da marca |
| updatedAt | string | data da última atualização da marca |
Campos de Ordenação Disponíveis
| Campo | Descrição |
|---|---|
| id | Identificador da marca |
| name | Nome da marca |
Exemplo de Requisição
1curl --request GET \2 --url {{MAIN_URL}}/products/brands/trade-policy/{tradePolicyId} \3 --header "Authorization: Bearer SEU_TOKEN_AQUI" \✅ Resposta de Sucesso
1{2 "registers": [3 {4 "id": 1,5 "code": "Razer",6 "name": "Razer",7 "logo": "",8 "originalLogo": "",9 "productOrdering": "",10 "active": true,11 "bannerGroups": [],12 "createdAt": "2026-03-02 18:35:41",13 "updatedAt": "2026-03-02 18:35:41",14 "url": "/razer",15 "urls": [],16 "linkedTradePolicies": null,17 "description": {18 "id": 1,19 "tradePolicyId": 1,20 "name": "Razer",21 "shortDescription": null,22 "videoUrl": null,23 "searchDescription": null,24 "description": null,25 "customDescription1": null,26 "customDescription2": null,27 "customDescription3": null,28 "measureTable": null,29 "seoTitle": null,30 "seoDescription": null,31 "seoKeywords": null,32 "seoCanonical": null,33 "seoSocialTitle": null,34 "seoSocialDescription": null,35 "seoTwitterImageUrl": null,36 "seoGraphImageUrl": null,37 "seoGoogleCategoryId": null,38 "seoIndexOnGoogle": true,39 "seoGoogleCondition": null,40 "seoGoogleAgeGroup": null,41 "seoGoogleGender": null,42 "seoStructuredData": null,43 "productId": null,44 "productCategoryId": null,45 "productBrandId": 1,46 "productPageId": null47 }48 },49 ],50 "pagination": {51 "limit": 10,52 "offset": 0,53 "pages": 1,54 "registers": 155 }56}Listagem simples de todas as marcas
/products/brands/all
Retorna lista simples de todas as marcas da loja
Descrição
Endpoint responsável por retornar uma lista simples de todas as marcas da loja 📋.
A resposta contém informações essenciais para identificação das marcas, sem detalhamentos aprofundados.
Esse endpoint é geralmente utilizado pelo frontend para controle e compartilhamento das marcas entre os módulos da plataforma, garantindo consistência nas seleções e vínculos.
Ideal para cenários onde é necessário listar marcas de forma rápida e leve, sem necessidade de carregar todos os detalhes 🔄.
Parâmetros
Headers Obrigatórios
| Header | Valor | Descrição |
|---|---|---|
Authorization | Bearer {userToken} | Token de autenticação |
Parâmetros da URL
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| entityId | integer | Sim | ID único da entidade |
Exemplo de Requisição
1curl --request GET \2 --url {{MAIN_URL}}/products/brands/all \3 --header "Authorization: Bearer SEU_TOKEN_AQUI" \✅ Resposta de Sucesso
1{2 "1": "Zike",3 "2": "Adibas",4 "3": "Pumao",5 "4": "Fina",6 "5": "San zung",7 "6": "Xaiomi",8}Busca detalhes de uma marca
/products/brands/{brandId}
Busca detalhes de uma marca por id
Descrição
Endpoint responsável por retornar os detalhes de uma marca específica pelo ID 🔎.
Atua em contexto administrativo, sendo utilizado pelo lojista para acessar informações completas da marca.
Por meio desse endpoint, é possível visualizar todos os dados cadastrados, incluindo configurações e informações complementares.
Também permite consultar relacionamentos vinculados à marca, facilitando o gerenciamento e a tomada de decisões dentro do painel administrativo.
Parâmetros
Headers Obrigatórios
| Header | Valor | Descrição |
|---|---|---|
Content-Type | application/json | Tipo de conteúdo |
Authorization | Bearer {userToken} | Token de autenticação |
Parâmetros da URL
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| brandId | integer | Sim | Identificador da marca a ser consultada |
Exemplo de Requisição
1curl --request GET \2 --url {{MAIN_URL}}/products/brands/{brandId} \3 --header "Authorization: Bearer SEU_TOKEN_AQUI" \✅ Resposta de Sucesso
1{2 "id": 1,3 "code": "uappi-store",4 "name": "Uappi",5 "logo": "/upload/stores/brand/987654321987654321987654321.webp",6 "originalLogo": "/upload/stores/brand/987654321987654321987654321.png",7 "productOrdering": "",8 "active": true,9 "bannerGroups": [],10 "createdAt": "2025-07-25 12:28:36",11 "updatedAt": "2025-07-25 14:26:33",12 "url": "marcas/uappi",13 "urls": [],14 "linkedTradePolicies": [15 116 ],17 "description": {18 "id": 1,19 "tradePolicyId": 1,20 "name": "Uappi",21 "shortDescription": "",22 "videoUrl": "",23 "searchDescription": "",24 "description": null,25 "customDescription1": null,26 "customDescription2": null,27 "customDescription3": null,28 "measureTable": null,29 "seoTitle": "",30 "seoDescription": null,31 "seoKeywords": "",32 "seoCanonical": "",33 "seoSocialTitle": "",34 "seoSocialDescription": null,35 "seoTwitterImageUrl": "",36 "seoGraphImageUrl": "",37 "seoGoogleCategoryId": 0,38 "seoIndexOnGoogle": false,39 "seoGoogleCondition": "",40 "seoGoogleAgeGroup": "",41 "seoGoogleGender": "",42 "seoStructuredData": null,43 "productId": null,44 "productCategoryId": null,45 "productBrandId": 1,46 "productPageId": null47 }48}⚠️ Erro retornado:
1{2 "status": false,3 "data": {4 "code": 404,5 "errorCode": "UAPPI_STORE_BRAND_NOT_FOUND",6 "message": "The requested brand was not found."7 }8}Busca uma marca por política comercial
/products/brands/{brandId}/trade-policy/{tradePolicyId}
Busca detalhes de uma marca por política comercial
Descrição
Endpoint responsável por retornar os detalhes de uma marca específica pelo ID e por política comercial 🔎.
Atua em contexto administrativo, sendo utilizado pelo lojista para acessar informações completas da marca.
Por meio desse endpoint, é possível visualizar todos os dados cadastrados, incluindo configurações e informações complementares.
Também permite consultar relacionamentos vinculados à marca, facilitando o gerenciamento e a tomada de decisões dentro do painel administrativo.
No contexto de política comercial, a marca pode apresentar descrições e comportamentos distintos conforme a política aplicada.
Dessa forma, ao realizar a busca considerando uma política comercial específica, a marca será retornada exatamente conforme configurada para aquela política, respeitando suas regras e particularidades ⚙️.
Parâmetros
Headers Obrigatórios
| Header | Valor | Descrição |
|---|---|---|
Content-Type | application/json | Tipo de conteúdo |
Authorization | Bearer {userToken} | Token de autenticação |
Parâmetros da URL
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| brandId | integer | Sim | Identificador da marca a ser consultada |
| tradePolicyId | integer | Sim | Identificador da política comercial |
Exemplo de Requisição
1curl --request GET \2 --url {{MAIN_URL}}/products/brands/{brandId}/trade-policy/{tradePolicyId} \3 --header "Authorization: Bearer SEU_TOKEN_AQUI" \✅ Resposta de Sucesso
1{2 "id": 1,3 "code": "uappi-store",4 "name": "Uappi",5 "logo": "/upload/stores/brand/987654321987654321987654321.webp",6 "originalLogo": "/upload/stores/brand/987654321987654321987654321.png",7 "productOrdering": "",8 "active": true,9 "bannerGroups": [],10 "createdAt": "2025-07-25 12:28:36",11 "updatedAt": "2025-07-25 14:26:33",12 "url": "marcas/uappi",13 "urls": [],14 "linkedTradePolicies": [15 116 ],17 "description": {18 "id": 1,19 "tradePolicyId": 1,20 "name": "Uappi",21 "shortDescription": "",22 "videoUrl": "",23 "searchDescription": "",24 "description": null,25 "customDescription1": null,26 "customDescription2": null,27 "customDescription3": null,28 "measureTable": null,29 "seoTitle": "",30 "seoDescription": null,31 "seoKeywords": "",32 "seoCanonical": "",33 "seoSocialTitle": "",34 "seoSocialDescription": null,35 "seoTwitterImageUrl": "",36 "seoGraphImageUrl": "",37 "seoGoogleCategoryId": 0,38 "seoIndexOnGoogle": false,39 "seoGoogleCondition": "",40 "seoGoogleAgeGroup": "",41 "seoGoogleGender": "",42 "seoStructuredData": null,43 "productId": null,44 "productCategoryId": null,45 "productBrandId": 1,46 "productPageId": null47 }48}⚠️ Erro retornado:
1{2 "status": false,3 "data": {4 "code": 404,5 "errorCode": "UAPPI_STORE_BRAND_NOT_FOUND",6 "message": "The requested brand was not found."7 }8}Cadastro de Marca
/products/brands
Permite cadastrar uma marca na loja
Descrição
Endpoint responsável por permitir que o lojista crie marcas para sua loja 🏷️.
Cada marca criada pode possuir uma página própria para exibição, funcionando como um espaço dedicado dentro da loja.
Além disso, é possível vincular produtos relacionados à marca, permitindo que sejam exibidos de forma organizada para os clientes.
Com isso, o lojista consegue estruturar melhor o catálogo e fortalecer a identidade das marcas dentro da plataforma.
Parâmetros
Headers Obrigatórios
| Header | Valor | Descrição |
|---|---|---|
Content-Type | application/json | Tipo de conteúdo |
Authorization | Bearer {userToken} | Token de autenticação |
Parâmetros do Corpo
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
code | string | ❌ | Código de identificação da marca |
name | string | ✅ | Nome da marca que deve ser cadastrada |
active | boolean | ✅ | Determina se a marca deve ser ativa ou inativa |
tradePolicies | array | ❌ | Lista de políticas comerciais que devem ser associadas a marca |
tradePolicies.* | integer | ✅ | Identificador da política comercial que deve ser associada |
Exemplo de Requisição
1curl --request POST \2 --url {{MAIN_URL}}/products/brands \3 --header "Authorization: Bearer SEU_TOKEN_AQUI" \4 --data '{5 "code": "uappi-store",6 "name": "Uappi",7 "active": true,8 "tradePolicies": {9 "1": true,10 "2": true11 }12 }'✅ Resposta de Sucesso
HTTP Status: 200 OK
1{2 "id": 1,3 "code": "uappi-store",4 "name": "Uappi",5 "logo": "",6 "originalLogo": "",7 "productOrdering": "",8 "active": true,9 "bannerGroups": [],10 "createdAt": "2025-08-01 12:33:29",11 "updatedAt": "2025-08-01 12:33:29",12 "url": "uappi-store",13 "urls": [],14 "linkedTradePolicies": [15 116 ],17 "description": {18 "id": 1,19 "tradePolicyId": 1,20 "name": "Uappi",21 "shortDescription": null,22 "videoUrl": null,23 "searchDescription": null,24 "description": null,25 "customDescription1": null,26 "customDescription2": null,27 "customDescription3": null,28 "measureTable": null,29 "seoTitle": null,30 "seoDescription": null,31 "seoKeywords": null,32 "seoCanonical": null,33 "seoSocialTitle": null,34 "seoSocialDescription": null,35 "seoTwitterImageUrl": null,36 "seoGraphImageUrl": null,37 "seoGoogleCategoryId": null,38 "seoIndexOnGoogle": true,39 "seoGoogleCondition": null,40 "seoGoogleAgeGroup": null,41 "seoGoogleGender": null,42 "seoStructuredData": null,43 "productId": null,44 "productCategoryId": null,45 "productBrandId": 1,46 "productPageId": null47 }48}⚠️ Possíveis erros:
Atenção: a seguir estão destacados os principais erros que podem ocorrer neste endpoint.
Os cenários descritos representam os erros mais relevantes do contexto atual, servindo como referência para entendimento e tratamento das falhas.
| Código Interno | Código Http | Descrição |
|---|---|---|
| UAPPI_CORE_INVALID_TRADE_POLICY_ID | 400 | Os ids de políticas comerciais solicitados não são permitidos. |
| UAPPI_STORE_DUPLICATED_BRAND_CODE | 400 | O código requisitado para a marca já está sendo utilizados. |
| UAPPI_STORE_DUPLICATED_URL | 400 | A url requisitada já está em uso. |
| UAPPI_STORE_ENTITY_MAIN_URL_ALREADY_EXISTS | 409 | A url principal requisitada para a entidade já está em uso. |
| UAPPI_STORE_INVALID_ENTITY_URL | 400 | A entidade solicitada para vincular à url não foi encontrada. |
|---|---|---|
| UAPPI_STORE_BRAND_NOT_FOUND | 404 | A marca solicitada não foi encontrada. |
Atualização de Marca
/products/brands/{brandId}
Permite atualizar uma marca na loja
Descrição
Endpoint responsável por permitir que o lojista atualize marcas da sua loja ✏️.
Por meio dele, é possível editar informações já cadastradas, como dados descritivos, configurações e demais atributos da marca.
Esse processo garante maior flexibilidade na gestão do catálogo, permitindo ajustes sempre que necessário.
Assim, o lojista mantém as marcas atualizadas e alinhadas à estratégia da loja 🚀.
Parâmetros
Headers Obrigatórios
| Header | Valor | Descrição |
|---|---|---|
Content-Type | application/json | Tipo de conteúdo |
Authorization | Bearer {userToken} | Token de autenticação |
Parâmetros do Corpo
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
code | string | ❌ | Código de identificação da marca |
name | string | ✅ | Nome da marca que deve ser cadastrada |
active | boolean | ✅ | Determina se a marca deve ser ativa ou inativa |
tradePolicies | array | ❌ | Lista de políticas comerciais que devem ser associadas a marca |
tradePolicies.* | integer | ✅ | Identificador da política comercial que deve ser associada |
Exemplo de Requisição
1curl --request PUT \2 --url {{MAIN_URL}}/products/brands/{brandId} \3 --header "Authorization: Bearer SEU_TOKEN_AQUI" \4 --data '{5 "code": "uappi-store",6 "name": "Uappi",7 "active": true,8 "tradePolicies": {9 "1": true,10 "2": true11 }12 }'✅ Resposta de Sucesso
HTTP Status: 200 OK
1{2 "id": 1,3 "code": "uappi-store",4 "name": "Uappi",5 "logo": "",6 "originalLogo": "",7 "productOrdering": "",8 "active": true,9 "bannerGroups": [],10 "createdAt": "2025-08-01 12:33:29",11 "updatedAt": "2025-08-01 12:33:29",12 "url": "uappi-store",13 "urls": [],14 "linkedTradePolicies": [15 116 ],17 "description": {18 "id": 1,19 "tradePolicyId": 1,20 "name": "Uappi",21 "shortDescription": null,22 "videoUrl": null,23 "searchDescription": null,24 "description": null,25 "customDescription1": null,26 "customDescription2": null,27 "customDescription3": null,28 "measureTable": null,29 "seoTitle": null,30 "seoDescription": null,31 "seoKeywords": null,32 "seoCanonical": null,33 "seoSocialTitle": null,34 "seoSocialDescription": null,35 "seoTwitterImageUrl": null,36 "seoGraphImageUrl": null,37 "seoGoogleCategoryId": null,38 "seoIndexOnGoogle": true,39 "seoGoogleCondition": null,40 "seoGoogleAgeGroup": null,41 "seoGoogleGender": null,42 "seoStructuredData": null,43 "productId": null,44 "productCategoryId": null,45 "productBrandId": 1,46 "productPageId": null47 }48}⚠️ Possíveis erros:
Atenção: a seguir estão destacados os principais erros que podem ocorrer neste endpoint.
Os cenários descritos representam os erros mais relevantes do contexto atual, servindo como referência para entendimento e tratamento das falhas.
| Código Interno | Código Http | Descrição |
|---|---|---|
| UAPPI_CORE_INVALID_TRADE_POLICY_ID | 400 | Os ids de políticas comerciais solicitados não são permitidos. |
| UAPPI_STORE_DUPLICATED_BRAND_CODE | 400 | O código requisitado para a marca já está sendo utilizados. |
| UAPPI_STORE_DUPLICATED_URL | 400 | A url requisitada já está em uso. |
| UAPPI_STORE_ENTITY_MAIN_URL_ALREADY_EXISTS | 409 | A url principal requisitada para a entidade já está em uso. |
| UAPPI_STORE_INVALID_ENTITY_URL | 400 | A entidade solicitada para vincular à url não foi encontrada. |
|---|---|---|
| UAPPI_STORE_BRAND_NOT_FOUND | 404 | A marca solicitada não foi encontrada. |
Exclusão da marca
/products/brands/{brandId}
Exclui uma marca da loja
Descrição
Endpoint responsável por remover uma marca da loja 🗑️.
Permite que o lojista tenha maior controle sobre o cadastro de marcas, realizando a exclusão quando necessário.
Esse recurso é útil para manter o catálogo organizado e atualizado, evitando que marcas obsoletas permaneçam ativas na plataforma.
Com isso, garante-se mais consistência na gestão das informações dentro do ambiente administrativo.
Parâmetros
Headers Obrigatórios
| Header | Valor | Descrição |
|---|---|---|
Authorization | Bearer {userToken} | Token de autenticação |
Parâmetros da URL
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| brandId | integer | Sim | Identificador da marca que deve ser excluída |
Exemplo de Requisição
1curl --request POST \2 --url {{MAIN_URL}}/products/brands/{brandId} \3 --header "Authorization: Bearer SEU_TOKEN_AQUI" \✅ Resposta de Sucesso
HTTP Status: 200 OK
1true⚠️ Erro retornado:
1{2 "status": false,3 "data": {4 "code": 404,5 "errorCode": "UAPPI_STORE_BRAND_NOT_FOUND",6 "message": "The requested brand was no found"7 }8}