Crear un producto con precio usando API pública

TABLA DE CONTENIDO

  1. Introducción
  2. Productos
    1. Tipos de productos
      1. Productos con precio
      2. Productos con variantes
  3. Crear un producto usando una API pública
    1. Autorización
    2. Creación de producto
      1. Crear producto
      2. Ejemplo de carga útil para producto con precio:
      3. Ejemplo de carga útil para producto con variantes:
      4. Crear precio para un producto
      5. Ejemplo de carga útil para el precio de un producto con variantes
    3. Agregar imagen a una variante a través de API pública
      1. Ejemplo de carga útil para la actualización de medios de producto con PriceIds
  4. Conclusión

Introducción

Este artículo tiene como objetivo principal guiar a los usuarios sobre cómo crear un producto utilizando la API pública de Centryka. También detalla los casos y los diversos tipos que pueden aprovechar al crear un producto.

Productos

Los productos son una de las entidades principales en Centryka mediante las cuales los usuarios pueden vender los productos que desean vender a través de muchas formas de canales de venta, utilizando tiendas de comercio electrónico, facturas, estimaciones y más.

Tipos de productos

En Centryka, los productos son principalmente de dos tipos: 

  • Productos con precio
  • Productos con variantes

Productos con precio

Este tipo de productos son simples y no tienen variantes. Cualquier producto que no requiera variantes o que solo tenga una clasificación de variante se puede crear en este formato. Un buen ejemplo sería un póster con diferentes tamaños.

Productos con variantes

Este tipo de productos son aquellos que tienen múltiples variaciones dentro de un mismo producto. Un ejemplo ideal sería una camiseta, que puede estar disponible en varios colores y tallas.

Crear un producto usando una API pública

Autorización

Para realizar operaciones CRUD (Crear, Leer, Actualizar y Eliminar) en entidades relacionadas con Centryka mediante la API pública, necesitamos un token de acceso.

Creación de producto

Para crear un producto vamos a utilizar las siguientes API públicas

  • Crear un producto
  • Crear un precio para el producto

Se recomienda seguir el orden del contenido para crear un Producto.

Crear producto

Primero, necesitamos crear un producto usando la API “Crear un producto” . Veamos las propiedades básicas necesarias para la creación de un producto.

  • nombre – nombre del producto
  • locationId: para qué subcuenta se creó este producto
  • Descripción: breve descripción del producto que será útil en los canales de venta para exhibir el producto.
  • productType – lo mantendremos comoDIGITAL 
  • imagen – Imagen destacada que se mostrará de forma predeterminada al cliente final
  • availableInStore: si un producto debe estar disponible para tiendas de comercio electrónico o no
  • medios – matriz
    • id – identificador único para los medios
    • título – título para los medios
    • url – URL de origen del medio
    • tipo: actualmente solo se admite la imagen
    • isFeatured: configúrelo truesi es necesario mostrarlo al cliente final
  • Variantes: solo se requiere si está intentando crear un producto variante
    • id – ID único para la variante
    • nombre – Nombre de la variante
    • opciones – matriz
      • id – ID único para la opción de variante (será necesario para la creación del precio)
      • nombre – nombre de la opción

Ejemplo de carga útil para producto con precio:

{ 
"name": "Unidad de memoria de alta velocidad",
"description": "Una unidad de memoria de alta velocidad con las últimas funciones de seguridad y un diseño espectacular",
"locationId": "<sub-account_ID>",
"availableInStore": true,
"productType": "PHYSICAL",
"image": "https://via.placeholder.com/150",
"medias": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"title": "Unidad de memoria de alta velocidad",
"url": "https://via.placeholder.com/150",
"type": "image",
"isFeatured": true
}
]
}

Ejemplo de carga útil para producto con variantes:

{ 
"name": "Camiseta",
"description": "Camiseta de última generación con el diseño y la calidad más actuales",
"locationId": "<sub_account_id>",
"availableInStore": verdadero,
"productType": "FÍSICO",
"imagen": "https://via.placeholder.com/150",
"medias": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"title": "Camiseta",
"url": "https://via.placeholder.com/150",
"type": "imagen",
"isFeatured": verdadero
}
],
"variants": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Color",
"options": [
{
"id": "550e8400-e29b-41d4-a716-446655440002",
"nombre": "Rojo"
},
{
"id": "550e8400-e29b-41d4-a716-446655440001",
"nombre": "Azul"
},
{
"id": "550e8400-e29b-41d4-a716-446655440003",
"nombre": "Verde"
}
]
},
{
"id": "550e8400-e29b-41d4-a716-446655440111",
"nombre": "Tamaño",
"opciones": [
{
"id": "550e8400-e29b-41d4-a716-446655440112",
"nombre": "Pequeño"
},
{
"id": "550e8400-e29b-41d4-a716-446655440113",
"nombre": "Mediano"
},
{
"id": "550e8400-e29b-41d4-a716-446655440114",
"nombre": "Grande"
}
]
}
]
}

Nota: Para productos variantes, tenga en cuenta los identificadores de las opciones, ya que desempeñarán un papel importante al crear el precio.

Al crear un producto, recibiremos una respuesta con la propiedad ” _idproductId” (identificador del producto creado). Esta propiedad se utilizará para determinar el precio del producto.

