Pular para o conteúdo principal

Obter atributos por marcador

Neste exemplo, demonstramos como recuperar o esquema de atributos para um conjunto de atributos específico pelo seu marcador usando a API OneEntry.

✅ Propósito do cenário:

  • Conectar-se à API OneEntry
  • Recuperar o esquema de atributos para um conjunto de atributos nomeado
  • Acessar metadados de atributos: marcador, tipo, rótulo, validadores e listTitles

✅ O que você precisa:

  • Um PROJECT_URL e APP_TOKEN válidos para autenticação com a API OneEntry.
  • Um conjunto de atributos configurado no OneEntry com um marcador conhecido (por exemplo, "product")

📌 Importante:

  • Estes exemplos não incluem tratamento de erros.
  • Você pode gerenciar erros usando um bloco try-catch ou empregando uma construção como await Promise.catch((error) => error).
  • Retorna o ESQUEMA de atributos — NÃO os valores reais das entidades.
  • value é sempre no esquema — para obter valores reais, use Products.getProducts(), Pages.getPageByUrl(), etc.
  • Use listTitles para construir opções de filtro para atributos do tipo lista e radioButton.

📚 Veja na documentação:

📦 Referência do SDK:

Experimente ao vivo

Execute este método interativamente no sandbox do JS SDK — conecte seu Project URL e App Token na primeira visita, depois abra:

  • Obter atributos por marcador — Neste exemplo, demonstramos como recuperar o esquema de atributos para um conjunto de atributos específico pelo seu marcador usando a API OneEntry.

Cenário

1. Importar defineOneEntry do SDK e definir PROJECT_URL e APP_TOKEN

Exemplo:

import { defineOneEntry } from 'oneentry';

const PROJECT_URL = 'your-project-url';
const APP_TOKEN = 'your-app-token';

2. Criando um cliente API com defineOneEntry()

Exemplo:

const { AttributesSets } = defineOneEntry(PROJECT_URL, {
token: APP_TOKEN,
});

3. Obter esquema de atributos por marcador com AttributesSets.getAttributesByMarker()

Exemplo:

const attributes = await AttributesSets.getAttributesByMarker(
'product',
'en_US',
);
console.log('Attributes: ', attributes);
Resultado:
[
{
"type": "real",
"value": {},
"marker": "price",
"position": 1,
"listTitles": [],
"validators": {
"requiredValidator": {
"strict": true
}
},
"initialValue": null,
"localizeInfos": {
"title": "Price"
},
"additionalFields": {}
},
{
"type": "string",
"value": {},
"marker": "currency",
"position": 2,
"listTitles": [],
"validators": {
"defaultValueValidator": {
"fieldDefaultValue": "USD",
"fieldDefaultValue2": ""
}
},
"initialValue": null,
"localizeInfos": {
"title": "Currency"
},
"additionalFields": {}
},
{
"type": "image",
"value": {},
"marker": "image",
"position": 3,
"listTitles": [],
"validators": {},
"initialValue": null,
"localizeInfos": {
"title": "Image"
},
"additionalFields": {}
}
]

Exemplo final

// 1. Import defineOneEntry from SDK and define PROJECT_URL and APP_TOKEN
import { defineOneEntry } from 'oneentry';

const PROJECT_URL = 'your-project-url';
const APP_TOKEN = 'your-app-token';

// 2. Creating an API client with [defineOneEntry()](/docs/index/#Installation)
const { AttributesSets } = defineOneEntry(PROJECT_URL, {
token: APP_TOKEN,
});

// 3. Get attribute schema by marker with [AttributesSets.getAttributesByMarker()](/docs/attribute-sets/getAttributeSetByMarker)
const attributes = await AttributesSets.getAttributesByMarker(
'product',
'en_US',
);
console.log('Attributes: ', attributes);