Actualizar os teus modelos Liquid para Scripts
Se executas scripts na túa tenda en liña, tes que comprobar como afectan as páxinas do teu escaparate. Moitos temas inclúen o código para admitir os teus scripts, pero outros non. Se o teu tema non ten o código, pódelo engadir.
Resolución de problemas
A maioría dos problemas cos scripts e temas están relacionados con scripts de artigos de liña que ofrecen descontos. Por exemplo, o prezo total do pedido é correcto, pero os prezos dos artigos de liña non mostran os descontos. Os clientes necesitan entender como se calculan os seus descontos. Queren ver o prezo orixinal e o prezo con desconto, ademais dunha breve descrición do desconto. Se falta algún destes detalles no teu carro, terás que engadir o código de Liquid para que aparezan.
Unha boa forma de comprobar como o teu script afecta ao teu escaparate é visitalo como cliente e realizar as accións que activan o script.
Atributos do obxecto de Liquid
As seguintes listas conteñen atributos do obxecto de Liquid que se adoitan necesitar para admitir scripts no carro da túa tenda:
Atributos do obxecto do carro:
Atributos de artigos de liña:
- line_item.discounts
- line_item.message
- line_item.original_price
- line_item.original_line_price
- line_item.total_discount
Obxecto de script:
- O obxecto de script pódese utilizar para devolver información sobre os scripts activos dunha tenda. Este obxecto pode ser útil ao depurar scripts.
Exemplo
O seguinte exemplo describe os cambios que podes facer no teu modelo cart.liquid para admitir un script de artigos de liña.
Carro de exemplo
Por exemplo, se tes un carro con tres artigos de liña:
- Balón de fútbol
- Cantidade: 1
- Prezo unitario: 15,00 $
- Pelota de tenis
- Cantidade: 5
- Prezo unitario: 5,00 $
- Zapatilla de correr
- Cantidade: 1
- Prezo unitario: 30,00 $
E publicaches un script que aplica os seguintes descontos:
- 10 % de desconto en dúas ou máis pelotas de tenis
- 5 $ de desconto en todo o calzado
Entón, o teu modelo cart.liquid podería ser unha sinxela táboa que inclúa os artigos de liña e un resumo dos seus importes totais:
<table class="cart">
<thead class="heading">
<tr>
<th>Product</th>
<th>Quantity</th>
<th>Total</th>
</tr>
</thead>
<tbody class="line-items">
{% for item in cart.items %}
<tr>
<td>{{ item.product.title }}</td>
<td>{{ item.quantity }}</td>
<td>{{ item.line_price | money }}</td>
</tr>
{% endfor %}
</tbody>
<tfoot class="summary">
<tr>
<td colspan="2">Total</td>
<td>{{ cart.total_price | money }}</td>
</tr>
</tfoot>
</table>Cos descontos aplicados polo script, este modelo crea a seguinte táboa para o teu carro:
| Produto | Cantidade | Total |
|---|---|---|
| Balón de fútbol | 1 | 15,00 $ |
| Pelota de tenis | 5 | 22,50 $ |
| Zapatilla de correr | 1 | 25,00 $ |
| Total | 62,50 $ | |
Actualizar os artigos de liña
Para mostrar os descontos aplicados polo script, hai que actualizar os artigos de liña a fin de que mostren tres datos clave:
- o prezo da liña antes dos descontos
- o prezo da liña despois dos descontos
- unha mensaxe que describa os descontos que se aplicaron.
Para iso, utiliza os seguintes atributos do obxecto de Liquid:
line_item.total_discountdevolve o importe do desconto que se aplicou ao artigo de liñaline_item.original_line_pricedevolve o prezo do artigo de liña antes dos descontosline_item.messagedevolve unha mensaxe que describe os descontos que se aplicaron ao artigo de liña.
Pode ser útil diferenciar o prezo orixinal da liña do prezo con desconto usando un efecto de riscado:
<tbody class="line-items">
{% for item in cart.items %}
<tr>
<td>{{ item.product.title }}</td>
<td>{{ item.quantity }}</td>
<td>
{{ item.line_price }}
{% if item.total_discount > 0 %}
<s>{{ item.original_line_price }}</s>
( {{ item.message }} )
{% endif %}
</td>
</tr>
{% endfor %}
</tbody>O teu carro debería verse agora así:
| Produto | Cantidade | Total |
|---|---|---|
| Balón de fútbol | 1 | 15,00 $ |
| Pelota de tenis | 5 | 22,50 $ |
| Zapatilla de correr | 1 | 25,00 $ |
| Total | 62,50 $ | |
Actualizar o resumo do carro
Para axudar ao cliente a facer un seguimento do prezo do seu pedido, tamén deberías mostrar:
- o subtotal orixinal do carro, para permitir que os clientes comparen os totais antes e despois do desconto
- o aforro total que o cliente recibiu no seu carro.
De novo, para engadir esta información, utiliza os seguintes atributos do obxecto de Liquid:
cart.total_discountdevolve o importe do desconto aplicado aos artigos no carrocart.original_total_pricedevolve o subtotal do carro antes dos descontos.
Con esta información, o teu bloque .summary actualizado podería verse así:
<tfoot class="summary">
<tr>
<td colspan="2">Subtotal</td>
<td>{{ cart.original_total_price | money }}</td>
</tr>
<tr>
<td colspan="2">Discount Savings</td>
<td>{{ cart.total_discount | money }}</td>
</tr>
<tr>
<td colspan="2">Total</td>
<td>{{ cart.total_price | money }}</td>
</tr>
</tfoot>A táboa do teu carro debería verse agora así:
| Produto | Cantidade | Total |
|---|---|---|
| Balón de fútbol | 1 | 15,00 $ |
| Pelota de tenis | 5 | 22,50 $ |
| Zapatilla de correr | 1 | 25,00 $ |
| Subtotal | 70,00 $ | |
| Aforro de descontos | 7,50 $ | |
| Total | 62,50 $ | |
Ao engadir algúns obxectos de Liquid novos aos teus modelos, podes axudar aos teus clientes a entenderen como se calculan os seus descontos.
Outros exemplos
O seguinte exemplo de Liquid mostra os descontos para cada artigo de liña:
{% if item.original_line_price != item.line_price %}
<small class="original-price"><s>{{ item.original_line_price | money }}</s></small>
{% endif %}
{{ item.line_price | money }}
{% for discount in item.discounts %}
<small class="discount">{{ discount.title }}</small>
{% endfor %}Consulta outro exemplo de desconto que inclúe os cambios no código de Liquid.