Kundvagnspanelen visar gåvan eller paketet till fullt pris
Om kundvagnspanelen visar en gåva eller paketerad artikel till fullt pris medan summan i kundvagnen och kassan stämmer, bör du kontrollera hur panelen läser och uppdaterar priserna. Äldre Liquid-prisfält kan utelämna automatiska rabatter, och en panel kan också behålla en inaktuell ögonblicksbild av kundvagnen. Den här artikeln förklarar hur du skiljer fallen åt.
Snabbkontroll: stämmer summan?
Innan du ändrar något bör du bekräfta var det felaktiga priset faktiskt visas:
- Om priset per rad i panelen ser felaktigt ut, till exempel fullt pris på en gåva eller rabatterad artikel, men delsumman i kundvagnen längst ned i panelen och totalsumman i kassan stämmer, är detta endast ett visningsproblem. Läs vidare.
- Om själva totalsumman i kassan är felaktig är det ett annat problem, till exempel att en annan rabattapp staplar rabatter eller att rabatten inte matchar. Den här artikeln behandlar inte det fallet.
Bundlex återger inte din kundvagnspanel. Rabatten tillämpas av en Shopify-funktion för kundvagnsrabatter som körs i kassan, och Bundlex kan inte skriva om ett temas prisvisning per rad.
Varför panelen visar fullt pris
Bundlex tillämpar sin rabatt genom en Shopify-funktion för kundvagnsrabatter. Funktionen fördelar rabatten på kundvagnsraderna, vilket Shopify behandlar som en form av automatisk rabatt.
Problemet ligger i hur vissa teman återger varje kundvagnsrad. Äldre eller anpassade kundvagnspaneler visar radpriset med Liquid-fälten line_item.price och line_item.line_price. Shopifys egen dokumentation markerar dessa fält som föråldrade eftersom de inte återspeglar automatiska rabatter. Panelen visar därför det ursprungliga priset utan rabatt, trots att Shopify har registrerat rabatten korrekt på raden.
Resultatet som kunderna ser är att varje rad i paketet visar samma fulla styckepris, och att en kostnadsfri gåvorad kan se ut som om den debiteras. Samtidigt är delsumman och kassan korrekta, eftersom de beräknas utifrån de rabatterade värdena.
Bekräfta med /cart.js
Du kan bevisa att rabatten tillämpas korrekt, oberoende av vad panelen visar:
- Lägg till paketet, eller erbjudandet med den kostnadsfria gåvan, i kundvagnen från butiken.
- Öppna
/cart.jsi webbläsaren i samma butik, till exempel genom att besökahttps://yourstore.com/cart.js. - Hitta den berörda raden och titta på
final_priceochfinal_line_price.
För en fungerande rad med kostnadsfri gåva ser du något i stil med final_price: 0 och final_line_price: 0, med rabatten listad under den radens discounts, det vill säga erbjudandets titel och det rabatterade beloppet. Kontrollera vilka fält panelen faktiskt återger. Föråldringen som beskrivs ovan gäller Liquid-fälten line_item.price och line_item.line_price; ett /cart.js-svar identifierar inte ensamt källan till panelens data.
Så tolkar du resultatet:
final_price/final_line_priceåterspeglar rabatten, men panelen visar fullt pris. Kontrollera både fälten som panelen återger och om den uppdateras efter ändringar i kundvagnen.final_priceåterspeglar inte rabatten. Då ligger problemet inte i panelens visning. Undersök i stället kundvagnsfunktionen, till exempel om paketet taggades korrekt, om rabattens metafält är aktuellt eller om regler för kundbehörighet, såsom B2B eller kundtaggar, gäller.
Lösningen: använd final_price och final_line_price
Om Liquid-kodavsnittet för kundvagnspanelen använder dessa föråldrade fält för det aktuella priset ersätter du dem med motsvarande final_-fält:
line_item.priceblirline_item.final_priceline_item.line_priceblirline_item.final_line_price
Fälten final_ innehåller rabatter på radnivå. Om din drawer använder JavaScript ska du även kontrollera att den renderar ett färskt kundvagnssvar eller uppdaterade temasektioner efter ändringar. Att ersätta ett prisfält åtgärdar inte en inaktuell ögonblicksbild.
Eftersom värdet för
priceper rad är ett statiskt Liquid-attribut kan Bundlex inte skriva om det åt dig. Rabattinformationen finns redan ifinal_price. Temat behöver bara läsa den.
Om du använder ett inbyggt jämförelsepris
Om dina varianter även har en Shopify-compare_at_price (en överstrykning som "50 % rabatt") renderas den märkningen av temat från variantinformationen och har inget samband med Bundlex-rabatten. När du har bytt till fälten final_ återspeglar radpriset Bundlex-rabatten, medan eventuell överstrykning av jämförelsepriset fortsätter att visas enligt temats konfiguration.
Det andra fallet: en kvarlämnad produktrad för en gåva till 0 USD
Ett närliggande men separat symptom: en kund väljer ett erbjudande som innehåller en gratisprodukt och minskar sedan huvudproduktens kvantitet under erbjudandets gräns. Huvudraden går korrekt ner till en lägre nivå, men en rad för gratisprodukten ligger kvar i kundvagnen och visar 0 USD.
Så här fungerar det. När kvantiteten hamnar under gränsen slutar kundvagnsfunktionen korrekt att tillämpa rabatten och tar bort tilldelningen. Men en Shopify-kundvagnsfunktion kan inte ta bort en kundvagnsrad (det finns ingen sådan åtgärd tillgänglig för den). För en gratisprodukt som har konfigurerats som en katalogvariant för 0 USD finns det inget pris att "återgå till", så den nu obehöriga produktraden ligger helt enkelt kvar till 0 USD.
För att hantera detta innehåller Bundlex en rensning på widgetnivå som körs efter en ändring av kundvagnen och tar bort den överblivna raden för gratisprodukten. Det finns villkor för när den kan köras:
- Endast gratisprodukter. Betalda tillägg hanteras av paketets integritet, inte av denna rensning.
- Sökvägar för ändringar av kundvagnen som stöds. När en fullständig Bundlex-widget är aktiv hanterar rensningen både fetch- och XHR-ändringar av kundvagnen. På sidor som endast kör skriptet för rensning av gratisprodukter omfattar avlyssningen endast fetch-ändringar. Temats uppdateringsbeteende kan fortfarande påverka vad drawern visar.
- Rensningen görs efter bästa förmåga. Om ett steg misslyckas kan raden för gratisprodukten fortsätta att visas tills nästa interaktion med kundvagnen.
När en rad har tagits bort skickar Bundlex händelser för uppdatering av kundvagnen för att uppmana temat att rendera om. I Dawn och de kostnadsfria Shopify-teman som bygger på Dawn ritar Bundlex även om kundvagnsdrawern, kundvagnssidan och antalet på kundvagnsikonen. Det finns ingen enskild händelse för uppdaterad kundvagn som alla Shopify-teman implementerar, så i andra teman som inte lyssnar efter dessa händelser kan drawern förbli inaktuell tills nästa interaktion. Det viktigaste är att: kundvagnens beräkning alltid är korrekt. Kunden debiteras inte för den kvarlämnade raden på 0 USD, och totalsumman i kassan är korrekt oavsett vad drawern tillfälligt visar.
Sammanfattning
- Drawern visar fullt pris, men totalsumman och kassan är korrekta: kontrollera om det finns föråldrade Liquid-prisfält eller inaktuella kundvagnsdata.
- Verifiera med
/cart.js:final_price/final_line_priceåterspeglar rabatten. - Åtgärda det i temat: byt dessa fält till
final_priceochfinal_line_price. - En kvarlämnad rad för en gåva på 0 USD efter att kvantiteten har minskats är förväntad (Shopify kan inte ta bort rader). Bundlex rensar bort den i teman som stöds, och priset är alltid korrekt i kassan.
Var den här artikeln till hjälp?
Din feedback hjälper oss att förbättra vår dokumentation.