Executar código
A ação Run code (Executar código) executa JavaScript. É possível enviar dados gerados em etapas anteriores do fluxo de trabalho como entrada na ação Run code (Executar código) e receber como saída os valores a serem usados nas etapas posteriores.
Nesta página
Campos
A ação Run code (Executar código) contém os campos a seguir.
Campo | Descrição |
---|---|
Entrada | Obrigatório. Uma consulta GraphQL para usar dados de etapas anteriores como entrada na ação Run code (Executar código). |
Saída | Obrigatório. Uma representação dos dados a serem retornados pela ação, na linguagem de definição de esquema (SDL, na sigla em inglês) do GraphQL. |
Código | Obrigatório. O JavaScript que a ação Run code (Executar código) vai executar. |
Dados de entrada
É possível usar dados de entrada de etapas que ocorrem antes da ação Run code ("Executar código"). Para incluí-los, escreva uma consulta GraphQL no campo Definir entradas. Os dados retornados pela consulta ficarão disponíveis como o argumento input
para a função marcada com export default
, chamada de main
por convenção.
A consulta inserida é para dados do ambiente Flow, e não para a API Shopify Admin. Por isso, não é possível inserir uma consulta da Shopify nos dados de entrada. Além disso, o Flow manipula edges
e nodes
na consulta, então você não precisa adicioná-los nem usar outra sintaxe de paginação.
Confira um exemplo de entrada que providencia as observações do pedido e o título de um item de linha:
Esses dados são convertidos em uma variável input
que pode ser usada no código:
Também é possível desestruturar as entradas na assinatura da função:
Metacampos
Para acessar valores de metacampo único na ação "Run code", primeiro adicione o metacampo aos dados do ambiente do Flow. Isso pode ser feito em qualquer ação ou estado que não seja "Run code". Por exemplo, você pode adicionar uma ação Saída de log e depois seguir as instruções para adicionar o metacampo.
Depois que um metacampo tiver sido adicionado ao ambiente de fluxo de trabalho, você poderá acessá-lo em "Run code". Por exemplo, suponha que você adicionou um metacampo de pedido com o alias de giftMessage
. Em seguida, acesse-o na consulta de entrada:
Dados de saída
A ação Run code (Executar código) pode retornar dados personalizados. Para definir o tipo de dados que o código vai retornar, use o campo Definir saídas e a linguagem de definição de esquema (SDL, na sigla em inglês) do GraphQL. Por exemplo, para retornar uma string giftMessage
e um número totalGifts
:
Os comentários são opcionais, mas serão usados para descrever os dados na IU do Flow. Para gerar a saída dos dados no código JavaScript, retorne um objeto que coincida com o tipo:
Também é possível definir um tipo personalizado para retornar dados mais complexos. Por exemplo, para retornar um tipo Gift
que contenha uma string message
e um número amount
:
Para acessar esses dados nas etapas posteriores à ação, use a variável Run code (Executar código), que será digitada de acordo com o esquema Output
definido na configuração da ação Run code (Executar código). Essa variável pode ser usada em condições e em ações.
Console.log
Use o console.log
para enviar dados ao log de execução do fluxo de trabalho do Flow para fins de solução de problemas. A saída ficará visível no log de execução do fluxo de trabalho. Por exemplo, são válidos:
Não foi possível usar console.info
, console.error
ou outras funções na ação Run code (" Executar código").
Exemplo
Confira exemplos da ação "Run code" (Executar código) no repositório de exemplos do Flow.
Limitações
A ação Run code (Executar código) tem limitações, como:
- A ação "Run code" ("Executar código") é compatível com JavaScript ECMA2020 e não aceita APIs NodeJS, CommonJS ou de importação de módulos.
- O código não pode fazer chamadas HTTP (
fetch
). - Não é possível usar funções que dependem de aleatoriedade ou do tempo. Os dados de data, como
scheduledAt
oucreatedAt
, podem ser passados como entrada. - Console.log não faz login no console do navegador.
- Não é possível adicionar alias de metacampo diretamente na ação "Run code". Veja a seção de metacampos para saber como conseguir isso.
Além disso, estes limites são aplicados:
- A consulta de dados de entrada é limitada a 5 mil caracteres.
- O esquema de dados de saída é limitado a 5 mil caracteres.
- A capacidade de pagamento e a saída de Console.log são limitadas a 50 kB combinados.
- O código não pode ter mais de 50 mil caracteres.
- A duração total da execução é limitada a 5 segundos.
- O uso de memória é limitado a 10 MB.
Roteiro
A equipe do Flow tem planos para adicionar funcionalidades à ação Run code (Executar código) ao longo do tempo. Confira na tabela a seguir as melhorias programadas e as estimativas para datas de entrega.
Melhoria | Descrição | Entrega prevista |
---|---|---|
Registro | Use `console.log` para exibir dados no log de execução para fins de solução de problemas. | Feito. |
Chamadas externas à API | Use a busca por JavaScript para chamar APIs. | 1º trim. de 2025 |
Feedback
A ação "Run code" (Executar código) é um novo tipo de etapa no Shopify Flow. Caso você queira dar feedback ou fazer perguntas, comente nesta postagem na comunidade do Flow.