Effettate una richiesta HTTP all'indirizzo Shopify Flow
Perché utilizzare questa opzione per le richieste HTTP
Shopify Flow include un'azione integrata denominata "Invia richiesta HTTP", ma è disponibile solo su determinati piani di Shopify. Se il Suo negozio utilizza il piano Basic, può comunque richiamare API esterne utilizzando invece Workflow Transactional Email.
È sufficiente creare la richiesta una sola volta nell’app, quindi selezionarla all’interno del workflow utilizzando l’azione “Richiesta HTTP”. Mantenere la richiesta nell’app anziché nel workflow significa anche che le credenziali non vengono mai memorizzate nella configurazione di Shopify Flow e che si ottiene gratuitamente la registrazione completa delle richieste e delle risposte.
Cosa realizzerete
Un workflow che viene eseguito ogni 10 minuti, individua i prodotti che non sono ancora presenti in Airtable e li invia a tale piattaforma.
In questo caso si utilizzano:
- Segreti per conservare il token Airtable e l’ID della base
- Richieste HTTP per definire il modello di richiesta
- L'azione "Richiesta HTTP" all'interno di Shopify Flow per eseguirla
- Cronologia per verificare il risultato
Guida video
L'intera configurazione: la creazione delle chiavi segrete, la richiesta HTTP e il workflow. Il video è privo di audio.
Prima di iniziare
- Workflow Transactional Email è installato.
- Ha accesso a Shopify Flow.
- Dispone di un ID di base Airtable e di una tabella pronta a ricevere i dati relativi ai prodotti.
- Lei dispone di un token di accesso Airtable per con le autorizzazioni appropriate.
Fase 1: Salvare le credenziali come segreti
Anziché digitare le credenziali nella richiesta, le salvi una volta come “segreti” e le utilizzi come {{ secrets.yourKeyName }}. Sono crittografate quando non sono in uso, riutilizzabili in tutte le richieste e non vengono registrate nella cronologia.
Apra "Segreti" e faccia clic su "Crea segreto".

Inserisca la chiave, il valore e una descrizione, quindi salvi.

In questo esempio vengono memorizzati due dati riservati: il token di accesso personale e l'ID della base Airtable.
Fase 2: Creare la richiesta
In questo esempio viene utilizzato l'endpoint "create-records" di Airtable, disponibile all'indirizzo .
Apra la sezione "Richieste HTTP" e faccia clic su "Crea richiesta".

Assegnategli un nome chiaro, ad esempio “Crea record di prodotto in Airtable”: sarà questo il nome che cercherete in seguito all’interno di Shopify Flow.
Impostare il metodo. Per la creazione di record in Airtable, il metodo da utilizzare è POST.
Inserisca l'endpoint nel campo URL. Il prefisso https:// è fisso, pertanto digiti il resto:
api.airtable.com/v0/{{ secrets.airTableProductsBaseId }}/Products
Questa immagine illustra come l'endpoint di Airtable sia associato alla Sua base; potrà quindi adattarlo alle Sue esigenze:

Aggiunga le intestazioni richieste da Airtable:
Authorization: Bearer {{ secrets.airtableAccessToken }}
Content-Type: application/json
Nel corpo della richiesta, utilizzi una variabile per i record in modo che Shopify Flow possa fornirli:
{
"records": {{ variables.records }}
}
Airtable prevede che tale variabile assuma la forma di un array come questo:
"records": [
{
"fields": {
"Title": "Classic White T-Shirt",
"Handle": "classic-white-tshirt",
"Product ID": 1001
}
},
{
"fields": {
"Title": "Eco-Friendly Water Bottle",
"Handle": "eco-water-bottle",
"Product ID": 1002
}
}
]
Creeremo quell’array nel workflow nel passaggio successivo.
La richiesta completa si presenta come segue:



Salvi la richiesta. Ora è possibile selezionarla nell'azione "Richiesta HTTP" in Shopify Flow.
Fase 3: Creare il workflow
Apra Shopify Flow e crei un nuovo workflow.
Selezioni un trigger basato su una pianificazione. In questo esempio, l'esecuzione avviene ogni 10 minuti a scopo dimostrativo: scelga un intervallo adeguato per l'ambiente di produzione.

Recuperi i prodotti che non sono ancora presenti in Airtable. Ai prodotti già inviati viene assegnato il tag added-to-airtable nella fase finale; pertanto, questa query li esclude. Si veda la guida di Shopify relativa agli argomenti di query all’indirizzo.

Ora formatti i dati. Il corpo della richiesta richiede una variabile di tipo records, pertanto utilizzi l’azione “Esegui codice” di Shopify Flow per organizzare i prodotti recuperati in tale array.

Si configuri la fase come segue:

La domanda:
query {
getProductData {
id
handle
title
}
}
Il codice:
export default function main(input) {
const records = input.getProductData.map((data) => {
const numericId = parseInt(data.id.replace("gid://shopify/Product/", ""));
return {
fields: {
"Product ID": numericId,
"Title": data.title,
"Handle": data.handle
}
};
});
return {
records: JSON.stringify(records)
};
}
Lo schema di output:
"The output of Run Code"
type Output {
"The message returned by the script"
records: String
}
Potete visualizzare l'anteprima del risultato sulla destra:

Aggiunga l'azione "Richiesta HTTP" fornita da questa app.

Quando richiesto, selezioni la richiesta che ha salvato - Crea record di prodotto Airtable - quindi salvi e torni al workflow.

Nel campo "Variabili" dell'azione, inserisca i record che ha appena formattato:
{
"records": "{{runCode.records}}"
}
della richiesta
Infine, si esegua un ciclo sui prodotti recuperati e li si contrassegni added-to-airtable, in modo che la prossima esecuzione non li rilevi nuovamente.

Salvi e attivi il workflow.
Fase 4: Verificare che abbia funzionato
Nella sezione “Cronologia” è possibile verificare se la richiesta è andata a buon fine e quali dati Airtable ha restituito.

Apra la voce per esaminare i dati della richiesta, i dati della risposta e i tempi.

Dalla pagina di modifica della richiesta, il pulsante “Cronologia della richiesta” consente di accedere direttamente alla cronologia filtrata in base a quella specifica richiesta.
A chi l’app non vi consentirà di telefonare
Le richieste configurate dal commerciante vengono sottoposte a un controllo di sicurezza. Le richieste rivolte a indirizzi di rete interni o privati vengono rifiutate, inclusi localhost, gli endpoint dei metadati cloud e qualsiasi indirizzo che risolva in un intervallo privato, anche tramite reindirizzamento. Se viene visualizzato un errore che menziona SSRF blocked, la destinazione è presente in tale elenco. Le richieste possono inoltre seguire al massimo 5 reindirizzamenti e la risposta è limitata a 10 MB.
Shopify Flow limita di per sé la dimensione della risposta di un’azione a 50 KB. Se la risposta di un test supera tale limite, l’applicazione blocca il salvataggio anziché consentire che la fase fallisca all’interno di un workflow attivo.
Migliori pratiche
- Utilizzi nomi chiari per le richieste, in modo che siano facili da individuare in Shopify Flow.
- Si raccomanda di memorizzare i token API come segreti, anziché inserirli direttamente nelle intestazioni.
- Concentri il corpo sulle aree di cui la destinazione ha effettivamente bisogno.
- Dopo ogni modifica, controlli la cronologia per verificare che la richiesta vada ancora a buon fine.
- Aggiunga una condizione prima della richiesta, in modo che questa non venga eseguita durante i cicli vuoti.
Correlati
- Segreti - la memorizzazione delle credenziali.
- Variabili e liquidi - il riferimento alla variabile, compresa la sovrascrittura nel corpo del codice.
- Cronologia e risoluzione dei problemi - lettura di una richiesta non andata a buon fine.