Crear precio para un producto

Usaremos la API “Crear precio para un producto” para crear un precio. Estas son las propiedades básicas necesarias para crear un precio.

  • producto – Id del producto para el cual se crea
  • locationId – Id. de subcuenta
  • nombre – Nombre del Precio 
  • tipo – Como también admitimos productos recurrentes, los valores disponibles son one_timeyrecurring 
  • moneda – Moneda del Precio 
  • cantidad – Cantidad relevante para la moneda
  • Descripción – Descripción del Precio
  • variantOptionIds: obligatorio para un producto con variantes
    • Por ejemplo, si la combinación de variantes es Red/Small, entonces los valores de variantOptionIds deben ser los siguientes: 
  ["550e8400-e29b-41d4-a716-446655440002","550e8400-e29b-41d4-a716-446655440112"]
  • donde 550e8400-e29b-41d4-a716-446655440002es para Red  y 550e8400-e29b-41d4-a716-446655440112  es paraSmall 
  • Para productos con variantes, se requieren los variantOptionIds para representar el producto correctamente; la ausencia de esta propiedad representará las combinaciones de variantes incorrectamente.
  • trackInventory: si es necesario realizar un seguimiento del inventario, configúrelo entrue 
  • availableQuantity – Cantidad disponible, aplicable si trackInventory estrue 
  • allowOutOfStockPurchases – Permite compras del producto incluso si está agotado, solo aplicable si trackInventory está activo.true 
  • sku – SKU de la variante de precio (o)
  • isDigitalProduct – true  si es un producto digital
  • shippingOptions: propiedades de envío para PHYSICALel producto (serán útiles para integraciones de envío)
    • peso – opciones de peso
      • valor – valor del peso
      • Unidad: unidad métrica. Valores admitidos:kg, g, lb, oz 
    • dimensiones – dimensiones del Producto Físico
      • altura – número
      • ancho – número
      • longitud – número
      • unidad – unidad admitida para dimensiones – Valores admitidos –cm, in, m

Ejemplo de carga útil para precio simple (sin variantes):

    { 
"producto": "66b6021be68f7a98102ba272",
"locationId": "<sub_account_id>",
"nombre": "256 GB",
"tipo": "único",
"moneda": "USD",
"cantidad": 100,
"descripción": "256 GB de almacenamiento",
"sku": "PS-256GB",
"isDigitalProduct": falso,
"opcionesdeenvío": {
"peso": {
"valor": 100,
"unidad": "g"
},
"dimensiones": {
"largo": 10,
"ancho": 10,
"alto": 10,
"unidad": "cm"
}
}
}

Ejemplo de carga útil para el precio de un producto con variantes

{ 
"producto": "66b6021be68f7a98102ba272",
"id_de_ubicación": "<id_de_subcuenta>",
"nombre": "Rojo/Pequeño",
"tipo": "único",
"moneda": "USD",
"monto": 100,
"descripción": "Rojo/Pequeño",
"sku": "PS-RED-SMALL",
"isDigitalProduct": falso,
"id_de_opción_de_variante": ["550e8400-e29b-41d4-a716-446655440002","550e8400-e29b-41d4-a716-446655440112"],
"opciones_de_envío": {
"peso": {
"valor": 100,
"unidad": "g"
},
"dimensiones": {
"largo": 10,
"ancho": 10,
"altura": 10,
"unidad": "cm"
}
}
}

Nota: Los identificadores de opciones de variante son necesarios para la correcta representación de las variaciones del producto.

Agregar imagen a una variante a través de API pública

Esta función solo está disponible para productos de tipo variante, no para productos de tipo precio. Tras crear el precio de un producto, en la respuesta obtendremos el ID interno del precio. Con este ID, actualizaremos las imágenes para variantes específicas. Con los ID de precio recibidos, actualizaremos el producto de nuevo con la siguiente carga útil. 

Ejemplo de carga útil para la actualización de medios de producto con PriceIds

En la carga útil del producto, habrá una matriz para los medios, y cada matriz de medios cuenta con una propiedad llamada “priceIds” que, a su vez, es una matriz. Al asignar los priceIds respectivos, los medios se asignarán a variantes automáticamente. 

{
  "nombre": "Camiseta",
  "description": "Camiseta de última generación con el último diseño y calidad",
  "locationId": "<id_de_subcuenta>",
  "disponibleEnTienda": verdadero,
  "tipoProducto": "FÍSICO",
  "imagen": "https://via.placeholder.com/150",
  "medios": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "título": "Camiseta",
      "url": "https://via.placeholder.com/150",
      "tipo": "imagen",
      "priceIds": ["<Id_de_precio_creado>"],
      "isFeatured": verdadero
    }
  ],
  "variantes": [
   {...datos de variantes existentes}
  ]
}

A partir de ahora, solo admitimos una imagen asignada a un priceId; asignar varios priceIds a una sola imagen causará problemas al 

representar los productos.

Conclusión

Usando las API mencionadas, pudimos crear un producto físico básico de un solo uso con un precio simple y variantes. La flexibilidad no termina aquí, ya que Centryka también admite productos recurrentes. Puede consultar la documentación detallada de la API de precios y usar las propiedades específicas para productos recurrentes.