VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API atual/Referência completa

Scripts da loja

Scripts JavaScript que personalizam o comportamento da loja em pontos definidos, com teste a seco, versões e reversão.

Scripts permitem personalizar o comportamento da loja sem pedir uma alteração na plataforma. Você escreve uma função curta em JavaScript, escolhe em que momento ela deve rodar (o ponto de extensão) e ativa. Exemplos: esconder o frete expresso em carrinhos pequenos, bloquear o checkout sob uma regra própria, filtrar formas de pagamento, reagir a um pedido pago.

Pontos principais
  • Todas as rotas exigem o privilégio manage_scripts (ou manage_settings).
  • Um script nasce inativo se você não enviar is_active. Só scripts ativos executam.
  • Cada execução tem no máximo 100 ms e 10 MB, sem rede nem arquivos.
  • O histórico guarda as 5 últimas versões anteriores; reverter cria uma versão nova.

Como funciona

O ciclo de vida típico:

  1. Escrever e testar
    Use Testar a seco com dados de exemplo até o resultado ficar certo.
  2. Criar
    Crie o script inativo, com o ponto de extensão correto.
  3. Ativar
    Ligue quando estiver pronto.
  4. Evoluir
    Altere o código; se algo der errado, reverta.

Pontos de extensão disponíveis:

PontoQuando roda
on_checkout_validateValida o carrinho antes do checkout.
on_price_calculateCálculo de preço personalizado (declarado, mas ainda sem execução na plataforma).
on_shipping_filterFiltra ou altera as opções de frete.
on_payment_filterFiltra as formas de pagamento.
on_order_status_changeReage a mudanças de status de pedido.
on_vendor_commissionCalcula a comissão de um seller.
on_product_displayAltera os dados de um produto na exibição.
on_custom_validationValidação personalizada de qualquer entidade.
on_search_boostImpulsiona resultados da busca.
on_event_triggerReage a eventos da plataforma (order.created, product.updated...).

Conceitos principais

Como o script recebe e devolve dados

O script recebe os dados do momento na variável global input e devolve o resultado na variável global result (ou, se não houver, no valor da última expressão). O formato de input e do resultado esperado depende do ponto de extensão. Exemplo para on_shipping_filter: var result = input.rates.filter(function (r) { return r.type !== "express" || input.cart.total >= 5000; });

Sandbox

O código roda isolado: sem rede, sem arquivos, sem require, fetch, setTimeout ou eval. Passou de 100 ms ou 10 MB, a execução é interrompida.

Eventos

Um script on_event_trigger informa em event_types quais eventos o disparam: order.created, order.statusChanged, order.paid, order.cancelled, product.created, product.updated, product.deleted, customer.registered, customer.updated, cart.abandoned, review.created, vendor.registered, vendor.approved.

Endpoints

MétodoCaminhoPara que servePágina
GET/api/v1/admin/scriptsLista os scripts, do mais novo ao mais antigoGerenciar scripts
GET/api/v1/admin/scripts/{id}Consulta um scriptGerenciar scripts
POST/api/v1/admin/scriptsCria um scriptGerenciar scripts
PUT/api/v1/admin/scripts/{id}Altera nome, descrição, código ou estado de um scriptGerenciar scripts
DELETE/api/v1/admin/scripts/{id}Exclui um scriptGerenciar scripts
POST/api/v1/admin/scripts/dry-runExecuta um código com dados de teste, sem salvarTestar e ligar
PUT/api/v1/admin/scripts/{id}/toggleLiga ou desliga um scriptTestar e ligar
GET/api/v1/admin/scripts/{id}/versionsLista as versões anteriores (até 5), da mais nova à mais antigaVersões e reversão
POST/api/v1/admin/scripts/{id}/rollback/{versionId}Restaura o código de uma versão anteriorVersões e reversão

Erros comuns

  • Esperar que POST /admin/scripts ative o script: sem is_active: true ele nasce desligado.
  • Checar só o status HTTP do teste a seco: erro no código volta 200 com success: false.
  • Tentar trocar o extension_point com PUT: o campo é ignorado; crie outro script.
  • Usar duration como milissegundos: vem em nanossegundos.
  • Esperar que on_price_calculate altere preços: o ponto está declarado, mas nenhum fluxo da plataforma o executa hoje.
  • Esperar 404 em ids inexistentes: várias rotas respondem 500 com a mensagem no campo detail.

Próximos passos

Gerenciar scripts
Criar, alterar e excluir.
Testar e ligar
Teste a seco e liga/desliga.
Versões e reversão
Volte a um código anterior.
Anterior
Gerar o documento
Próxima
Gerenciar scripts
Nesta página
  • Como funciona
  • Conceitos principais
  • Como o script recebe e devolve dados
  • Sandbox
  • Eventos
  • Endpoints
  • Erros comuns
  • Próximos passos