Esegui codice

L'azione Esegui codice esegue JavaScript. Puoi trasferire i dati dei passaggi precedenti nel flusso di lavoro come input per l'azione Esegui codice e utilizzare i valori restituiti nei passaggi successivi.

Campi

L'azione Esegui codice contiene i seguenti campi.

Campi utilizzati nell'azione Esegui codice.
Campo Descrizione
Input Obbligatorio. Una query GraphQL per utilizzare i dati dei passaggi precedenti come input per l'azione Esegui codice.
Output Obbligatorio. Una rappresentazione dei dati da restituire dall'azione, definita nello Schema Definition Language (SDL) di GraphQL.
Codice Obbligatorio. Il JavaScript che verrà eseguito dall'azione Esegui codice.

Dati di input

I dati di input possono essere trasferiti dai passaggi effettuati prima dell'azione Esegui codice. Per includere tali dati puoi scrivere una query GraphQL nel campo Input. I dati restituiti dalla query saranno disponibili come argomento input della funzione contrassegnata con export default. Non è necessario gestire il processo di spostamento o utilizzare edges e nodes nella query, poiché Flow li gestisce per te.

Un esempio di input che ottiene una nota sull'ordine e il titolo di una voce:

{
  order {
    note
    lineItems {
      title
    }
  }
}

Questi dati vengono convertiti in una variabile input che può essere utilizzata nel codice:

export default function main(input) {
  // input.order.note
  // input.order.lineItems[0].title
}

Gli input possono anche essere strutturati nella firma della funzione:

export default function main({order}) {
  // order.note
  // order.lineItems[0].title
}

Dati di output

L'azione Esegui codice può restituire dati personalizzati. Per definire il tipo di dati che il codice restituirà, utilizza il campo Output e il linguaggio Schema Definition Language (SDL) di GraphQL. Ad esempio, per restituire una stringa denominata giftMessage e un numero chiamato totalGifts:

type Output {
  "The message to include in the gift"
  giftMessage: String!
  "The total number of gifts"
  totalGifts: Int!
}

I commenti sono facoltativi, ma verranno utilizzati per descrivere i dati nell'interfaccia utente di Flow. Per restituire tali dati nel codice JavaScript, restituisci un oggetto corrispondente al tipo:

export default function main(input) {
  // your code
  return {
    giftMessage: 'Hello',
    totalGifts: 1,
  };
}

Puoi anche definire un tipo personalizzato per restituire dati più complessi. Ad esempio, per restituire un tipo chiamato Gift contenente una stringa denominata message e un numero chiamato amount:

type Output {
  "The gift to send"
  gifts: [Gift!]!
}

type Gift {
  "The message to include in the gift"
  message: String!
  "The total number of gifts"
  amount: Int!
}

Per accedere a tali dati nei passaggi successivi a questa azione, utilizza la variabile denominata Esegui codice, che verrà digitata in base allo schema Output definito nella configurazione dell'azione Esegui codice. Puoi utilizzare questa variabile sia nelle condizioni che nelle azioni.

Esempio

Esempi per l'azione Esegui codice sono disponibili nel repository degli esempi Flow.

Limitazioni

L'azione Esegui codice presenta le seguenti limitazioni:

  • Il codice non può importare moduli.
  • Il codice non può effettuare chiamate http (fetch).
  • Il codice non può utilizzare console.log.
  • Non si possono utilizzare le funzioni casuali e basate sull'orario. I dati relativi alla data, ad esempio scheduledAt o createdAt, possono essere inseriti come input.

Inoltre, vengono applicati i seguenti limiti:

  • La query per i dati di input ha un limite di 5.000 caratteri.
  • Lo schema per i dati di output ha un limite di 5.000 caratteri.
  • Il payload dei dati di output ha un limite di 50 KB.
  • Il codice non può superare i 50.000 caratteri.
  • La durata totale dell'esecuzione ha un limite di 5 secondi.
  • L'utilizzo della memoria ha un limite di 10 MB.

Piano di sviluppo

Il team Flow intende aggiungere funzionalità all'azione Esegui codice nel tempo. La tabella seguente indica i miglioramenti programmati e le date di lancio previste.

Programma di sviluppo per i miglioramenti dell'azione Esegui codice
Miglioramento Descrizione Consegna prevista
Correzioni di bug Correzioni di bug e pulizia Febbraio 2024
Registrazione Utilizza "console.log" per eseguire l'output dei dati nel registro di esecuzione per la risoluzione dei problemi. Inizio aprile 2024
Chiamate API esterne Utilizza il recupero di JavaScript per chiamare le API. 3° trimestre 2024

Feedback

L'azione Esegui codice è un nuovo tipo di passaggio in Shopify Flow. In caso di feedback e domande, commenta questo articolo della community di Flow.

Sei pronto per iniziare a vendere con Shopify?

Provalo, è gratis