Ažuriranje Liquid šablona za Scripts

Ako izvršavate skripte u svojoj internet prodavnici, morate da proverite kako one utiču na stranice u izlogu. Mnoge teme uključuju kôd koji podržava skripte, ali neke ne. Ako vaša tema nema kôd, možete da ga dodate.

Rešavanje problema

Većina problema sa skriptama i temama odnosi se na skripte stavki koje nude popuste. Na primer, ukupna cena porudžbine je tačna, ali cene stavki ne prikazuju popuste. Kupci moraju da razumeju kako se izračunavaju njihovi popusti. Oni žele da vide originalnu i sniženu cenu, kao i kratak opis popusta. Ako neki od ovih detalja nedostaju u vašoj korpi, potrebno je da dodate Liquid kôd da bi se oni prikazali.

Dobar način da proverite kako skripta utiče na vaš izlog je da ga posetite kao kupac i izvršite radnje koje pokreću skriptu.

Atributi Liquid objekata

Sledeće liste sadrže atribute Liquid objekata koji su obično potrebni za podršku skriptama u korpi vaše prodavnice:

Atributi objekta korpe:

Atributi stavke:

Objekat skripte:

  • Objekat skripte može da se koristi za vraćanje informacija o aktivnim skriptama u prodavnici. Ovaj objekat može da bude koristan pri otklanjanju grešaka u skriptama.

Primer

Sledeći primer opisuje promene koje možete da unesete u svoj cart.liquid šablon da biste podržali skriptu stavke.

Primer korpe

Na primer, ako imate korpu sa tri stavke:

  • Fudbalska lopta
    • Količina: 1
    • Jedinična cena: 15,00 $
  • Teniska lopta
    • Količina: 5
    • Jedinična cena: 5,00 $
  • Patika za trčanje
    • Količina: 1
    • Jedinična cena: 30,00 $

I ako ste objavili skriptu koja primenjuje sledeće popuste:

  • 10% popusta na dve ili više teniskih lopti
  • 5 $ popusta na svu obuću

Onda bi vaš cart.liquid šablon mogao da bude jednostavna tabela koja prikazuje stavke i rezime njihovih ukupnih iznosa:

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

Uz popuste koje primenjuje skripta, ovaj šablon kreira sledeću tabelu za vašu korpu:

ProizvodKoličinaUkupno
Fudbalska lopta115,00 $
Teniska lopta522,50 $
Patika za trčanje125,00 $
Ukupno62,50 $

Ažuriranje stavki

Da bi se prikazali popusti koje primenjuje skripta, potrebno je da ažurirate stavke tako da prikazuju tri ključne informacije:

  • cenu stavke pre popusta
  • cenu stavke posle popusta
  • poruku koja opisuje primenjene popuste

Da biste to uradili, koristite sledeće atribute Liquid objekata:

  • line_item.total_discount vraća iznos popusta koji je primenjen na stavku
  • line_item.original_line_price vraća cenu stavke pre popusta
  • line_item.message vraća poruku koja opisuje popuste koji su primenjeni na stavku

Korisno je da originalnu cenu stavke odvojite od snižene cene koristeći efekat precrtanog teksta:

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

Vaša korpa bi sada trebalo da izgleda ovako:

ProizvodKoličinaUkupno
Fudbalska lopta115,00 $
Teniska lopta522,50 $ 25,00 $ (10% popusta na dve ili više teniskih lopti)
Patika za trčanje125,00 $ 30,00 $ (5 $ popusta na svu obuću)
Ukupno62,50 $

Ažuriranje rezimea korpe

Da biste pomogli kupcu da prati cenu svoje porudžbine, trebalo bi da prikažete i sledeće:

  • originalni međuzbir korpe, kako bi kupci mogli da uporede ukupne iznose pre i posle popusta
  • ukupnu uštedu koju je kupac ostvario u korpi

Opet, da biste dodali ove informacije, koristite sledeće atribute Liquid objekata:

  • cart.total_discount vraća iznos popusta koji je primenjen na stavke u korpi
  • cart.original_total_price vraća međuzbir korpe pre popusta

Sa ovim informacijama, vaš ažurirani .summary blok bi mogao da izgleda ovako:

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

Tabela vaše korpe bi sada trebalo da izgleda ovako:

ProizvodKoličinaUkupno
Fudbalska lopta115,00 $
Teniska lopta522,50 $ 25,00 $ (10% popusta na dve ili više teniskih lopti)
Patika za trčanje125,00 $ 30,00 $ (5 $ popusta na svu obuću)
Međuzbir70,00 $
Ušteda od popusta7,50 $
Ukupno62,50 $

Dodavanjem nekoliko novih Liquid objekata u šablone možete da pomognete kupcima da razumeju kako se izračunavaju njihovi popusti.

Drugi primeri

Sledeći Liquid primer prikazuje popuste za svaku stavku:

{% 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 %}

Pogledajte još jedan primer popusta koji uključuje promene Liquid koda.