2017-02-26 8 views
0

Ich ändere einen Shopify Warenkorb mit Ajax, der Warenkorb wird erfolgreich geändert, aber um den aktualisierten Warenkorb anzuzeigen, muss der Benutzer die Seite aktualisieren. Ich möchte die Warenkorbänderungen OHNE eine Aktualisierung anzeigen.Update Shopify Warenkorb mit Ajax ohne Seitenaktualisierung

Ich bin mit der Ajax-api ganz gut, und ich kann hinzufügen und entfernen Artikel mit:

Shopify.addItem(); 
Shopify.removeItem(); 

Die große Arbeit, aber sie muss der Benutzer die Seite neu zu laden, das Neue sehen/Positionen geändert in ihrem Wagen. Kennen Sie eine Möglichkeit, den aktualisierten Warenkorb ohne Neuladen der Seite anzuzeigen?

So hat jeder das komplette Bild, hier ist mein Code:

function poll(products) { 
$.ajax({ 
    url: "/apps/proxy", 
    data: {products: products}, 
    type: "GET", 
    dataType: "json", 
    complete: setTimeout(function() 
     {cartAdd(); poll(products)}, 15000), 
    success: function(data) { 
     $.each(data, function(incoming_key, incoming_value){ 
     Shopify.getCart(function(cart){ 
      $.each(cart.items, function(cart_key, cart_value){ 
      if(cart_value.variant_id == incoming_value.id_to_remove){     
       Shopify.addItem(incoming_value.variant_id, incoming_value.quantity); 
       Shopify.removeItem(incoming_value.id_to_remove); 
       console.log("some reason the incoming id is null or maybe not " + incoming_value.variant_id); 
      } 
      else if(cart_value.variant_id == incoming_value.variant_id && cart_value.quantity != incoming_value.quantity){ 
       Shopify.changeItem(cart_value.variant_id, incoming_value.quantity); 
      } 
      }); 
     }); 
     }); 
    }, 
}); 
} 

Antwort

1

Sie einen Ajax-Aufruf in der Warenkorb Seite /cart, die erforderlichen Elemente erhalten und sie auf der aktuellen Seite ersetzen.

Fügen Sie den Code für das obige nach der ersten $.each Funktion hinzu.

Verwandte Themen