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

Testar e ligar

Executa um código de teste sem salvar e liga ou desliga um script já salvo.

Duas operações do dia a dia: validar um código com dados de exemplo antes de colocá-lo no ar e ligar ou desligar um script que já existe. Exigem manage_scripts ou manage_settings.

Testar a seco

O código roda na mesma sandbox dos scripts reais, com test_input disponível como a variável global input. Nada é gravado e nenhum efeito sai da sandbox.

POST/api/v1/admin/scripts/dry-runAdmin

Executa um código sem salvá-lo

Corpo da requisição

extension_pointstringobrigatório
on_checkout_validateon_price_calculateon_shipping_filteron_payment_filteron_order_status_changeon_vendor_commissionon_product_displayon_custom_validationon_search_booston_event_trigger
Ponto de extensão simulado. Obrigatório.
codestringobrigatório
Código a executar. Obrigatório.
test_inputobject
Dados de exemplo, disponíveis como input. Padrão: {}. O formato real de input depende do ponto de extensão.

Exemplo de requisição

Resposta

200Execução (sucesso)

Campos da resposta

successboolean
true se o código terminou sem erro.
outputany
O resultado: o valor da variável global result se existir; senão o valor da última expressão do script; senão null.
durationinteger
Tempo de execução em nanossegundos.
memory_usedinteger
Memória alocada, em bytes.
logsarray
O que o código escreveu com console.log, console.warn (prefixo [WARN]) e console.error (prefixo [ERROR]). Ausente se não escreveu nada.
errorstring
Mensagem do erro quando success é false.
200Execução (falha no código)

Erros

StatusQuandoExemplo de corpo
401Token ausente, inválido ou expirado.{"error":"missing authorization header"}
403O token não é de um usuário administrador.{"error":"admin access required"}
403O usuário é administrador, mas não tem o privilégio exigido.{"error":"insufficient privileges","privilege_required_any":["manage_scripts","manage_settings"]}
400Corpo inválido, ou code ou extension_point ausente.{"error":"code is required"}
Erro no código volta 200

Erro de sintaxe, exceção ou estouro de tempo não viram erro HTTP: a resposta é 200 com success: false e a mensagem em error. Sempre confira success.

Limites de execução

Cada execução tem no máximo 100 ms e 10 MB. Sem acesso a rede, arquivos nem a require, fetch, setTimeout ou eval.

Ligar e desligar

PUT/api/v1/admin/scripts/{id}/toggleAdmin

Liga ou desliga um script

Parâmetros de caminho

iduuidobrigatório
Id do script.

Corpo da requisição

is_activebooleanpadrão: false
true liga, false desliga. Se omitido, vale false.

Exemplo de requisição

Resposta

200Alterado

Campos da resposta

messagestring
script enabled ou script disabled.

Erros

StatusQuandoExemplo de corpo
401Token ausente, inválido ou expirado.{"error":"missing authorization header"}
403O token não é de um usuário administrador.{"error":"admin access required"}
403O usuário é administrador, mas não tem o privilégio exigido.{"error":"insufficient privileges","privilege_required_any":["manage_scripts","manage_settings"]}
400Corpo inválido.{"error":"invalid request body","detail":"..."}
500Script inexistente ou id inválido.{"error":"failed to toggle script","detail":"script ... not found"}
Alterar sem mexer na versão

Ligar e desligar não muda version nem cria entrada no histórico.

Veja também

  • Gerenciar scripts
  • Versões e reversão
Anterior
Gerenciar scripts
Próxima
Versões e reversão
Nesta página
  • Testar a seco
  • Exemplo de requisição
  • Resposta
  • Erros
  • Ligar e desligar
  • Exemplo de requisição
  • Resposta
  • Erros
  • Veja também
bash
curl -X POST "$BASE_URL/api/v1/admin/scripts/dry-run" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"extension_point": "on_checkout_validate", "code": "console.log(input.cart_total); ({valid: input.cart_total < 10000})", "test_input": {"cart_total": 15000}}'
bash
curl -X PUT "$BASE_URL/api/v1/admin/scripts/5be3d1d8-44b9-49d2-83be-e1fd9bec2ce7/toggle" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"is_active": true}'
json
{
  "output": {
    "valid": false
  },
  "duration": 25817445,
  "memory_used": 212552,
  "logs": [
    "15000"
  ],
  "success": true
}
json
{
  "output": null,
  "duration": 100000000,
  "memory_used": 0,
  "error": "script execution timed out after 100ms",
  "success": false
}
json
{
  "message": "script enabled"
}