Referência da API Shopify Scripts
Os scripts são compilados por meio de uma API Ruby que proporciona considerável controle e flexibilidade.
Há diferentes tipos de script. A atribuição do tipo de script acontece quando o script é criado no app Script Editor com base no modelo que você escolheu para começar:
Scripts de itens de linha
Esses scripts afetam itens de linha em um carrinho e podem alterar preços e conceder descontos. Esses script são executados sempre que uma alteração é feita no carrinho.
Os scripts de item de linha para desconto se aplicam apenas ao primeiro pagamento de uma assinatura. Os pagamentos seguintes não são afetados.
Alguns métodossó podem ser usados em scripts de itens de linha.
Scripts de frete
Esses scripts interagem com ofretee podem afetar as formas e os descontos concedidos no frete. Eles são executados ao acessar a página de opções de frete do checkout.
Os scripts de frete que concedem descontos à taxa de frete de uma assinatura se aplicam apenas ao primeiro pagamento. Os pagamentos seguintes não são afetados.
Alguns métodossó podem ser usados em scripts de frete.
Scripts de pagamento
Esses scripts interagem compagamentose podem renomear, ocultar e reordenar gateways de pagamento. Observe que os scripts de pagamento não interagem com os gateways de pagamento mostrados antes da tela de checkout, como o Apple Pay. Esses scripts são executados quando o checkout acessa a página de pagamentos.
Alguns métodossó podem ser usados em scripts de pagamento.
Métodos gerais
Os métodos a seguir podem ser usados em qualquer tipo de script:
Entrada
Método | Tipo de devolução | Descrição |
---|---|---|
.cart | Carrinho | Retorna um objeto "cart" mutável. |
.locale | string | Retorna a localidade do cliente. Por exemplo,en ,fr oupt-BR . |
Carrinho
O objeto”carrinho“所以esta disponivel na loja梵tual. Alguns carrinhos abandonados têm acesso ao objeto "carrinho". No entanto, se um carrinho foi fechado e, em seguida, o cliente decidir acessá-lo, ele será enviado para o carrinho pré-preenchido e o objeto "carrinho" não existirá mais. Isso ocorre porque a vitrine foi ignorada pelo e-mail de carrinho abandonado.
Método | Tipo de devolução | Descrição |
---|---|---|
.customer | Cliente | Retorna o proprietário do carrinho (caso aplicável). |
.shipping_address | Endereço de entrega | Retorna o endereço de entrega do proprietário do carrinho (caso aplicável). |
.discount_code | varia | Retorna:
O |
.line_items | Listar |
Retorna uma lista contendo os itens de linha do carrinho. |
.presentment_currency | Listar |
Retorna a moeda (de apresentação) local do cliente (em formatoISO 4217). Por exemplo, USD. |
.subtotal_price | Dinheiro | Retorna o preço do subtotal do carrinho depois da aplicação de descontos aos itens de linha, mas antes da aplicação de códigos de desconto. |
.total_weight | gramas | Retorna o peso total de todos os itens de linha do carrinho. |
CartDiscount::FixedAmount
Método | Tipo de devolução | Descrição |
---|---|---|
.code | String | 脏污Retorna o de desconto usado对位aplicar odesconto. |
.amount | Dinheiro | Retorna a quantia em dinheiro do desconto. |
.reject({ message: String }) | nil | Recusa o código de desconto aplicado ao carrinho. É preciso haver umamensagem . |
.rejected? | Booleano | Retorna se o código de desconto foi recusado. |
CartDiscount::Percentage
Método | Tipo de devolução | Descrição |
---|---|---|
.code | String | 脏污Retorna o de desconto usado对位aplicar odesconto. |
.percentage | Decimal | Retorna o valor percentual do desconto. |
.reject({ message: String }) | nil | Recusa o código de desconto aplicado ao carrinho. É preciso haver umamensagem . |
.rejected? | Booleano | Retorna se o código de desconto foi recusado. |
CartDiscount::Shipping
Método | Tipo de devolução | Descrição |
---|---|---|
.code | String | 脏污Retorna o de desconto usado对位aplicar odesconto. |
.reject({ message: String }) | nil | Recusa o código de desconto aplicado ao carrinho. É preciso haver umamensagem . |
.rejected? | Booleano | Retorna se o código de desconto foi recusado. |
Cliente
Método | Tipo de devolução | Descrição |
---|---|---|
.id | Inteiro | Retorna o número de ID do cliente. |
String | Retorna o endereço de e-mail do cliente. | |
.tags | Listar |
Retorna uma lista de strings representando qualquer conjunto de tags de um cliente. |
.orders_count | Inteiro | Retorna o número total de pedidos feitos pelo cliente. |
.total_spent | Dinheiro | Retorna o valor total gasto pelo cliente em todos os pedidos. |
.accepts_marketing? | Booleano | Retorna se o cliente aceita marketing. |
LineItem
dgramsMétodo | Tipo de devolução | Descrição |
---|---|---|
.grams | ||
.line_price | Dinheiro | O preço do item de linha. |
.discounted? | Booleano | Retorna se o preço de um item de linha foi descontado por um script ou código de desconto aplicado manualmente. O uso de códigos de desconto não afeta o valor retornado. |
.properties | hash | Retorna as propriedades que foram especificadas para os itens de linha. |
.variant | Variante | Retorna a variante de produto específica representada pelo item de linha. |
.quantity | Inteiro | Retorna a quantidade do item de linha. |
.selling_plan_id | Inteiro | Retorna o ID do plano de venda do item de linha. Esse método é útil quando a loja vende assinaturas e você quer que o script detecte quando uma variante de produto évendida como assinatura. |
Lista
Método | Tipo de devolução | Descrição |
---|---|---|
.new | Lista | Cria um novo objeto para representar uma lista. |
.[] | Element ou nil | Retorna o elemento no índice especificado. |
.& | Lista | Retorna uma nova lista contendo elementos comuns às duas listas, sem duplicatas. |
.delete_if | Lista | Exclua elementos usando um bloco de código opcional. Confira a documentação dométododelete_if do Ruby. |
.empty? | Booleano | Retorna |
.first | Element ou nil | Retorna o primeiro elemento ou |
.index(*args, &block) | int ou nil | Retorna o índice do primeiro elemento da lista. Se for oferecido um bloco em vez de um argumento, retorna o índice do primeiro elemento para o qual o bloco é verdadeiro. |
.rindex(*args, &block) | int ou nil | Retorna o índice do último elemento da lista. Se for oferecido um bloco em vez de um argumento, retorna o índice do primeiro elemento para o qual o bloco é verdadeiro. |
.last | Element ou nil | Retorna o último elemento ou |
.length | int | Retorna o número de elementos da lista. |
.size | int | Alias para comprimento. |
.each(*args, &block) | Lista | Chama um bloco uma vez para cada elemento na lista, passando o elemento como parâmetro ao bloco. |
Endereço de entrega
Método | Tipo de devolução | Descrição |
---|---|---|
.name | string | Retorna o nome da pessoa associada ao endereço de entrega. |
.address1 | string | Retorna a parte do endereço de entrega referente ao endereço postal. |
.address2 | string | Retorna o campo adicional opcional do endereço de entrega referente ao endereço postal. |
.phone | string | Retorna o número de celular do endereço de entrega. |
.city | string | Retorna a cidade do endereço de entrega. |
.zip | string | Retorna o CEP do endereço de entrega. |
.province | string | Retorna a província/estado do endereço de entrega. |
.province_code | string | Retorna o valor abreviado da província/estado do endereço de entrega. |
.country_code | string | Retorna o valor abreviado do país do endereço de entrega. |
Dinheiro
Método | Tipo de devolução | Descrição |
---|---|---|
.derived_from_presentment(customer_cents:X) | Dinheiro | Converte um valor (em centavos) na moeda (de apresentação) local do cliente para a moeda de sua loja. Este método aceita o parâmetrocustomer_cents , que exibe os números em centavos. Por exemplo,Money.derived_from_presentment(customer_cents: 500) . |
.new | Dinheiro | Cria um novo objeto para representar um preço. |
.zero | Dinheiro | Cria um novo objeto com o preço zero. |
+ | Dinheiro | Adiciona dois objetosMoney . |
- | Dinheiro | Subtrai um objetoMoney de outro objeto. |
* | Dinheiro | Multiplica um objetoMoney por um número. |
Exemplos de Money
Cria um objetoMoney
representando mil centavos de dólar ou US$ 10.
Cria um objetoMoney
representando US$ 1, multiplicando esse valor por 50. Retorna um objetoMoney
representando US$ 50.
Variante
Método | Tipo de devolução | Descrição |
---|---|---|
.id | Inteiro | Retorna o número de ID da variante. |
.price | Dinheiro | Retorna o preço unitário da variante. |
.product | Produto | Retorna o produto associado da variante. |
.skus | Listar |
Retorna as SKUs (Unidades de manutenção de estoque) da variante, que geralmente são usadas para acompanhar o estoque. |
.title | String | Retorna o título da variante. |
Produto
Método | Tipo de devolução | Descrição |
---|---|---|
.id | Inteiro | Retorna o número de ID do produto. |
.gift_card? | Booleano | Retorna se o produto é um cartão-presente. |
.tags | Listar |
Retorna uma lista de strings representando as tags definidas para esse produto. |
.product_type | String | Uma categorização com a qual um produto pode ser marcado, normalmente usada para filtragem e pesquisa. |
.vendor | String | Retorna o fabricante do produto. |
Kernel
Kernele嗯模Ruby, esta incluido em所有班sses. Como resultado, seus métodos estão disponíveis para cada um dos objetos. Esses métodos agem da mesma maneira que as funções globais em outros idiomas.
Método | Tipo de devolução | Descrição |
---|---|---|
.exit | nenhum | Encerra a execução do script atual sem erros. Se isso for executado antes que qualquer coisa seja atribuída aOutput.cart , o script não terá efeito. Essa é uma maneira útil de sair de scripts, por exemplo, se o cliente não estiver qualificado para executar o script. |
Exemplo de kernel
Métodos de item de linha
Os métodos a seguir podem ser usados apenas emscripts de item de linha:
Carrinho
Método | Tipo de devolução | Descrição |
---|---|---|
.subtotal_price_was | Dinheiro | Retorna o preço subtotal do carrinho antes da aplicação de qualquer desconto. |
.subtotal_price_changed? | Booleano | Retorna se o preço subtotal foi alterado. |
LineItem
Método | Tipo de devolução | Descrição |
---|---|---|
.change_line_price(Moneynew_price, { message:String}) | Dinheiro | Altere o preço do item de linha para o valor especificado. É preciso haver umamensagem .new_price precisa ser menor que o preço atual. |
.original_line_price | Dinheiro | Retorna o preço original do item de linha antes da aplicação de scripts e descontos. |
.line_price_was | Dinheiro | Retorna o preço do item de linha antes de o script atual aplicar as alterações. |
.line_price_changed? | Booleano | Retorna se o preço do item de linha foi alterado. |
.change_properties(hashnew_properties, { message:String}) | hash | Define novas propriedades para os itens de linha. O hash de propriedades original é armazenado emproperties_was , e o hash de propriedades passado ao método passa a ser as novas propriedades do item de linha. |
.properties_was | hash | Retorna o hash de propriedades original do item de linha antes da aplicação de qualquer alteração. |
.properties_changed? | Booleano | Retorna se as propriedades do item de linha foram alteradas. |
.split({ take:Integer}) | LineItem | Divide um item de linha em dois itens de linha.take especifica qual quantidade remover do item de linha original para criar o novo item de linha. |
.split example
Este exemplo de script divide um item de linha chamadooriginal_line_item
em dois itens de linha. O novo item de ilha tem uma quantidade de 1 (especificado portake: 1
). Em seguida, o script aplica um preço com desconto ao novo item de linha com a mensagem "Terceiro chapéu por 5 dólares".
Variante
Método | Tipo de devolução | Descrição |
---|---|---|
.compare_at_price | Dinheiro | Retorna a Comparação de preços da variante. Retornanil se não houver uma Comparação de preços para a variante. |
Formas de frete
Os métodos a seguir podem ser usados nosscripts de frete:
Entrada
Método | Tipo de devolução | Descrição |
---|---|---|
.shipping_rates | ShippingRateList | Retorna uma lista de todas as taxas de frete. |
ShippingRateList
Método | Tipo de devolução | Descrição |
---|---|---|
.delete_if | ShippingRateList | Exclua taxas de frete usando um bloco de código opcional. Confira a documentação dométododelete_if do Ruby. |
.sort! | ShippingRateList | Organize as taxas de frete usando o operador de comparação ou um bloco de código opcional. Confira a documentação dométodosort! do Ruby. |
.sort_by! | ShippingRateList | Organize as taxas de frete usando um bloco de código opcional. Confira a documentação dométodosort_by! do Ruby. |
ShippingRate
Método | Tipo de devolução | Descrição |
---|---|---|
.code | String | Retorna o código da taxa de frete. |
.markup | Dinheiro | Retorna a marcação para uma taxa de frete, se aplicável. |
.name | String | Retorna o nome da taxa de frete. Ele pode ser modificado usando o métodochange_name . |
.price | Dinheiro | Retorna o preço da taxa de frete. |
.source | String | Retorna a origem (a transportadora) associada à taxa de frete, se relevante. Não pode ser modificado. |
.change_name(Stringnew_name) | String | Altera o nome (máximo de 255 caracteres) da taxa de frete. Não é possível alterar, excluir nem ocultar a origem. |
.apply_discount(Moneydiscount, { message: String }) | Dinheiro | Aplica um desconto do valor fixo especificado. O preço não pode ser reduzido para menos de 0. Uma mensagem é necessária. |
.phone_required? | Booleano | Retornatrue (verdadeiro) se for necessário um número de celular para obter a taxa de frete oufalse (falso) se não for necessário o número de celular. |
Formas de pagamento
Os métodos a seguir podem ser usados nosscripts de pagamento:
Entrada
Método | Tipo de devolução | Descrição |
---|---|---|
.payment_gateways | PaymentGatewaysList | Retorna uma lista de todos os gateways de pagamento da loja. |
PaymentGatewayList
Método | Tipo de devolução | Descrição |
---|---|---|
.delete_if | PaymentGatewayList | Exclua gateways de pagamento usando um bloco de código opcional. Confira a documentação dométododelete_if do Ruby. |
.sort! | PaymentGatewayList | Organize os gateways de pagamento usando o operador de comparação ou um bloco de código opcional. Confira a documentação dométodo Ruby'ssort! . |
.sort_by! | PaymentGatewayList | Organize os gateways de pagamento usando um bloco de código opcional. Confira a documentação dométodosort_by! do Ruby. |
PaymentGateway
Método | Tipo de devolução | Descrição |
---|---|---|
.name | String | Retorna o nome do gateway de pagamento. |
.enabled_card_brands | Listar |
Se o gateway de pagamento for compatível com cartões de crédito, retorna uma lista dos tipos de cartões de crédito aceitos pela loja. Se o gateway não for compatível com cartões de crédito, retorna uma lista vazia. |
.change_name(Stringnew_name) | String | Altera o nome do gateway de pagamento. Vale lembrar que não é possível renomear esses serviços com logos. |
Exemplos
No exemplo de script de item de linha a seguir, quando um cliente solicita um produto que não é um cartão-presente, o preço do produto é reduzido em US$ 9. Da mesma forma, o valor total que o cliente gastou em todas as visitas à sua loja é mostrado:
Saiba mais
Saiba mais sobre: