Como crear un trigger en la entidad de datos 'Orders'

Quiero crear un trigger en la entidad de datos Orders tal cual lo puedo hacer en una entidad de datos de MasterData V1, ya he visto la documentación, pero no comprendo a que endpoint mando la el JSON con el hook.

actualmente lo que estaba haciendo es apuntando a esta ruta.

https://mitienda.vtexcommercestable.com.br/api/dataentities/orders/schemas/default

y le mando al schema 'default' este hook ( Me salen 'default' y 'vtex-v1')

"hooks": [ { "name": "send-email", "active": true, "condition": "status='ready-for-handling'", "action": { "type": "email", "provider": "default", "subject": "Sending an email with a hook!", "from": { "email": "noreply@experimentality.co", "name": "From Master Data" }, "to": [ "{!order.clientProfileData.email}" ], "cco": [ "hugo@experimentality.co" ], "replyTo": "noreply@experimentality.co", "body": "<!doctype html><body></body>{!id}</html" } } ]

pero no envia el correo.

tambien probe con un trigger

"v-triggers":[ { "name": "send-email", "active": true, "condition": "status='ready-for-handling'", "action": { "type": "email", "provider": "default", "subject": "Sending an email with a hook!", "from": { "email": "noreply@experimentality.co", "name": "From Master Data" }, "to": [ "hugo@experimentality.co" ], "replyTo": "noreply@experimentality.co", "body": "<!doctype html><body>{!id}</body></html>" }, "retry": { "times": 5, "delay": { "addMinutes": 30 } } } ]

pero tampoco...

¿ Que estoy haciendo mal ?

EDIT

He logrado hacer un POST con la ayuda del personal de vtex. mi error estaba en la condición del objeto

"condition": "status='ready-for-handling'"

era sin comillas, también recomiendan el uso de v-trigger y no hooks.

  1. La ruta a donde se mandan los trigger es efectivamente la de los schemas.
  2. el objeto que se debe enviar del trigger para el caso del un HTTP request es este
{ "properties": {}, "v-triggers": [ { "name": "send message", "active": true, "condition": "status=canceled", "action": { "type": "http", "uri": "https://www.larutademiendpoint.com", "header": { "content-type": "application/json" }, "method": "POST", "body": { "message": "Hola Mundo" } } } ] }

Los estados de las ordenes pueden verse en esta ruta https://help.vtex.com/en/faq/from-to-for-order-status

con el trigger de enviar un correo he tenido problemas, pero puede ser por mi configuración SMTP

Hola @Hugo Laguna HugoLaguna​ , este tema de los hooks y Master Data V2 es un poco nuevo para nosotros, así que no hay casi nada aqui en la comunidad todavía. Le sugiero crear un ticket para VTEX, si posible, para que te ayuden con más precision.

Pues es verdad, no se me había ocurrido utilizar los ticket para esta información. Muchas gracias! @Eduardo Gomes​

@Hugo Laguna HugoLaguna​ Buenos días! De nada! De cualquier modo, este es un tema que a mí me interesa mucho, así que voy a investigarlo y mantenemos contato.

Hola @Hugo Laguna HugoLaguna​

Pudiste resolver esta duda? Tambien necesito ejecutar un triggers cuando se crea un nuevo pedido, donde agrego mi json hook?

@Juan Siesquen​ Nada sigo sin información, estoy intentando por medio de un Ticket, pero al parecer MasterData V2 esta en BETA entonces no es muy recomendable su uso.... si necesitas hacer un desarrollo sobre esto, casi te recomiendo uses el API de 'Feeds' y montes otro sistema aparte en firebase o amazon para consumirlo, a VTEX no se le da muy bien implementar features si no mira nada mas vtex.io sigue siendo riesgoso hacer un projecto en el. Con 'Shopify' un evento tan simple e importante como el de una orden pagada se hace con solo 3 click en el admin....

@Juan Siesquen​ @Eduardo Gomes​ edite el post, con una solucion para el POST, aun tengo problemas con el correo, pero es un avance.

Hola @Hugo Laguna HugoLaguna​.

