Endpoints para Característica
En el contexto de nuestra API, una característica representa una entidad que almacena particularidades de los productos. Una característica contiene subconjuntos y estos a su vez contienen valores.
Características Comunes de las Características
-
Identificación Única: Cada característica tiene un identificador único
idque las distingue de otras características en el sistema. -
Subconjuntos y valores: Cada característica está formada por subconjuntos. Por ejemplo, la característica
Sizeestá formada por los subconjuntosXS-XLyTallas de zapato. A su vez, los subconjuntos almacenan valores. Por ejemplo, para el subconjuntoXS-XLexiste un valor por cada talla comprendida en ese rango. Tendríamos los valoresXS,S,M,LyXLcon un número de secuencia asociado para controlar el orden de estos valores. -
Estado y Actividad: Puede haber estados que indican si la característica está activa, inactiva o suspendida temporalmente, dependiendo de las reglas de negocio y políticas de la plataforma.
-
Tipo: Las características se agrupan por tipos genéricos y utilizamos el parámetro
chTypeque incluye eliddel tipo y suvalue. Por ejemplo, para la característicaSize, el tipo esModa.
Endpoints
GET/Characteristic/getCharacteristic
Obtención de Características.
Descripción
Este endpoint recupera una lista paginada de características genéricas del sistema. Permite a los clientes obtener datos basados en parámetros de paginación como el número de página (page) y el número de ítems por página (pageSize). La lista incluye únicamente información sobre las características genéricas.
Parámetros
| Nombre | Descripción | Tipo | Valor Predeterminado |
|---|---|---|---|
page | Número de página | Integer | 1 |
pageSize | Número de ítems por página | Integer | 10 |
Respuestas
JSON
{
"data": [
{
"id": "string",
"idRemote": "string",
"chType": {
"id": "string",
"value": "string"
},
"name": "string",
"description": "string",
"isVariant": true,
"isMain": true,
"isSecondary": true,
"active": true
}
],
"pagination": {
"totalItems": 0,
"itemsPerPage": 0,
"currentPage": 0,
"totalPages": 0,
"nextPageUrl": "string"
}
}
XML
<?xml version="1.0" encoding="UTF-8"?>
<export>
<data>
<item>
<id>string</id>
<idRemote>string</idRemote>
<chType>
<id>string</id>
<value>string</value>
</chType>
<name>string</name>
<description>string</description>
<isVariant>true</isVariant>
<isMain>true</isMain>
<isSecondary>true</isSecondary>
<active>true</active>
</item>
</data>
<pagination>
<totalItems>0</totalItems>
<itemsPerPage>0</itemsPerPage>
<currentPage>0</currentPage>
<totalPages>0</totalPages>
<nextPageUrl>string</nextPageUrl>
</pagination>
</export>
GET/Characteristic/getCharacteristicType
Obtención de Tipos de Características.
Descripción
Este endpoint recupera una lista paginada de tipos de características del sistema. Permite a los clientes obtener datos de los tipos de características basados en parámetros de paginación como el número de página (page) y el número de ítems por página (pageSize). La lista incluye información sobre cada tipo de característica.
Parámetros
| Nombre | Descripción | Tipo | Valor Predeterminado |
|---|---|---|---|
page | Número de página | Integer | 1 |
pageSize | Número de ítems por página | Integer | 10 |
Respuestas
JSON
{
"data": [
{
"id": "string",
"value": "string"
}
],
"pagination": {
"totalItems": 0,
"itemsPerPage": 0,
"currentPage": 0,
"totalPages": 0,
"nextPageUrl": "string"
}
}
XML
<?xml version="1.0" encoding="UTF-8"?>
<export>
<data>
<item>
<id>string</id>
<value>string</value>
</item>
</data>
<pagination>
<totalItems>0</totalItems>
<itemsPerPage>0</itemsPerPage>
<currentPage>0</currentPage>
<totalPages>0</totalPages>
<nextPageUrl>string</nextPageUrl>
</pagination>
</export>
GET/Characteristic/getCharWithSubset
Obtención de Características genéricas y Subconjuntos.
Descripción
Este endpoint recupera una lista paginada de características con subconjuntos del sistema. Permite a los clientes obtener datos de las características y sus subconjuntos basados en parámetros de paginación como el número de página (page) y el número de ítems por página (pageSize). La lista incluye detalles sobre cada subset valor asociado a cada característica.
Parámetros
| Nombre | Descripción | Tipo | Valor Predeterminado |
|---|---|---|---|
page | Número de página | Integer | 1 |
pageSize | Número de ítems por página | Integer | 10 |
Respuestas
JSON
{
"data": [
{
"id": "string",
"idRemote": "string",
"chType": {
"id": "string",
"value": "string"
},
"name": "string",
"description": "string",
"isVariant": true,
"isMain": true,
"isSecondary": true,
"active": true,
"subsets": [
{
"id": "string",
"idRemote": "string",
"name": "string",
"description": "string",
"values": [
{
"id": "string",
"idRemote": "string",
"sequence": "string",
"value": "string"
}
]
}
]
}
],
"pagination": {
"totalItems": 0,
"itemsPerPage": 0,
"currentPage": 0,
"totalPages": 0,
"nextPageUrl": "string"
}
}
XML
<?xml version="1.0" encoding="UTF-8"?>
<export>
<data>
<item>
<id>string</id>
<idRemote>string</idRemote>
<chType>
<id>string</id>
<value>string</value>
</chType>
<name>string</name>
<description>string</description>
<isVariant>true</isVariant>
<isMain>true</isMain>
<isSecondary>true</isSecondary>
<active>true</active>
<subsets>
<id>string</id>
<idRemote>string</idRemote>
<name>string</name>
<description>string</description>
<values>
<id>string</id>
<idRemote>string</idRemote>
<sequence>string</sequence>
<value>string</value>
</values>
</subsets>
</item>
</data>
<pagination>
<totalItems>0</totalItems>
<itemsPerPage>0</itemsPerPage>
<currentPage>0</currentPage>
<totalPages>0</totalPages>
<nextPageUrl>string</nextPageUrl>
</pagination>
</export>
GET/Characteristic/getCharacteristic/Subset
Obtención de Características genéricas y Subconjuntos, centrado en Subconjuntos.
Descripción
Este endpoint recupera una lista paginada de subconjuntos que están dentro de las características del sistema. Permite a los clientes obtener datos de los subconjuntos basados en parámetros de paginación como el número de página (page) y el número de ítems por página (pageSize). La lista proporciona información más detallada sobre los subconjuntos y sus valores.
Parámetros
| Nombre | Descripción | Tipo | Valor Predeterminado |
|---|---|---|---|
page | Número de página | Integer | 1 |
pageSize | Número de ítems por página | Integer | 10 |
Respuestas
JSON
{
"data": [
{
"id": "string",
"idRemote": "string",
"characteristic": {
"id": "string",
"name": "string",
"description": "string"
},
"name": "string",
"description": "string",
"values": [
{
"id": "string",
"idRemote": "string",
"sequence": 0,
"value": "string"
}
]
}
],
"pagination": {
"totalItems": 0,
"itemsPerPage": 0,
"currentPage": 0,
"totalPages": 0,
"nextPageUrl": "string"
}
}
XML
<?xml version="1.0" encoding="UTF-8"?>
<export>
<data>
<item>
<id>string</id>
<idRemote>string</idRemote>
<characteristic>
<id>string</id>
<name>string</name>
<description>string</description>
</characteristic>
<name>string</name>
<description>string</description>
<values>
<id>string</id>
<idRemote>string</idRemote>
<sequence>0</sequence>
<value>string</value>
</values>
</item>
</data>
<pagination>
<totalItems>0</totalItems>
<itemsPerPage>0</itemsPerPage>
<currentPage>0</currentPage>
<totalPages>0</totalPages>
<nextPageUrl>string</nextPageUrl>
</pagination>
</export>
POST/Characteristic/createCharacteristic
Factores a tener en cuenta
Para la creación de una nueva Característica debe tener en cuenta que el tipo de característica al que se va a asociar a través del parámetro characteristicTypeId, debe existir en el sistema.
Una característica puede ser principal main o secundaria secondary. Por ejemplo, en el calzado una característica primaria sería el Color y una secundaria la Talla. Así, una vez que has elegido el producto por su color, podrás seleccionar su talla. Si una característica no es variante, no puede ser principal ni secundaria.
Es posible añadir traducciones a las características a través del atributo languages. Este atributo es opcional, pero si decides incluirlo, debes tener en cuenta que sus atributos (languageId y value) son obligatorios. En el atributo languageId puedes adjuntar el id del Lenguaje o el código iso.
👉Endpoints relacionados con los Lenguajes🌱
Parámetros obligatorios
| Nombre | Descripción | Tipo |
|---|---|---|
idRemote | Identificador de la Característica | String |
name | Nombre de la Característica | String |
description | Descripción de la Característica | String |
active | Determina si la Característica está activa o no | Boolean |
isVariant | Determina si la nueva Característica es una variante o no | Boolean |
characteristicTypeId | Identificador del Tipo de Característica asociado a la nueva Característica | String |
Parámetros obligatorios
El cuerpo de la solicitud debe seguir el siguiente esquema:
[
{
"idRemote": "string",
"name": "string",
"description": "string",
"characteristicTypeId": "string",
"active": true,
"main": true,
"secondary": true,
"isVariant": true,
"languages": [
{
"languageId": "string",
"value": "string"
}
]
}
]
Es posible añadir varias características a través de la misma solicitud separándolos con comas dentro del array en el cuerpo de la solicitud.
POST/Characteristic/createSubCharacteristic
Factores a tener en cuenta
Para crear un Subconjunto y asignarle valores, es crucial asegurarse de que la característica a la que desea asociar el subconjunto a través del parámetro characteristicId existe en el sistema.
👉Registrar Característica🌱
Los valores de subconjuntos asignados en la creación de un subconjunto son creados al momento y no necesitan referenciar campos ya existentes. Además, es posible asignar un orden a estos valores con el parámetro sequence. Si la secuencia es el valor por defecto, es decir, la secuencia es 0 o no se incluye en el cuerpo de la solicitud, se le asigna un valor secuencial especial calculado en múltiplos de 10. En cambio, si hay una secuencia definida, se usa directamente ese valor asignado.
Al crear un nuevo valor adjunto al nuevo subconjunto, puedes añadirle traducciones a través del atributo languages. Este atributo es opcional, pero si decides incluirlo, debes tener en cuenta que sus atributos (languageId y value) son obligatorios. En el atributo languageId puedes adjuntar el id del Lenguaje o el código iso.
👉Endpoints relacionados con los Lenguajes🌱
Parámetros obligatorios
| Nombre | Descripción | Tipo |
|---|---|---|
idRemote | Identificador del nuevo Subconjunto | String |
name | Nombre del nuevo subconjunto | String |
characteristicId | Identificador de la Característica relacionada con el nuevo SUbconjunto | String |
Parámetros obligatorios de los Valores del Subconjunto
Usando este endpoint puedes crear Valores para el nuevo Subconjunto. Si deseas añadir nuevos valores para el Subconjunto, debes tener en cuenta los siguientes parámetros obligatorios:
| Nombre | Descripción | Tipo |
|---|---|---|
idRemote | Identificador del nuevo Subconjunto | String |
value | Nombre del nuevo Valor que vas a asignar al Subconjunto | String |
[
{
"idRemote": "string",
"name": "string",
"description": "string",
"characteristicId": "string",
"subValue": [
{
"idRemote": "string",
"value": "string",
"sequence": 0,
"languages": [
{
"languageId": "string",
"value": "string"
}
]
}
]
}
]
Es posible añadir varios subconjuntos a través de la misma solicitud separándolos con comas dentro del array en el cuerpo de la solicitud.
POST/Characteristic/createSubValueCharacteristic
Factores a tener en cuenta
Para crear un valor de Subconjunto, es crucial asegurarse de que el subconjunto al que desea asociar el valor a través del parámetro subsetId existe en el sistema.
👉Registrar Subconjunto🌱
Al asignar un nuevo valor o valores a un subconjunto, puedes adjuntar traducciones para los nuevos valores a través del atributo languages. Este atributo es opcional, pero si decides incluirlo, debes tener en cuenta que sus atributos (languageId y value) son obligatorios. En el atributo languageId puedes adjuntar el id del Lenguaje o el código iso.
👉Endpoints relacionados con los Lenguajes🌱
Si decides no incluir el atributo sequence, el sistema creará una secuencia numérica para el valor o valores sumando de 10 en 10 a partir de 0.
Parámetros obligatorios
| Name | Description | Type |
|---|---|---|
idRemote | Identificador del nuevo valor | String |
value | Nombre del nuevo valor | String |
subsetId | Identificador del Subconjunto al que se le relaciona el nuevo valor o valores | String |
El cuerpo de la solicitud debe seguir este esquema en formato JSON:
[
{
"idRemote": "string",
"value": "string",
"sequence": 0,
"subsetId": "string",
"languages": [
{
"languageId": "string",
"value": "string"
}
]
}
]
Es posible añadir varios valores a través de la misma solicitud separándolos con comas dentro del array en el cuerpo de la solicitud.
PUT/Characteristic/updateCharacteristic/{id}
Actualizar una característica existente usando el método PUT
Para actualizar los atributos de una característica a través de este endpoint, es necesario adjuntar la identificación de la característica en los parámetros de la solicitud y seguir el esquema JSON adjunto en esta documentación. El parámetro id puede ser tanto el idRemote como el id local guardado en el contexto del B2B.
Parámetros
| Nombre | Descripción | Tipo |
|---|---|---|
id | Identificador de la característica | String |
No es necesario incluir toda la estructura JSON, solo debes incluir los atributos que quieras modificar.
Cuerpo de la solicitud
El cuerpo de la solicitud debe seguir el siguiente esquema para que el endpoint realice la operación de actualización exitosamente:
{
"name": "string",
"description": "string",
"characteristicTypeId": "string",
"active": true,
"isMain": true,
"isSecondary": true,
"isVariant": true,
"languages": [
{
"languageId": "string",
"value": "string"
}
]
}
PUT/Characteristic/updateSubValueCharacteristic/{id}
Actualizar un valor de subconjunto de una característica existente usando el método PUT
Para actualizar los atributos de un valor de subconjunto de una característica, es necesario adjuntar la identificación del valor del subconjunto en los parámetros de la solicitud y seguir el esquema JSON adjunto en esta documentación. El parámetro id puede ser tanto el idRemote como el id local guardado en el contexto del B2B.
Parámetros
| Nombre | Descripción | Tipo |
|---|---|---|
id | Identificador de Valor de Subconjunto | String |
Detalles del método PUT:
El cuerpo de la solicitud debe seguir el siguiente esquema para que el endpoint realice la operación de actualización exitosamente:
{
"value": "string",
"sequence": 0,
"languages": [
{
"languageId": "string",
"value": "string"
}
]
}
DELETE/Characteristic/deleteCharacteristic/{id}
Eliminación de Característica.
Descripción
Este endpoint permite la eliminación de características utilizando su identificador único, que puede ser tanto el id propio del sistema B2B como el idRemote proporcionado por usted al registrar las características en nuestra plataforma. Una vez eliminada, la característica se registra en el Historial de Eliminados.
⚠️No se podrá eliminar una Característica si tiene valores relacionados con alg ún producto.
Parámetros
| Nombre | Descripción | Tipo |
|---|---|---|
id | Identificador de Característica | String |
DELETE/Characteristic/deleteSubCharacteristic/{id}
Eliminación de Subconjunto.
Descripción
Este endpoint permite la eliminación de subconjuntos de características utilizando su identificador único, que puede ser tanto el id propio del sistema B2B como el idRemote proporcionado por usted al registrar los subconjuntos de características en nuestra plataforma. Es importante destacar que al eliminar un subconjunto, no se elimina la Característica correspondiente, pero sí los valores asociados. Una vez eliminado, el subconjunto se registra en el Historial de Eliminados.
⚠️No se podrá eliminar un Subconjunto si tiene valores relacionados con algún producto.
Parámetros
| Nombre | Descripción | Tipo |
|---|---|---|
id | Identificador de Subconjunto de Característica | String |
DELETE/Characteristic/deleteSubValueCharacteristic/{id}
Eliminación de Valor de Subconjunto.
Descripción
Este endpoint permite la eliminación de valores de subconjuntos de características utilizando su identificador único, que puede ser tanto el id propio del sistema B2B como el idRemote proporcionado por usted al registrar los subconjuntos de características en nuestra plataforma. Es importante destacar que al eliminar un valor, no se elimina el subconjunto correspondiente. Una vez eliminado, el valor de subconjunto se registra en el Historial de Eliminados.
Parámetros
| Nombre | Descripción | Tipo |
|---|---|---|
id | Identificador de Valor de Subconjunto | String |
Posibles Errores en la Respuesta
| Error | Código | Respuesta |
|---|---|---|
| Este error ocurre cuando no se puede establecer una conexión con la base de datos. Es un problema interno del servidor. | 500 | {"code": 500,"error": "Database connection failed."} |
| Este error ocurre cuando no puede insertar o actualizar y en la dbs de pruebas. | 500 | {"code": 500,"error": "Invalid connection name, you cannot insert in default"} |
| Este error indica que falta un parametro. | 400 | {"code": 400,"error": "Parameter $parameter is required"} |
| Este error indica que no está autorizado. | 401 | {"code": 401,"error": "Unauthorized"} |
| Este error indica que no ha sido posible encontrar la Característica. | 404 | {"code": 404,"error": "No entity found for Characteristic."} |
| Este error ocurre cuando intenta insertar un registro que ya existe | 409 | {"code": 409,"error": "Duplicate entry"} |
| Este error ocurre cuando intenta enviar demasiadas solicitudes en un corto periodo de tiempo. | 429 | {"code": 429,"error": "Too Many Requests"} |