public void AddToCart(Product product, ProductVariant variant) { if (_cart == null) { _cart = ShopifyHelper.CreateCart(); } // Handle adding a particular variant to the cart // For more information on adding variants to the cart visit // https://help.shopify.com/api/sdks/custom-storefront/unity-buy-sdk/getting-started#create-cart-line-items-based-on-selected-options var existingLineItem = _cart.LineItems.Get(variant); if (existingLineItem == null) { _cart.LineItems.AddOrUpdate(variant); var instance = Instantiate(CartPanelLineItemTemplate); instance.transform.SetParent(Content, false); instance.SetCurrentProduct(product, variant, 1); instance.OnVariantLineItemQuantityAdjustment.AddListener(HandleVariantLineItemQuantityAdjustment); _idCartPanelLineItemMapping.Add(variant.id(), instance); _lineItems.Add(instance); } else { _cart.LineItems.AddOrUpdate(variant, existingLineItem.Quantity + 1); var cartPanelLineItem = _idCartPanelLineItemMapping[variant.id()]; cartPanelLineItem.Quantity.text = existingLineItem.Quantity.ToString(); } if (!_idVariantMapping.ContainsKey(variant.id())) { _idVariantMapping.Add(variant.id(), variant); } if (!_idProductMapping.ContainsKey(variant.id())) { _idProductMapping.Add(variant.id(), product); } DispatchCartQuantityChanged(); UpdateSeparatorVisibility(); }
public void AddToCart(Product product, ProductVariant variant) { if (_cart == null) { _cart = ShopifyHelper.CreateCart(); } var existingLineItem = _cart.LineItems.Get(variant); if (existingLineItem == null) { _cart.LineItems.AddOrUpdate(variant); var instance = Instantiate(HatCartPanelItem); instance.transform.SetParent(Content, false); instance.SetCurrentProduct(product, variant, 1); instance.OnVariantLineItemQuantityAdjustment.AddListener(HandleVariantLineItemQuantityAdjustment); _idCartPanelLineItemMapping.Add(variant.id(), instance); _lineItems.Add(instance); } else { _cart.LineItems.AddOrUpdate(variant, existingLineItem.Quantity + 1); var cartPanelLineItem = _idCartPanelLineItemMapping[variant.id()]; cartPanelLineItem.Quantity.text = existingLineItem.Quantity.ToString(); } if (!_idVariantMapping.ContainsKey(variant.id())) { _idVariantMapping.Add(variant.id(), variant); } if (!_idProductMapping.ContainsKey(variant.id())) { _idProductMapping.Add(variant.id(), product); } DispatchCartQuantityChanged(); // UpdateSeparatorVisibility(); }