Saber que algo mudou raramente é suficiente. Um fluxo de trabalho geralmente precisa saber como estava antes: se o preço baixou ou subiu, em quanto, qual tag foi adicionada, qual era o valor do metacampo ontem. Esta versão disponibiliza os valores antigo e novo em todo o aplicativo e permite que um gatilho personalizado inicie um fluxo de trabalho mesmo quando nada aconteceu.
Valores antigos e novos, em todos os lugares
- Os gatilhos de metacampo agora mantêm o valor anterior. Cada gatilho de metacampo (genérico, produto, variante, pedido, cliente) passa ao Shopify Flow
Metafield.previousValue, além de Metafield.value. Esse campo fica vazio quando o metacampo acaba de ser criado. Consulte Gatilhos de metacampo.
- As alterações de preço, preço unitário e custo vêm acompanhadas dos números. As condições de fluxo não permitem operações aritméticas; portanto, as notificações “Alteração no preço da variante”, “Alteração no preço unitário da variante” e “Alteração no custo da variante do produto” agora também fornecem
delta (novo menos antigo), percentChange e direction (aumento, diminuição, inalterado). “O preço caiu mais de 10%” é agora uma condição, sem código.
- As atualizações de produto, pedido e cliente informam o que foi alterado. Anteriormente, elas indicavam apenas que o registro havia sido atualizado. Agora, elas apresentam
changes: a lista dos campos alterados e, para cada um deles, o valor antigo e o novo. Os campos monitorados são: título, descrição, status, tags, fornecedor, tipo e identificador para produtos; status de pagamento, status de processamento, itens de linha de pedido, tags, nota e detalhes adicionais para pedidos; tags, nota e estado da conta para clientes. Valores longos são abreviados. A lista fica vazia quando a atualização não envolveu esses campos, por exemplo, uma alteração no estoque.
- A opção “Itens de linha do pedido provisório alterados” agora apresenta as mesmas diferenças linha por linha que o gatilho do pedido: o que foi adicionado, removido ou alterado em termos de quantidade, preço ou variante.
- Seu próprio código de gatilho personalizado também detecta o valor antigo e o novo.
payload._changes O evento de exemplo que o(a) senhor(a) captura no editor mostra o campo.
Tudo é cumulativo. Os fluxos de trabalho que o(a) senhor(a) já criou continuam funcionando sem alterações. A lista completa de campos por gatilho está disponível na referência de gatilhos do :.
Escolha quais alterações acionam um gatilho de atualização
As opções “Atualização do produto”, “Atualização do pedido” e “Atualização do cliente” possuem uma nova configuração, acessível através da seta de engrenagem ao lado do botão de ativação na página “Gatilhos” do : quais alterações acionam essa ação.
- Nenhuma opção marcada: o gatilho é acionado a cada atualização, exatamente como sempre foi.
- Campos marcados: a notificação é acionada somente quando um deles é alterado. Todas as demais atualizações são ignoradas e não são contabilizadas no seu plano.
Essa também é a maneira correta de impedir que um fluxo de trabalho seja acionado por si mesmo. Um fluxo de trabalho que é iniciado na atualização de um produto e, em seguida, grava um metacampo do produto usado para iniciar-se novamente. Limite os gatilhos aos campos de seu interesse e essa segunda atualização não será mais acionada.
Seus outros gatilhos não são afetados por essa escolha. Restringir a atualização do pedido ao status de pagamento não altera o momento em que o evento “Adicionadas tags ao pedido” é acionado.
Shopify Flow Reage quando algo acontece. Ele não pode reagir quando nada acontece e não consegue ver nada fora da sua loja. Um gatilho personalizado do agora consegue. O editor pergunta: “O que faz com que isso seja executado: um evento Shopify ou de acordo com uma programação?”. De acordo com uma programação, seu código é executado a cada 30 segundos, até uma vez por dia. Ele lembra o que observou na última execução, pode ler sua loja e acessar qualquer recurso na internet pública, e decide por conta própria o que conta como uma alteração.
Comece com um modelo e edite os números na parte superior:
- Produto, pedido ou cliente não atualizado há N dias - revisões de catálogo desatualizadas, pedidos estagnados, reconquista de clientes. Cada registro é acionado uma vez por período de inatividade; os itens que já estavam em atraso no momento em que a função foi ativada não são acionados todos de uma vez.
- Um valor fora de Shopify foi alterado - um feed de estoque de fornecedor, uma taxa de câmbio, uma lista de preços. Exibe o valor anterior e o posterior, bem como a diferença e a porcentagem, no caso de números.
- Novo item em um feed RSS ou Atom - notícias de fornecedores, um feed de listagem, uma página de status.
- Sem pedidos por N horas - um indicador de atividade para sua loja. É acionado uma vez quando os pedidos param e outra vez quando eles retornam.
A primeira execução de um gatilho programado lembra apenas o que detecta; portanto, ativá-lo nunca sobrecarrega seus fluxos de trabalho. Ele aparece em Shopify Flow como “Gatilho personalizado”, filtrado por seu identificador, e o registro é exibido como seu ID. Cada execução conta para o seu plano, independentemente de ser acionada ou não - o editor mostra quantas execuções um intervalo totaliza. A opção “Teste” executa seu código uma vez sem acionar nada.
Modelos para gatilhos personalizados baseados em eventos
Os gatilhos personalizados que monitoram um evento Shopify agora também contam com modelos. Escolha um na opção “Começar a partir de um modelo” e ele selecionará o evento e preencherá o código. Cada um deles lê o valor antes e depois da alteração:
- Um campo de produto, pedido ou cliente mudou de um valor para outro - por exemplo, o status passou de “rascunho” para “ativo”, ou um pedido passou para o status “pago”.
- O preço caiu mais de N por cento - uma redução significativa, e não apenas uma alteração de preço qualquer.
- O estoque caiu abaixo de um limite - acione uma vez, no momento em que o estoque ultrapassar a linha, e não a cada venda, mesmo quando ele já estiver baixo.
- O valor de um metacampo do produto ultrapassou um limite - uma classificação ficou abaixo de 3, uma margem ultrapassou 40.
- Pedido pago por um cliente de alto valor - analisa o gasto total do cliente em suas lojas com o
ctx.shopify() e aciona o evento somente quando o valor for superior ao que você definir.
Os gatilhos de um registro em sua própria página de administração
Novos blocos de administração exibem os gatilhos mais recentes relacionados ao registro que o senhor está visualizando, diretamente na página correspondente no painel de administração do Shopify, cada um com uma breve linha que compara o antigo com o novo, como, por exemplo, price: 100.00 -> 85.00. A partir daí, o senhor pode abrir o gatilho ou acessar uma visualização do Histórico de Eventos desse registro específico.
Disponível para produtos, variantes, pedidos, pedidos provisórios, clientes, cobranças, empresas e locais de empresas. Adicione o bloco uma vez a partir do menu de personalização da página. Os gatilhos que tratam de dados pessoais são listados sem seus valores. Como adicioná-los, com um exemplo em uma página de produto, pedido e cliente: Gatilhos de eventos na página de administração de um registro.
Mais provedores de IA para o Generate with AI
O “Generate with AI” agora funciona com o Google Gemini e o OpenRouter, além do Anthropic e da OpenAI. O OpenRouter oferece modelos de diversas empresas com uma única chave, incluindo qualquer ID de modelo que você digitar. Conecte uma chave em Desenvolvedor -> Conexões: para obter uma chave de API do Gemini ou para obter uma chave de API do OpenRouter. Assim como antes, a geração é executada na sua própria conta do provedor, e a chave é criptografada e nunca mais é exibida.
Todas as páginas do aplicativo foram reconstruídas com base nos novos componentes web de administração dShopify, os mesmos blocos de construção que o próprio painel de administração do Shopify utiliza.
- Carrega mais rápido. O aplicativo não inclui mais sua própria cópia de uma biblioteca de interface. Os componentes vêm de Shopify, são compartilhados com o restante do seu painel de administração e, geralmente, já estão no cache do seu navegador; portanto, cada página tem muito menos dados para baixar antes de ser exibida.
- Parece o painel de administração. Botões, tabelas, interruptores, caixas de diálogo e formulários têm a mesma aparência e funcionam exatamente como aqueles que o senhor utiliza em qualquer outra parte do site Shopify, incluindo a navegação por teclado e os leitores de tela.
- Mantém-se atualizado. Quando a Shopify aprimora seus componentes, o aplicativo incorpora essas melhorias sem que seja necessária uma atualização da nossa parte.
Nada mudou: todas as páginas, configurações e links continuam exatamente onde estavam.
Também nesta versão
- “Conceder tudo” e “Revogar tudo” na página “Permissões”. A opção “Conceder tudo” solicita todas as permissões ausentes em uma única caixa de diálogo Shopify, em vez de uma por cartão. A opção “Revogar tudo” solicita que você confirme primeiro e explica o que isso significa: seus gatilhos permanecem ativados, mas não poderão ser acionados até que você conceda acesso novamente.
- O gatilho personalizado pode acessar a internet pública por meio de
ctx.fetch(), e não apenas sua loja por meio de ctx.shopify(). Endereços internos são recusados.
- Seus gatilhos personalizados e os gatilhos da sua loja virtual agora funcionam da mesma forma: clique na linha para editar; o status aparece à direita.
- A página “Gatilhos” mostra, ao lado do título, quantos gatilhos estão ativados, e os quatro gatilhos de metacampo de tipo agora possuem seus próprios botões de ativação na lista.
- Os campos obrigatórios estão sinalizados nos formulários de gatilho personalizado, gatilho da loja virtual e conexão.
- Corrigido: não era possível limpar um filtro de data no Histórico de Eventos. Ao remover o ícone de data ou selecionar “Limpar tudo”, as datas continuavam aplicadas. Agora, ambas as opções as limpam.
- As linhas do Histórico de Eventos são apresentadas em texto simples, em vez de links azuis. Ainda assim, é possível clicar na linha inteira.