Pereiti prie pagrindinio turinio
Trikčių šalinimas

Krepšelio skydelyje dovana arba rinkinio prekė rodoma visa kaina

Jei krepšelio skydelyje dovana arba rinkinio prekė rodoma visa kaina, nors krepšelio suma ir atsiskaitymo suma yra teisingos, patikrinkite, kaip skydelis nuskaito ir atnaujina kainas. Senesni Liquid kainos laukai gali neįtraukti automatinių nuolaidų, o skydelyje taip pat gali būti naudojama pasenusi krepšelio kopija. Šiame straipsnyje paaiškinama, kaip atskirti šiuos atvejus.

Greitas patikrinimas: ar bendra suma teisinga?

Prieš ką nors keisdami patvirtinkite, kur iš tikrųjų rodoma neteisinga kaina:

  • Jei skydelyje rodoma vienos eilutės kaina atrodo neteisinga, tai yra, dovanai arba prekei su nuolaida rodoma visa kaina, bet krepšelio tarpinė suma skydelio apačioje ir atsiskaitymo suma yra teisingos, tai tik rodymo problema. Skaitykite toliau.
  • Jei pati atsiskaitymo suma yra neteisinga, tai kita problema, pavyzdžiui, kartu taikoma kitos nuolaidų programos nuolaida arba netinkamai pritaikyta nuolaida. Šis straipsnis šio atvejo neapima.

Bundlex neatvaizduoja jūsų krepšelio skydelio. Nuolaidą pritaiko Shopify krepšelio nuolaidos funkcija, veikianti atsiskaitymo metu, o Bundlex negali perrašyti temos rodomos vienos eilutės kainos.

Kodėl skydelyje rodoma visa kaina

Bundlex pritaiko nuolaidą naudodama Shopify krepšelio nuolaidos funkciją. Ši funkcija paskirsto nuolaidą krepšelio eilutėms, kurias Shopify traktuoja kaip automatinės nuolaidos formą.

Problema slypi tame, kaip kai kurios temos atvaizduoja kiekvieną krepšelio eilutę. Senesni arba pasirinktiniai krepšelio skydeliai eilutės kainą rodo naudodami Liquid laukus line_item.price ir line_item.line_price. Shopify dokumentacijoje šie laukai pažymėti kaip pasenę, nes jie neatspindi automatinių nuolaidų. Todėl skydelyje rodoma pradinė kaina be nuolaidos, nors Shopify teisingai įrašė nuolaidą tai eilutei.

Pirkėjai mato tokį rezultatą: kiekviena rinkinio eilutė rodoma ta pačia visa vieneto kaina, o nemokama, dovanų eilutė gali atrodyti kaip apmokestinta. Tuo metu tarpinė suma ir atsiskaitymo suma yra teisingos, nes jos apskaičiuojamos pagal vertes su nuolaida.

Patvirtinkite naudodami /cart.js

Galite įrodyti, kad nuolaida pritaikoma teisingai, nepriklausomai nuo to, ką rodo skydelis:

  1. Parduotuvėje pridėkite rinkinį arba pasiūlymą su nemokama dovana į krepšelį.
  2. Naršyklėje atidarykite /cart.js toje pačioje parduotuvėje, pavyzdžiui, apsilankykite https://yourstore.com/cart.js.
  3. Raskite paveiktą eilutę ir peržiūrėkite final_price bei final_line_price.

Veikiančioje nemokamos dovanos eilutėje matysite maždaug final_price: 0 ir final_line_price: 0, o nuolaida bus pateikta tos eilutės discounts lauke, kuriame nurodomas pasiūlymo pavadinimas ir suma su nuolaida. Patikrinkite, kuriuos laukus iš tikrųjų atvaizduoja jūsų skydelis. Pirmiau aprašytas pasenimas taikomas Liquid laukams line_item.price ir line_item.line_price; vien /cart.js atsakymas neleidžia nustatyti skydelio duomenų šaltinio.

Rezultato interpretavimas:

  • final_price / final_line_price atspindi nuolaidą, bet skydelyje rodoma visa kaina. Patikrinkite ir skydelio atvaizduojamus laukus, ir tai, ar jis atnaujinamas pasikeitus krepšeliui.
  • final_price neatspindi nuolaidos. Tuomet problema kyla ne dėl skydelio rodymo. Patikrinkite krepšelio funkcijos veikimą, pavyzdžiui, ar rinkinys buvo tinkamai pažymėtas, ar nuolaidos metalaikai yra aktualūs ir ar taikomos pirkėjo tinkamumo taisyklės, tokios kaip B2B arba pirkėjo žymos.

Sprendimas: naudokite final_price ir final_line_price

Jei krepšelio skydelio Liquid fragmente dabartinei kainai naudojami šie pasenę laukai, pakeiskite juos atitinkamais final_ laukais:

  • line_item.price pakeiskite į line_item.final_price
  • line_item.line_price pakeiskite į line_item.final_line_price

Laukai final_ apima eilutės lygio nuolaidas. Jei jūsų krepšelio stalčius naudoja „JavaScript“, taip pat patikrinkite, ar po pakeitimų jis atvaizduoja naują krepšelio atsaką arba atnaujintus temos skyrius. Pakeitus kainos lauką, pasenusi momentinė kopija nebus atnaujinta.

