Obtener atributos por marcador
En este ejemplo, demostramos cómo recuperar el esquema de atributos para un conjunto de atributos específico por su marcador utilizando la API de OneEntry.
✅ Propósito del escenario:
- Conectar a la API de OneEntry
- Recuperar el esquema de atributos para un conjunto de atributos nombrado
- Acceder a los metadatos de los atributos: marcador, tipo, etiqueta, validadores y listTitles
✅ Lo que necesitas:
- Un PROJECT_URL y APP_TOKEN válidos para la autenticación con la API de OneEntry.
- Un conjunto de atributos configurado en OneEntry con un marcador conocido (por ejemplo, "producto")
📌 Importante:
- Estos ejemplos no incluyen manejo de errores.
- Puedes gestionar errores utilizando un bloque try-catch o empleando una construcción como await Promise.catch((error) => error).
- Devuelve el ESQUEMA de atributos — NO los valores reales de las entidades.
- el valor es siempre en el esquema — para obtener valores reales usa Products.getProducts(), Pages.getPageByUrl(), etc.
- Usa listTitles para construir opciones de filtro para atributos de tipo lista y radioButton.
📚 Ver en la documentación:
📦 Referencia del SDK:
Pruébalo en vivo
Ejecuta este método de forma interactiva en el sandbox del JS SDK — conecta tu Project URL y App Token en la primera visita, luego abre:
- Obtener atributos por marcador — En este ejemplo, demostramos cómo recuperar el esquema de atributos para un conjunto de atributos específico por su marcador utilizando la API de OneEntry.
Escenario
1. Importar defineOneEntry desde el SDK y definir PROJECT_URL y APP_TOKEN
Ejemplo:
import { defineOneEntry } from 'oneentry';
const PROJECT_URL = 'your-project-url';
const APP_TOKEN = 'your-app-token';
2. Crear un cliente API con defineOneEntry()
Ejemplo:
const { AttributesSets } = defineOneEntry(PROJECT_URL, {
token: APP_TOKEN,
});
3. Obtener el esquema de atributos por marcador con AttributesSets.getAttributesByMarker()
Ejemplo:
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": {}
}
]
Ejemplo 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);