Yo uso Postman, lo que te entiendo es que esa estructura (objeto) JSON debo enviarlo dentro de un "Body request" aplicando el verbo POST al endpoint:

https://mitienda.vtexcommercestable.com.br/api/dataentities/orders/schemas/default

??

Yo pensé que ese objeto JSON (incluido "v-triggers") lo agregaba al body request de cada acción de un "Realizar uma requisição HTTP" incluido cuando creas un trigger.

Visto esto, ¿Cómo me podría apoyar en lo que requiero? Ayúdame con tu sugerencia..

En mi caso, necesito iterar entre los items de un pedido recién ingresado (estado completado) para identificar un producto dentro de estos items y si lo encuentro, registrar el orderId y el refId del producto detectado en otra nueva entidad del MB.

¿Podré hacer ello con un trigger sobre una entidad que tengo como "Order Info (OI)"? que según consulto va agregando un registro por cada nuevo pedido.

Y una última pregunta: ¿En que casos entonces nos ayuda el hook?

Gracias Hugo!

@Juan Siesquen​ mejor te explico desde el principio.

primero con POSTMAN, configurate el enviroment con el 'API-KEY' y 'API-Token', te descargas la documentación de MasterData V2.

eso que creo que ya lo tienes, luego vas en este caso a la ruta que pones ahi.

https://mitienda.vtexcommercestable.com.br/api/dataentities/orders/schemas/{{default}}

{{default}} = al nombre del schema, podemos tener muchos schemas, los que quieres, en cada uno de ellos configura un trigger diferente.

yo en mi caso puse

https://mitienda.vtexcommercestable.com.br/api/dataentities/orders/schemas/trigger-1

y le mande este JSON en el body 'RAW' con un trigger que haga un http-request

{ "properties": {}, "v-triggers": [ { "name": "send message", "active": true, "condition": "status=canceled", "action": { "type": "http", "uri": "https://www.larutademiendpoint.com", "header": { "content-type": "application/json" }, "method": "POST", "body": { "message": "Hola Mundo" } } } ] }

Captura de pantalla 2018-12-06 a la(s) 2.16.16 p. m.

luego cree otro con el nombre de 'trigger-2' y puse otro JSON pero con el de envio de correo, y asi. Descarga la documentacion tan cual de MasterData v2, para la configuración correcta.

Lo de los Hooks mejor ignoralo, sirve para lo mismo pero parece ser mas viejo, mejor v-trigger

@Hugo Laguna HugoLaguna​ Como estás?

Justo ahora quisiera implementar la funcionalidad de que cuando un pedido esté en estado "payment approved" dispare un trigger que tengo configurado en el master data para que haga una petición http a un endpoint que necesita recibir cierta información

He visto tu necesidad y es muy parecida a la mia

Tengo varias inquietudes

  1. Como llegaste a esta url? https://{{accountName}}.vtexcommercestable.com.br/api/dataentities/orders/schemas/ ya que estoy viendo la documentación del master data y de orders management y en ningún lado veo esa estructura
  2. Como supiste que existia una entidad de datos para las ordenes?
  3. Como se sabe que la condition toma directamente el estado de la orden?
  4. Como puedes ver copié el mismo body que tu pero no logro comprender es como es que el sistema reconoce el cambio del estado de la ordenbody request

hola @Sebastián Plazas​ perdona la demora

  1. Como llegaste a esta url? https://{{accountName}}.vtexcommercestable.com.br/api/dataentities/orders/schemas/ ya que estoy viendo la documentación del master data y de orders management y en ningún lado veo esa estructura:

  1. Como supiste que existia una entidad de datos para las ordenes?
  • Existe solo en MasterData V2, o por lo menos solo puedes acceder a ella con esta API
  1. Como se sabe que la condition toma directamente el estado de la orden?

  1. Como puedes ver copié el mismo body que tu pero no logro comprender es como es que el sistema reconoce el cambio del estado de la orden
  • prueba cambiando "condition" por "window-to-cancel" , yo he tenido problema con los estados, no todos son tan efectivos, por ejemplo en mi caso "ready-for-handly" no me funciona.