Restituire lo stato dell'ordine al ricevimento del webhook

Rispondere a una richiesta HTTP indicando lo stato di pagamento e di evasione di un ordine. Un chatbot, un servizio di assistenza o un portale clienti invia un numero d’ordine e riceve lo stato nella stessa risposta.

Un trigger da Workflow Webhooks e la relativa azione “Risposta al webhook di ritorno”; non sono necessarie altre app.

Il workflow in Shopify Flow: Restituzione dello stato dell'ordine alla ricezione del webhook
Il workflow completo così come appare in Shopify Flow.

Di cosa ha bisogno

Un webhook su Workflow Webhooks con la risposta sincrona attivata; si veda Risposta sincrona e questa mappatura del payload. Si veda Mappatura del payload e variabili di flusso.

Campo Cosa associarvi
fieldOne Il numero d'ordine, ad esempio #1001

Una chiamata al webhook si presenta quindi come segue:

bash
curl -X POST https://<your webhook URL> \
  -H "Content-Type: application/json" \
  -d '{"orderNumber": "#1001"}'

# Response:
# {"orders": [{"name": "#1001", "financialStatus": "PAID", "fulfillmentStatus": "UNFULFILLED"}]}

Scoprite il workflow

  1. Scarichi il file .flow allegato in fondo a questa pagina.
  2. Nella dashboard di Shopify, apra la sezione "Shopify Flow", faccia clic su "Importa" e selezioni il file.
  3. Verifichi i passaggi, quindi faccia clic su “Attiva workflow”.

Il file è stato esportato direttamente da Shopify Flow. Non lo modifichi manualmente; modifichi il workflow in Shopify Flow dopo averlo importato.

Come funziona

  1. Il trigger "Sync Webhook" avvia il workflow mentre il chiamante attende una risposta e gli trasmette invocationId e i campi mappati.
  2. La funzione "Get order data" ricerca l'ordine tramite la query name:{{fieldOne}} e conserva al massimo un risultato.
  3. La risposta del webhook di ritorno invia un oggetto {"orders": [...]} al chiamante, contenente il nome dell'ordine, lo stato finanziario e lo stato di evasione. L'elenco risulta vuoto qualora non vi siano ordini corrispondenti.

Lo renda suo

  • Aggiunga ulteriori campi relativi all'ordine al corpo della risposta, ad esempio {{order.totalPriceSet.shopMoney.amount}}.

Prossimi passi