Cómo funciona el Flujo de Anuncios
Cuando el vendedor crea una nueva publicación, se activa el /canSave remoto y aquí es donde el mercado puede validar previamente el anuncio, antes de que se publique. Sin embargo, el Marketplace puede optar por no realizar esta pre-validación, en estos casos basta con que devuelva un http - 200 OK y en el "responsebody = true cual es la información que se espera para proceder con el anuncio, como se muestra en la imagen de flujo a continuación.
Después de que el vendedor haga clic para confirmar la publicación, aparecerá en la pantalla si tiene la intención de enviar esta publicación al Marketplace. Si el vendedor hace clic en "SÍ", entra en acción el /sendProduct remoto, que es responsable de enviar una notificación al mercado a través del middleware diciendo que se creó un anuncio en ANYMARKET. Si el vendedor hace clic en "NO", a publicación está en estado de espera y /sendProduct no se actova hasta que se envía la publicación en la pantalla de transmisión, seleccionando la publicación creada y haciendo clic en el botón ENVIAR.
Cada nueva creación de publicación, la información de ESTADO que se activará en el JSON de /sendProduct siempre será "UNPUBLISHED", en ese momento el mercado realizará un GET en el endpoint /skumarketplace/{id} para obtener los datos de transmisión y registrarse el anuncio, y también realizar un PUT en el endpoint /skumarketplace/{id} informándonos del STATUS de la publicación en el mercado, por ejemplo:
- Activo;
- En catalogación;
- Publicación en revisión;
Se espera que estas acciones ocurran sincrónicamente.
Sobre los tipos de Estado en ANYMARKET haga clic aquí Link.
El control remoto de /sendProduct se activará cada vez que tengamos alguma creación o actualización de la transmisión.

Actualización de Publicación
Comezando con el módulo tenemos un botón "Actualizar solo precio, stock y estado?" que existe en la pestaña "Configuración de anuncios" que están representados por los atributos en el Json de /sendProduct;
- onlySyncPrice: boolean
- onlySyncStock: boolean
- onlySyncStatus: boolean
Hacen referencia al parámetro del módulo donde el vendedor puede definir que "Actualizar soli precio, stock y estado" por lo que al recibir estos datos como "false", el Marketplace debe actualizar toda la información de registro, es decidir, consumir información como título, descripción, imágenes, etc. Para que el anuncio tenga la misma información que está en el producto dentro de ANYMARKET.
Por otro lado, cuando la información es como "true", significa que el vendedor ha definido que después de enviar el anuncio, cualquier nueva actualización debe actualizarse únicamente "Precio, stock y estado".

Si el indicador del módulo está "Habilitado" (onlySyncStatus, onlySyncPrice, onlySyncStock = true), el Marketplace no necesita activar el endpoint: /skumarketplace/{id} pero el endpoint /skumarketplace/{id}/priceStock tiene solo los valores relevante al precio por (price), precio por (discountPrice) y existencias (availableAmount);
Que contiene el responseBody:
{
"id": 62325,
"skuInMarketplace": "22222",
"idInMarketplace": "62325",
"price": 59.9,
"discountPrice": 43.93,
"availableAmount": 100
}
Si el anuncio ha tenido una actualización de stock, precio o estado, se mapearán en los siguientes atributos del json /sendProduct:
- updateStatus": boolean
- updatePrice": boolean
- updateStock": boolean
Si el anuncio ha sufrido una actualización de stock, se activará:
{
"idSkuMarketplace": 123456,
"idSkuMarketplaceMain": 1234567,
"status": "ACTIVE",
"onlySync": true,
"idSku": 251231,
"availableAmount": 1000,
"idAccount": 25,
"idProduct": 222222,
"skuInMarketplace": null,
"onlySyncPrice": true,
"onlySyncStock": true,
"onlySyncStatus": true,
"updateStatus": false,
"updatePrice": false,
"updateStock": true
}
De acuerdo con los escenarios de actualización, si la API del mercado tiene diferentes rutas para cada actualización, no necesitará activar dos rutas cada vez que se active /sendProduct, sabiendo de hecho qué actualizar de acuerdo con los parámetros enviados o incluso eliminando la necesidad de valores de comparación para realizar la actualización.
El uso del endpoint /skumarketplace/{id}/priceStock también se puede usar con fines de rendimiento, ya que se devuelven menos datos, lo que lo convierte en un endpoint ocional.
Eliminación de una publicación
DELETE /deletePublication
Este remoto se activa cuando se elimina una publicación en ANYMARKET, notificando al Marketplace que la publicación está siendo eliminada de ANYMARKET y con ello el Marketplace ya no recibirá actualizaciones de precios y stock y en consecuencia realizará la inserción de órdenes en la base.
Por lo tanto, cuando el mercado recibe la notificación, es importante que inactive el producto para la venta, evitando así ventas fuera de stock y problemas futuros.