Saber que algo mudou raramente é suficiente. Um fluxo de trabalho precisa, normalmente, saber como estava a situação anteriormente: se o preço baixou ou subiu, em quanto, que tag foi adicionada, qual era o valor do metacampo ontem. Esta versão disponibiliza os valores antigo e novo em toda a aplicação e permite que um gatilho personalizado inicie um fluxo de trabalho mesmo quando não ocorreu qualquer alteração.
Valores antigos e novos, em todo o lado
- Os gatilhos de metacampo passam agora a conter o valor anterior. Cada gatilho de metacampo (genérico, produto, variante, pedido, cliente) transmite ao Shopify Flow
Metafield.previousValue a par de Metafield.value. Este 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 de valores numéricos. As condições de fluxo não permitem operações aritméticas; por isso, as condições «Alteração do preço da variante», «Alteração do preço unitário da variante» e «Alteração do custo da variante do produto» apresentam agora também
delta (novo menos antigo), percentChange e direction (aumento, diminuição, inalterado). «O preço baixou mais de 10%» é agora uma condição, sem código.
- As atualizações de produto, de pedido e de cliente indicam-lhe o que foi alterado. Anteriormente, limitavam-se a indicar que o registo tinha sido atualizado. Agora incluem um
changes: a lista dos campos alterados e, para cada um deles, o valor antigo e o novo. Os campos monitorizados são: título, descrição, estado, tags, fornecedor, tipo e identificador para produtos; estado do pagamento, processamento, itens de linha, tags, nota e detalhes adicionais para pedidos; tags, nota e estado da conta para clientes. Os valores longos são abreviados. A lista fica vazia quando a atualização não incidiu sobre esses campos, por exemplo, no caso de uma alteração no estoque.
- A opção «Alterações nos itens de linha do pedido provisório» apresenta agora as mesmas diferenças, linha a linha, que o gatilho do pedido: o que foi adicionado, removido ou alterado em termos de quantidade, preço ou variante.
- O seu próprio código de gatilho personalizado também deteta o valor antigo e o novo. Um gatilho personalizado do tipo () na atualização de um produto, de uma encomenda ou de um cliente recebe agora
payload._changes: todos os campos monitorizados que sofreram alterações, cada um com oldValue e newValue. Assim, o seu código pode ser acionado numa transição, em vez de num estado - «o estado passou de rascunho para ativo», «a encomenda passou para paga» - , o que uma condição baseada no valor atual não consegue expressar. O evento de exemplo que capta no editor mostra o campo.
Tudo é cumulativo. Os fluxos de trabalho que já criou continuam a funcionar sem alterações. A lista completa de campos por gatilho encontra-se na referência de gatilhos do .
Escolha quais as alterações que ativam um gatilho de atualização
As opções «Atualização do produto», «Atualização do pedido» e «Atualização do cliente» dispõem de uma nova configuração, acessível através da roda dentada ao lado do respetivo botão na página «Gatilhos» do : quais as alterações que acionam esta função.
- Nenhuma opção marcada: o gatilho é acionado em cada atualização, exatamente como sempre foi.
- Campos marcados: a notificação só é enviada quando um deles é alterado. Todas as outras atualizações são ignoradas e não são contabilizadas no seu plano.
Esta é também a forma mais adequada de impedir que um fluxo de trabalho se acione a si próprio. Um fluxo de trabalho que se inicia na «Atualização do produto» e, em seguida, preenche um metacampo do produto que é utilizado para o acionar novamente. Limite o gatilho aos campos que lhe interessam e essa segunda atualização deixará de ser acionada.
Os seus outros gatilhos não são afetados por esta escolha. Limitar a atualização do pedido ao estado do pagamento não altera o momento em que o gatilho «Adicionadas tags ao pedido» é acionado.
Shopify Flow Reage quando algo acontece. Não consegue 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 isto seja executado: um evento Shopify ou de acordo com um horário?» De acordo com uma programação, o seu código é executado a cada 30 segundos, até um máximo de uma vez por dia. Ele recorda o que observou na última execução, consegue analisar a sua loja e aceder a qualquer recurso na Internet pública, e decide por si próprio o que constitui uma alteração.
Comece por um modelo e altere os números na parte superior:
- Produto, pedido ou cliente não atualizado há N dias - análises de catálogo desatualizadas, pedidos em espera, recuperação de clientes. Cada registo é acionado uma vez por período de inatividade; os registos que já estejam em atraso no momento em que ativar esta funcionalidade não serão acionados todos de uma só vez.
- Um valor fora de Shopify foi alterado - um feed de stock de um fornecedor, uma taxa de câmbio, uma lista de preços. Apresenta o valor anterior e o valor posterior, bem como a diferença e a percentagem no caso de valores numéricos.
- Novo item num feed RSS ou Atom - notícias do fornecedor, um feed de listagem, uma página de estado.
- Sem pedidos durante N horas - um «batimento cardíaco» para a sua loja. É executado uma vez quando os pedidos cessam e outra vez quando estes voltam a surgir.
A primeira execução de um gatilho programado apenas regista o que deteta, pelo que ativar um não sobrecarrega nunca os seus fluxos de trabalho. Este aparece em Shopify Flow como «Gatilho personalizado», filtrado pelo seu identificador, e o registo é apresentado como o seu ID. Cada execução conta para o seu plano, quer seja acionado ou não - o editor mostra o número total de execuções acumuladas por intervalo. A opção «Teste» executa o seu código uma vez sem acionar nada.
Modelos para gatilhos personalizados baseados em eventos
Os gatilhos personalizados que monitorizam um evento Shopify passam agora a dispor também de modelos. Se selecionar um na opção «Começar a partir de um modelo», este seleciona o evento e preenche o código. Cada um deles lê o valor antes e depois da alteração:
- Um campo de um produto, de um pedido ou de um cliente passou de um valor para outro - por exemplo, o estado passou de «rascunho» para «ativo», ou um pedido passou para o estado «paga».
- O preço baixou mais de N por cento - uma verdadeira redução de preço, não uma simples alteração de preço.
- O stock desceu abaixo de um limiar - o alarme dispara uma única vez, no momento em que o stock ultrapassa o limite, e não a cada venda enquanto o stock já se encontra baixo.
- O valor de um metacampo do produto ultrapassou um limiar - uma classificação desceu abaixo de 3, uma margem ultrapassou os 40.
- Pedido pago por um cliente de elevado valor - analisa o valor total gasto pelo cliente na sua loja ao longo do tempo através do
ctx.shopify() e só é acionado quando o valor ultrapassa o montante que definir.
Os gatilhos de um registo na respetiva página de administração
Os novos blocos de administração apresentam os gatilhos mais recentes relativos ao registo que está a visualizar, diretamente na respetiva página na área de administração do Shopify, cada um com uma breve linha que indica «antigo → novo», como, por exemplo, price: 100.00 -> 85.00. A partir daí, pode abrir o gatilho ou aceder a uma visualização do Histórico de Eventos desse registo específico.
Disponível para produtos, variantes, pedidos, pedidos provisórios, clientes, cobranças, empresas e locais da empresa. Adicione o bloco uma única vez a partir do menu de personalização da página. Os gatilhos que processam dados pessoais são listados sem os respetivos valores. Como adicioná-lo, com um exemplo numa página de produto, de pedido e de cliente: Gatilhos de eventos na página de administração de um registo.
Mais fornecedores de IA para o «Generate with AI»
O «Generate with AI» funciona agora com o Google Gemini e o OpenRouter, para além da Anthropic e da OpenAI. O OpenRouter disponibiliza-lhe modelos de várias empresas com uma única chave, incluindo qualquer ID de modelo que introduzir. Ligue uma chave em «Developer» → «Connections»: para obter uma chave API do Gemini ou para obter uma chave API do OpenRouter. Tal como anteriormente, a geração decorre na sua própria conta do fornecedor e a chave é encriptada, não sendo nunca mais apresentada.
Todas as páginas da aplicação foram reconstruídas com base nos novos componentes web de administração dShopify, os mesmos blocos de construção que a própria área de administração de Shopify utiliza.
- Carregamento mais rápido. A aplicação já não inclui a sua própria cópia de uma biblioteca de interfaces. Os componentes provêm de Shopify, são partilhados com o resto da sua área de administração e, normalmente, já se encontram na cache do seu navegador, pelo que cada página tem muito menos dados para descarregar antes de ser apresentada.
- Parece mesmo a área de administração. Os botões, tabelas, interruptores, caixas de diálogo e formulários têm o mesmo aspeto e funcionam exatamente como os que utiliza em qualquer outra parte do site Shopify, incluindo a navegação por teclado e os leitores de ecrã.
- Mantém-se atualizada. Quando a Shopify melhora os seus componentes, a aplicação incorpora essas melhorias sem que seja necessária uma atualização da nossa parte.
Nada mudou: todas as páginas, configurações e ligações estão 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 em falta numa única caixa de diálogo Shopify, em vez de uma por cartão. A opção «Revogar tudo» pede-lhe que confirme primeiro e explica-lhe o que isso significa: os seus gatilhos permanecem ativados, mas não poderão ser acionados até que volte a conceder acesso.
- O gatilho personalizado pode aceder à Internet pública através de
ctx.fetch(), e não apenas à sua loja através de ctx.shopify(). Os endereços internos são recusados.
- Os seus gatilhos personalizados e os gatilhos da sua loja virtual funcionam agora da mesma forma: clique na linha para editar; o estado aparece à direita.
- A página «Gatilhos» apresenta, junto ao título, o número de gatilhos ativos, e os quatro gatilhos de metacampo tipados dispõem agora dos seus próprios botões na lista.
- Os campos obrigatórios estão assinalados nos formulários do gatilho personalizado, do gatilho da loja virtual e de ligação.
- Corrigido: não era possível limpar um filtro de data no Histórico de Eventos. Ao remover o marcador de data ou ao selecionar «Limpar tudo», as datas continuavam aplicadas. Agora, ambas as opções limpam-nas.
- As linhas do Histórico de Eventos são apresentadas em texto simples, em vez de ligações azuis. É possível clicar na linha na sua totalidade.