Skip to content

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

GET /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

HeaderValorDescrição
AuthorizationBearer {userToken}Token de autenticação

Campos Disponíveis (fields)

CampoDescrição
urlsCarrega as urls referentes à marca
descriptionCarrega a descrição da marca
linkedTradePoliciesCarrega políticas comerciais vinculadas
bannerGroupsCarrega os banners da marca

Campos de Condição Disponíveis

CampoTipoDescrição
namestringnome da marca
originalLogostringurl do logo da marca
mainUrlstringurl principal da marca
codestringcódigo de identificação da marca
activebooleanstatus de ativação da marca
createdAtstringdata de cadastro da marca
updatedAtstringdata da última atualização da marca

Campos de Ordenação Disponíveis

CampoDescrição
idIdentificador da marca
nameNome 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": null
47 }
48 },
49 ],
50 "pagination": {
51 "limit": 10,
52 "offset": 0,
53 "pages": 1,
54 "registers": 1
55 }
56}

Listagem de Marcas por política comercial

GET /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

HeaderValorDescrição
AuthorizationBearer {userToken}Token de autenticação

Parâmetros da URL

ParâmetroTipoObrigatórioDescrição
tradePolicyIdintegerSimIdentificador da política comercial associada

Campos Disponíveis (fields)

CampoDescrição
urlsCarrega as urls referentes à marca
descriptionCarrega a descrição da marca
linkedTradePoliciesCarrega políticas comerciais vinculadas
bannerGroupsCarrega os banners da marca

Campos de Condição Disponíveis

CampoTipoDescrição
namestringnome da marca
originalLogostringurl do logo da marca
mainUrlstringurl principal da marca
codestringcódigo de identificação da marca
activebooleanstatus de ativação da marca
createdAtstringdata de cadastro da marca
updatedAtstringdata da última atualização da marca

Campos de Ordenação Disponíveis

CampoDescrição
idIdentificador da marca
nameNome 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": null
47 }
48 },
49 ],
50 "pagination": {
51 "limit": 10,
52 "offset": 0,
53 "pages": 1,
54 "registers": 1
55 }
56}

Listagem simples de todas as marcas

GET /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

HeaderValorDescrição
AuthorizationBearer {userToken}Token de autenticação

Parâmetros da URL

ParâmetroTipoObrigatórioDescrição
entityIdintegerSimID ú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

GET /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

HeaderValorDescrição
Content-Typeapplication/jsonTipo de conteúdo
AuthorizationBearer {userToken}Token de autenticação

Parâmetros da URL

ParâmetroTipoObrigatórioDescrição
brandIdintegerSimIdentificador 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 1
16 ],
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": null
47 }
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

GET /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

HeaderValorDescrição
Content-Typeapplication/jsonTipo de conteúdo
AuthorizationBearer {userToken}Token de autenticação

Parâmetros da URL

ParâmetroTipoObrigatórioDescrição
brandIdintegerSimIdentificador da marca a ser consultada
tradePolicyIdintegerSimIdentificador 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 1
16 ],
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": null
47 }
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

POST /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

HeaderValorDescrição
Content-Typeapplication/jsonTipo de conteúdo
AuthorizationBearer {userToken}Token de autenticação

Parâmetros do Corpo

ParâmetroTipoObrigatórioDescrição
codestring❌Código de identificação da marca
namestring✅Nome da marca que deve ser cadastrada
activeboolean✅Determina se a marca deve ser ativa ou inativa
tradePoliciesarray❌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": true
11 }
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 1
16 ],
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": null
47 }
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 InternoCódigo HttpDescrição
UAPPI_CORE_INVALID_TRADE_POLICY_ID400Os ids de políticas comerciais solicitados não são permitidos.
UAPPI_STORE_DUPLICATED_BRAND_CODE400O código requisitado para a marca já está sendo utilizados.
UAPPI_STORE_DUPLICATED_URL400A url requisitada já está em uso.
UAPPI_STORE_ENTITY_MAIN_URL_ALREADY_EXISTS409A url principal requisitada para a entidade já está em uso.
UAPPI_STORE_INVALID_ENTITY_URL400A entidade solicitada para vincular à url não foi encontrada.
UAPPI_STORE_BRAND_NOT_FOUND404A marca solicitada não foi encontrada.

Atualização de Marca

PUT /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

HeaderValorDescrição
Content-Typeapplication/jsonTipo de conteúdo
AuthorizationBearer {userToken}Token de autenticação

Parâmetros do Corpo

ParâmetroTipoObrigatórioDescrição
codestring❌Código de identificação da marca
namestring✅Nome da marca que deve ser cadastrada
activeboolean✅Determina se a marca deve ser ativa ou inativa
tradePoliciesarray❌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": true
11 }
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 1
16 ],
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": null
47 }
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 InternoCódigo HttpDescrição
UAPPI_CORE_INVALID_TRADE_POLICY_ID400Os ids de políticas comerciais solicitados não são permitidos.
UAPPI_STORE_DUPLICATED_BRAND_CODE400O código requisitado para a marca já está sendo utilizados.
UAPPI_STORE_DUPLICATED_URL400A url requisitada já está em uso.
UAPPI_STORE_ENTITY_MAIN_URL_ALREADY_EXISTS409A url principal requisitada para a entidade já está em uso.
UAPPI_STORE_INVALID_ENTITY_URL400A entidade solicitada para vincular à url não foi encontrada.
UAPPI_STORE_BRAND_NOT_FOUND404A marca solicitada não foi encontrada.

Exclusão da marca

POST /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

HeaderValorDescrição
AuthorizationBearer {userToken}Token de autenticação

Parâmetros da URL

ParâmetroTipoObrigatórioDescrição
brandIdintegerSimIdentificador 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}

Uappi é a melhor opção para o crescimento da sua loja!

;