Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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();
        }