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

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}}'

Resposta

200Execução (sucesso)
json
{
  "output": {
    "valid": false
  },
  "duration": 25817445,
  "memory_used": 212552,
  "logs": [
    "15000"
  ],
  "success": true
}

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)
json
{
  "output": null,
  "duration": 100000000,
  "memory_used": 0,
  "error": "script execution timed out after 100ms",
  "success": false
}

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

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}'

Resposta

200Alterado
json
{
  "message": "script enabled"
}

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