Passar para o conteúdo principal
Todas as coleçõesAvançado
Ocultando métodos de checkout por etiqueta de produto
Ocultando métodos de checkout por etiqueta de produto

Desativar ou habilitar recolha, entrega ou envio para determinados grupos de produtos com base na etiqueta do produto

Lui Serafim avatar
Escrito por Lui Serafim
Atualizado há mais de uma semana

Você pode ocultar métodos de checkout adicionando um trecho de código usando etiquetas de produto,

Por exemplo, se você tiver certos produtos que estão disponíveis apenas para recolha, e quiser ocultar outros métodos como entrega e/ou envio.

Se você quiser mostrar todos os métodos aos seus clientes e exibir apenas uma mensagem de erro quando eles não estiverem disponíveis, você pode usar o nosso recurso nativo de Ativação condicional.

Leia mais sobre etiquetas e como adicioná-las aos seus produtos no artigo da Shopify Adicionar etiquetas.

Por favor, entre em contato conosco pelo e-mail [email protected] — teremos o prazer de implementar isso para você. Prossiga apenas se você estiver confortável em editar o código por conta própria.


Adicionar um trecho de código

Esses passos se aplicam apenas à versão 1 ou 2 do widget Zapiet - Entrega e Recolhas. Qual versão do widget estou usando?

Se você estiver usando uma versão antiga, entre em contato conosco no chat, e teremos o prazer de atualizar o widget para a versão mais recente para você!

Você precisará adicionar o código em Zapiet - Entrega e Recolhas > Configurações > Desenvolvedores, na seção Scripts personalizados.

function hasTag(tag) {
var products = ZapietWidgetConfig.products;
for (var i = 0; i < products.length; i++) {
var tags = products[i].tags;
for (var j = 0; j < tags.length; j++) {
if (tags[j] == tag) {
return true;
}
}
}
return false;
}
if (hasTag("Delivery Only")) {
Zapiet.show("delivery");
Zapiet.hide(["shipping", "pickup"]);
}
else if (hasTag("Pickup Only")) {
Zapiet.show("pickup");
Zapiet.hide(["shipping", "delivery"]);
}

A segunda parte deste código precisa ser modificada para se ajustar às suas necessidades — ela tem duas partes, quando você precisa usar duas etiquetas diferentes.

A primeira parte exibirá apenas a entrega e ocultará envio e recolha para itens com a etiqueta “Entrega Apenas”.

Para modificar o código:

  • Substitua "Entrega Apenas" pela etiqueta que você criou.

    • As etiquetas diferenciam maiúsculas de minúsculas, então certifique-se de que o valor corresponda exatamente à etiqueta.

  • Substitua "delivery" pelo método que deseja mostrar.

  • Substitua ["shipping", "pickup"] pelos métodos que você gostaria de ocultar.

if (hasTag("Delivery Only")) {
Zapiet.show("delivery");
Zapiet.hide(["shipping", "pickup"]);

A segunda parte exibirá apenas recolha para itens com a etiqueta “Recolha Apenas” e ocultará envio e entrega. Se você precisar adicionar várias etiquetas:

  • Substitua "Recolha Apenas" pela etiqueta que você criou.

    • As etiquetas diferenciam maiúsculas de minúsculas, então certifique-se de que o valor corresponda exatamente à etiqueta.

  • Substitua "pickup" pelo método que deseja mostrar.

  • Substitua ["shipping", "delivery"] pelos métodos que você gostaria de ocultar.

} else if (hasTag("Pickup Only")) {
Zapiet.show("pickup");
Zapiet.hide(["shipping", "delivery"]);
}

Nota

Se você estiver mostrando ou ocultando mais de um método, isso precisa ser um array.

  • Se estiver usando um array, use parênteses e colchetes:

([shipping”, “delivery”])
  • Se estiver usando apenas um método, use apenas parênteses:

(“pickup”)

Solução de problemas

Se as alterações não forem visíveis na página do carrinho, certifique-se de que:

  • As etiquetas adicionadas nos trechos de código correspondem exatamente à etiqueta do seu produto (elas são sensíveis a maiúsculas e minúsculas).

  • Você adicionou o jQuery aos arquivos do seu tema para a versão da loja online 2.0. Caso contrário, você pode adicioná-lo no topo do arquivo do carrinho nos arquivos do seu tema:

    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
Respondeu à sua pergunta?