2016-04-14 1 views
0

Ich möchte diese for-Schleife wieder nach dem Klicken auf die Kasse ausführen, um zu überprüfen, ob die Menge 2 oder weniger ist, um check_nike = true zu setzen. ist dies möglich, ohne die Seite erneut zu laden, nachdem der Kunde die Produktmenge auf 2 gesetzt hat?Shopify run for loop erneut nach dem Klicken auf Check-Out-Button

{% for item in cart.items %} 
       {% if item.title contains 'nike' %} 
       {% if item.quantity > 2 %} 
        {% assign check_nike = false %} 
       {% endif %} 
      {% endif %} 
     {% endfor %} 

Ich habe zwar implementiert dies in meinem theme.liquid

$('body').on('click', '[name="checkout"], [name="goto_pp"], [name="goto_gc"]', function() { 

    if ($('#agree').is(':checked') && {{check_nike}} == true) { 
     $(this).submit(); 
    } 
    else { 
     if({{check_nike}} == false){ 
     alert("You can't only order two Nike products"); 
     } 
     else{ 
     document.getElementById("centerbox1").className += " forgottocheck"; 
     } 
     return false; 
    } 

}); 
</script> 

Thanks :)

Antwort

0

Sie keine flüssigen Code {{ check_nike }} in einem JavaScript für jede Client-Seite Aktivität verwenden können. Stattdessen können Sie versuchen, die Datei cart.js von Shopify zu überprüfen.

Wenn ein Produkt zum Warenkorb hinzugefügt wird, verwenden Sie GET wie in - https://docs.shopify.com/themes/development/getting-started/using-ajax-api#get-cart angezeigt, um festzustellen, ob Ihre spezifische Bedingung übereinstimmt.

Weiter gehend können Sie auch localStorage oder Cookies verwenden, um die Anzahl der GET Anrufe zu reduzieren, indem Sie spezifische Einkaufswageninformationen lokal speichern.