Editar el listado V2
SetListing
Descripción
Aviso importante
Recomendamos manejar los modificadores usando la forma alternativa
Que es más fácil de mantener como integrador, y es la sintaxis que soporta el manejo de modificadores de segundo nivel.
Nos permite hacer lo mismo que /setListing pero con la capacidad adicional de operar menús.
- Método:
setListingV2 - Parámetros:
deleteOldContent: Si es verdadero, se eliminará todo el contenido actual y se reemplazará por el que se esta subiendo (Importante:las publicaciónes y los componentes del website que utilizan los productos eliminados, perderan las referencias y deben ser reconfigurados desde el admin de la marca)maintainOrder: Si es verdadero, mantendra el orden de los productos creados, de modo que se muestren en las vistas en el mismo orden en el que se enviarón por este metodo. Esta opción solo se puede utilizar sideleteOldContentes verdadero, de lo contrario retornara un error.menus: Un arreglo con losMenu.menuId: ID del menúname: El nombre del menú. Es interno, los clientes no lo ven.priority: Un número, mayor el número, mayor la prioridadstoresIds: En que locales está disponible este menú. Si es que acepta todos, lo mejor es dejarlo vacíochannels: Un arreglo, con los tipos de pedidos que acepta este menu. Si es que acepta todos, lo mejor es dejarlo vacío. Las opciones son:web-deliveryweb-go,web-serve,orion-delivery,orion-go,orion-serve,app-delivery,app-goyapp-serve.daysBefore: Cuantos días de anticipación se necesitan para activar este menú.schedule: El horario de disponibilidad. ScheduleexternalId: ID externo del menu, se usa para asociar productos y modificadores, este campo es obligatorio.
products: Un arreglo de los productosproductId: El ID del producto en Justo. Si es que quieres crear un nuevo producto puedes dejar esto en blanconame: Nombre del productodescription: Descripción del productourl: URL completa para acceder al producto (este parámetro no es posible configurarlo y no es considerado al guardar la data del producto)partialUrl: URL parcial del producto, no contiene el dominio (este parámetro no es posible configurarlo y no es considerado al guardar la data del producto)categoriesNames: Un arreglo con los nombres de las categoríasmodifiersNames: Un arreglo con los nombres de los modificadores. Debe ser igual al campointernalNamedel modificadorexternalId: ID externo de este productopriority: Un número entero. Entre más grande sea el valor, mayor será la prioridad en la que se mostrará el producto. SimaintainOrderes true, este campo se omitenicknames: Un arreglo con los nombres alternativos de este productoimages: Un arreglo con las URLs de las imagenes de este producto. Puedes usar cualquier URL externa y se va a subir la imagen a los servidores de Justo. El tamaño máximo para las imagenes es de 10mb. Si es que quieres dejar el producto sin imágenes, puedes enviar un arreglo vacío (para no modificar se puede ignorar el parámetro o enviarnull)menus: Información sobre los precios. Puedes obtener los menus de esta marca usando el métodomenuexternalId: ID externo del menu, sirve para hacer referencia un menú (obligatorio)price: Precio del producto en este menúdiscount: Precio en descuento de este producto. No es lo mismo0quenull(si puede haber un producto gratis)available: Si es que esta disponible este producto en el menú
informativeStamps: Un arreglo con sellos informativos de productos. (Deben estar escritos con Mayúscula)VEGAN: VeganoVEGETARIAN: VegetarianoGLUTEN_FREE: Sin glutenLACTOSE_FREE: Sin lactosaSUGAR_FREE: Sin azúcarCACAO_100: 100% cacaoRECYCLABLE: ReciclableSPICY: PicanteKETO: KetoRECYCLED: RecicladoHANDMADE: Hecho a manoOLDER_THAN_18: Mayor de 18CRUELTY_FREE: No testeado en animales
filterNames: Un arreglo con nombres de los filtros [filterName] que aplican para hacer una búsqueda rápida del producto.
modifiers: Un arreglo con los modificadoresmodifierId: El ID del modificador en Justo. Si es que quieres crear un nuevo modificador puedes dejar esto en blanconame: Nombre del modificadordescription: Descripción del modificadorshortName: El nombre corto del modificadorinternalName: Un nombre interno que no ven los compradores. Sirve para diferenciar modificadores con el mismo nombre y para asociar los modificadores a los productosoptional: Es opcional elegir alguna opción de este modificadormin: Mínimo de opciones a seleccionar. Si es que necesitas que sea requerido, debes marcar que no sea opcionalmax: Dejar en blanco para infinitoexternalId: ID externo del modificadoroptions: Un arreglo de opciones, cada una con las siguientes propiedadesname: Nombre de la opciónmax: Cuantas veces se puede escoger esta opción dentro del modificadorexternalId: El identificador que usen en sus sistemas para esta opción, optativomenus: Información sobre los precios. Puedes obtener los menús de esta marca usando el métodomenumenuId: El ID del menúexternalId: ID externo del menu, sirve para hacer referencia un menú (obligatorio)price: Precio de la opción en este menúdiscount: Precio en descuento de esta opción. No es lo mismo0quenull(sí puede haber un option gratis)available: Si es que está disponible este option en el menú
categories: Un arreglo de las categoríasexternalId: El identificador que usen en sus sistemas para esta categoría, obligatorioname: Nombre de la categoríaindex: El orden (de menor a mayor) que tendrá esta categoría
filters: Arreglo de los filtros que se quieran crear o modificar.filterId: El ID del filtro en Justo. Si es que quieres crear un nuevo filtro puedes dejar este campo en blancofilterName: Nombre del filtrotype: El tipo del filtro
Forma alternativa de agregar modificadores
Existe una segunda forma para crear modificadores y opciones de modificadores, en este caso las opciones se ingresan como objetos separados y pueden ser asociados a distintos modificadores. Esto es útil cuando una opción se repite en múltiples modificadores y deseas que, al agotar esta opción, se deshabilite en todos los modificadores que la usan.
(Notar que, en el caso anterior, cada option dentro de un modificador tendrá Ids distintos, y será necesario agotarlos todos aunque sean lo mismo)
Te recomendamos usar solo una de las dos formas para gestionar todos tus modificadores en Justo.
Uso
En este caso, agregar un campos options al mismo nivel que productos
optionsname: Nombre de la opciónmax: Cuantas veces se puede escoger esta opción dentro del modificadorexternalId: El identificador que usen en sus sistemas para esta opción, optativo.menus: Información sobre los precios. Puedes obtener los menús de esta marca usando el métodomenuexternalId: ID externo del menu, sirve para hacer referencia un menú (obligatorio)price: Precio de la opción en este menúdiscount: Precio en descuento de esta opción. No es lo mismo0quenull(sí puede haber un option gratis)available: Si es que está disponible este option en el menú
requiredOptionsIds: Arreglo opcional de Ids de options que son requeridos para mostrar esta opción. Al incluir este campo, la opción se clasificará como de segundo nivel. Esto implica que la opción solo estará disponible si el usuario ha seleccionado previamente todas las opciones requeridas en este campo. Se pueden especificar IDs de justo o externalId.
y en modifiers, en vez de incluir el campo options, incluir un campo optionIds que sea un arreglo de Ids de opciones (puede ser con id justo, o externalId)
{
"modifiers": [
{
"optionIds": ["id1", "id2"]
}
]
}
Notas
- Los filtros trabajan en tuplas (
type:filterName), en donde todos los filtros del mismo tipo se agreguparán para filtrar productos.
Llamada
POST /api/v1/setListing
Content-Type: application/json
{
"products": <ListingProducts>,
"modifiers": <ListingModifiers>,
"categories": <ListingCategories>,
"filters": <ListingFilters>,
"options": <ListingOptions>,
"deleteOldContent": false
}
Respuesta
{
"status": "ok"
}