Kadangi kiekvienos eilutės price reikšmė yra statinis „Liquid“ atributas, Bundlex negali jos perrašyti už jus. Nuolaidos duomenys jau yra final_price, temai tereikia juos nuskaityti.

Jei naudojate savąją palyginamąją kainą

Jei jūsų variantai taip pat turi Shopify compare_at_price (perbrauktą žymą, pvz., „50 % nuolaida“), šią žymą tema atvaizduoja pagal varianto duomenis, todėl ji nesusijusi su Bundlex nuolaida. Perėjus prie final_ laukų, eilutės kaina atspindės Bundlex nuolaidą, o perbraukta palyginamoji kaina ir toliau bus rodoma taip, kaip sukonfigūruota jūsų temoje.

Kitas atvejis: likusi dovanos eilutė, kurios kaina yra 0 USD

Susijęs, bet atskiras požymis: klientas pasirenka pasiūlymą, į kurį įtraukta nemokama dovana, tada sumažina pagrindinės prekės kiekį žemiau pasiūlymo ribos. Pagrindinės prekės eilutė tinkamai pereina į žemesnį lygį, tačiau nemokamos dovanos eilutė lieka krepšelyje ir rodoma kaip 0 USD.

Štai kodėl taip nutinka. Kai kiekis tampa mažesnis už ribą, krepšelio funkcija tinkamai nustoja taikyti nuolaidą ir pašalina paskirstymą. Tačiau Shopify krepšelio funkcija negali pašalinti krepšelio eilutės (jai nepasiekiama pašalinimo operacija). Jei nemokama dovana sukonfigūruota kaip katalogo variantas, kurio kaina yra 0 USD, nėra kainos, į kurią būtų galima „grįžti“, todėl dabar sąlygų nebeatitinkanti dovanos eilutė tiesiog lieka su 0 USD kaina.

Kad tai išspręstų, Bundlex įtraukia valdiklio pusėje veikiantį valymą, kuris paleidžiamas po krepšelio pakeitimo ir pašalina likusią dovanos eilutę. Jis gali veikti tik esant tam tikroms sąlygoms:

  • Tik nemokamoms dovanoms. Mokami papildomi elementai tvarkomi naudojant rinkinio vientisumą, o ne šį valymą.
  • Palaikomi krepšelio pakeitimo keliai. Kai veikia visas Bundlex valdiklis, valymas apdoroja ir „fetch“, ir XHR krepšelio pakeitimus. Puslapiuose, kuriuose veikia tik dovanos valymo scenarijus be valdiklio, perėmimas apima tik „fetch“ pakeitimus. Temos atnaujinimo elgsena vis tiek gali turėti įtakos tam, ką rodo krepšelio stalčius.
  • Valymas atliekamas pagal galimybes. Jei kuris nors veiksmas nepavyksta, dovanos eilutė gali likti matoma iki kitos sąveikos su krepšeliu.

Pašalinęs eilutę, Bundlex išsiunčia krepšelio atnaujinimo įvykius, kad paskatintų temą atvaizduoti turinį iš naujo. „Dawn“ temoje ir nemokamose Shopify temose, sukurtose jos pagrindu, Bundlex taip pat iš naujo atvaizduoja krepšelio stalčių, krepšelio puslapį ir pačią krepšelio piktogramos skaitiklio reikšmę. Nėra vieno krepšelio atnaujinimo įvykio, kurį įgyvendintų kiekviena Shopify tema, todėl kitose temose, kurios į šiuos įvykius nereaguoja, stalčius gali likti neatnaujintas iki kitos sąveikos. Svarbiausia: krepšelio skaičiavimai visada teisingi. Klientas nebus apmokestintas už likusią 0 USD eilutę, o atsiskaitymo suma bus tiksli, nepaisant to, ką stalčius trumpam rodo.

Santrauka

  • Stalčius rodo visą kainą, tačiau bendra suma ir atsiskaitymas yra teisingi: patikrinkite, ar nenaudojami pasenę „Liquid“ kainos laukai arba pasenę krepšelio duomenys.
  • Patikrinkite naudodami /cart.js: final_price / final_line_price atspindi nuolaidą.
  • Pataisykite temoje: pakeiskite šiuos laukus į final_price ir final_line_price.
  • Likusi 0 USD dovanos eilutė sumažinus kiekį yra tikėtina, nes Shopify negali pašalinti eilučių; Bundlex ją išvalo palaikomose temose, o atsiskaitymo metu kaina visada yra teisinga.

Ar šis straipsnis buvo naudingas?

Jūsų atsiliepimai padeda mums tobulinti dokumentaciją.

Ačiū, toliau tobulinsime šį straipsnį.

Norite pasikalbėti su mūsų komanda? Vis dar turite klausimų?

Vis dar reikia pagalbos?

Mūsų komanda pasiekiama vienu spustelėjimu. Parašykite mums ir mes su jumis susisieksime.

Naudojame kelis slapukus, kad ši svetainė veiktų, įvertintume, kaip ji naudojama, ir įjungtume pokalbių valdiklį, kai jį atidarote. Žr. mūsų slapukų politiką.