Oppdatere Liquid-malene for Scripts

Hvis du kjører skript i nettbutikken din, må du sjekke hvordan de påvirker sidene i utstillingsvinduet. Mange temaer har kode for å støtte skriptene dine, men noen har det ikke. Hvis temaet ditt ikke har koden, kan du legge den til.

Feilsøking

De fleste problemer med skript og temaer involverer skript for poster som gir rabatter. For eksempel kan totalprisen for bestillingen være riktig, men postprisene viser ikke rabattene. Kundene må forstå hvordan rabattene deres beregnes. De vil se den opprinnelige prisen og prisen med rabatt, samt en kort beskrivelse av rabatten. Hvis noen av disse detaljene mangler i handlekurven, må du legge til Liquid-koden slik at de vises.

En god måte å sjekke hvordan skriptet påvirker utstillingsvinduet på, er å besøke det som kunde og utføre handlingene som utløser skriptet.

Liquid-objektattributter

Følgende lister inneholder Liquid-objektattributter som ofte er nødvendige for å støtte skript i butikkens handlekurv:

Handlekurv-objektattributter:

Post-attributter:

Skriptobjekt:

  • Skriptobjektet kan brukes til å returnere informasjon om en butikks aktive skript. Dette objektet kan være nyttig ved feilsøking av skript.

Eksempel

Følgende eksempel beskriver endringene du kan gjøre i cart.liquid-malen din for å støtte et skript for en post.

Eksempelhandlekurv

Hvis du for eksempel har en handlekurv med tre poster:

  • Fotball
    • Antall: 1
    • Enhetspris: 15,00 $
  • Tennisball
    • Antall: 5
    • Enhetspris: 5,00 $
  • Løpesko
    • Antall: 1
    • Enhetspris: 30,00 $

Og du har publisert et skript som bruker følgende rabatter:

  • 10 % rabatt på to eller flere tennisballer
  • 5 $ i rabatt på alle sko

Da kan cart.liquid-malen din være en enkel tabell som viser postene og et sammendrag av totalbeløpene:

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

Med rabattene fra skriptet oppretter denne malen følgende tabell for handlekurven din:

ProduktAntallTotalt
Fotball115,00 $
Tennisball522,50 $
Løpesko125,00 $
Totalt62,50 $

Oppdater postene

For å vise rabattene som skriptet har lagt til, må vi oppdatere postene for å vise tre viktige opplysninger:

  • postprisen før rabatter
  • postprisen etter rabatter
  • en melding som beskriver rabattene som ble lagt til.

For å gjøre dette, bruker du følgende Liquid-objektattributter:

  • line_item.total_discount returnerer rabattbeløpet som er lagt til for posten
  • line_item.original_line_price returnerer postprisen før rabatter
  • line_item.message returnerer en melding som beskriver rabattene som er lagt til for posten.

Det kan være lurt å skille den opprinnelige postprisen fra den rabatterte postprisen ved hjelp av en gjennomstreking:

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

Handlekurven din bør nå se slik ut:

ProduktAntallTotalt
Fotball115,00 $
Tennisball522,50 $ 25,00 $ (10 % rabatt på to eller flere tennisballer)
Løpesko125,00 $ 30,00 $ (5 $ i rabatt på alle sko)
Totalt62,50 $

Oppdater sammendraget for handlekurven

For å hjelpe kunden med å holde oversikt over bestillingsprisen, bør du også vise:

  • den opprinnelige delsummen for handlekurven, slik at kundene kan sammenligne totalbeløpene før og etter rabatt
  • de totale besparelsene kunden har fått i handlekurven.

For å legge til denne informasjonen, bruker du igjen følgende Liquid-objektattributter:

  • cart.total_discount returnerer rabattbeløpet som er lagt til for varer i handlekurven
  • cart.original_total_price returnerer delsummen for handlekurven før rabatter.

Med denne informasjonen kan den oppdaterte .summary-blokken din se slik ut:

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

Handlekurvtabellen din skal nå se slik ut:

ProduktAntallTotalt
Fotball115,00 $
Tennisball522,50 $ 25,00 $ (10 % rabatt på to eller flere tennisballer)
Løpesko125,00 $ 30,00 $ (5 $ i rabatt på alle sko)
Delsum70,00 $
Rabatt7,50 $
Totalt62,50 $

Ved å legge til noen nye Liquid-objekter i malene dine, kan du hjelpe kundene med å forstå hvordan rabattene deres beregnes.

Andre eksempler

Følgende Liquid-eksempel viser rabattene for hver post:

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

Se et annet rabatteksempel som inkluderer Liquid-kodeendringene.