private void GetColorAndSize(string color, string size)
        {
            string value    = color + " / " + size;
            var    variants = (List <Shopify.Unity.ProductVariant>)CurrentProduct.variants();

            foreach (var item in variants)
            {
                if (item.title() == value)
                {
                    CurrentVariant = item;
                }
            }


            addToCartButton.interactable = true;
            ChangeColorAddCartButton(true);

            foreach (var item in sizes)
            {
                item.transform.GetChild(1).GetComponent <Image>().enabled = false;
            }

            for (int i = 0; i < sizes.Count; i++)
            {
                if (size == sizes[i].name)
                {
                    sizes[i].gameObject.transform.GetChild(1).GetComponent <Image>().enabled = true;
                }
            }
        }
Example #2
0
        private void HandleDropdownChange(int option)
        {
            // Change the current variant to what has been selected
            var variants = (List <Shopify.Unity.ProductVariant>)CurrentProduct.variants();
            var variant  = variants[VariantsDropdown.value];

            Debug.Log("sss");
            CurrentVariant = variant;

            string imageSrc;

            // If the variant has a particular image
            try {
                imageSrc = variant.image().transformedSrc();
            } catch (NullReferenceException) {
                var images = (List <Shopify.Unity.Image>)CurrentProduct.images();
                imageSrc = images.First().transformedSrc();
            }

            StartCoroutine(ImageHelper.AssignImage(imageSrc, ProductImage));

            ProductPrice.text              = variant.price().ToString("C");
            ProductTitleDescription.text   = CurrentProduct.description();
            ProductTitleDescNoVariant.text = CurrentProduct.description();
        }
        public void SetCurrentProduct(Shopify.Unity.Product product)
        {
            ProductTitle.text = product.title();

            // Reset the variants dropdown
            VariantsDropdown.ClearOptions();

            // Parse variant titles into a list of strings and assign to the dropdown as the new options
            var options  = new List <string>();
            var variants = (List <Shopify.Unity.ProductVariant>)product.variants();

            foreach (var variant in variants)
            {
                options.Add(variant.title());
            }

            VariantsDropdown.AddOptions(options);

            // Only need to show the variants dropdown if there are more than one variant to choose from
            VariantsDropdown.gameObject.SetActive(variants.Count > 1);

            // Show the appropriately positioned description text
            ProductTitleDescription.gameObject.SetActive(variants.Count > 1);
            ProductTitleDescNoVariant.gameObject.SetActive(variants.Count <= 1);

            VariantsDropdown.onValueChanged.AddListener(HandleDropdownChange);

            // Assign the first product image to the main product image display
            var images = (List <Shopify.Unity.Image>)product.images();

            StartCoroutine(ImageHelper.AssignImage(images[0].transformedSrc(), ProductImage));

            RenderVariantImages(images);

            ProductPrice.text              = variants[0].price().ToString("C");
            ProductTitleDescription.text   = product.description();
            ProductTitleDescNoVariant.text = product.description();

            CurrentProduct = product;
            CurrentVariant = variants[0];
        }
        public void SetCurrentProduct(Shopify.Unity.Product product)
        {
            if (hatData.GethatName() == hatName)
            {
                return;
            }
            else
            {
                ResetValue();

                finishDownloadImage = false;
                //productImage.sprite = waitIcon;
            }
            this.product = product;

            hatName           = product.title();
            productTitle.text = hatName;


            var variants = (List <Shopify.Unity.ProductVariant>)product.variants();

            string metafield = variants[0].metafields().edges()[0].node().value();

            var    splitData = metafield.Split('\v');
            string data      = "";

            for (int i = 0; i < splitData.Length; i++)
            {
                data = data + splitData[i];
            }

            info_JSON = JsonUtility.FromJson <Info_JSON>(data);

            //specifications
            for (int i = 0; i < info_JSON.specs_variant.Count; i++)
            {
                string title = "<b>" + info_JSON.specs_variant[i].title + "</b>" + " : ";

                string text = info_JSON.specs_variant[i].text;
                text = text.Replace("&#34", "''");
                specifications.text = specifications.text + title + text + "\n";
            }

            //materials
            for (int i = 0; i < info_JSON.materials.Count; i++)
            {
                string title = "<b>" + info_JSON.materials[i].title + "</b>" + " : ";
                string text  = info_JSON.materials[i].text;

                materials.text = materials.text + title + text + "\n";
            }

            //information basic
            for (int i = 0; i < info_JSON.summary_box.Count; i++)
            {
                string title = info_JSON.summary_box[i].title;
                string text  = "<b>" + info_JSON.summary_box[i].text + "</b>";

                var info = Instantiate(infoBasicPanel, contentInfoBasic);
                info.SetActive(true);
                info.GetComponent <InfoBasic>().title.text = title;
                info.GetComponent <InfoBasic>().text.text  = text;

                if (i < info_JSON.summary_box.Count - 1)
                {
                    var lin = Instantiate(line, contentInfoBasic);
                    lin.SetActive(true);
                    lines.Add(lin);
                }
                infoB.Add(info);
            }



            //   Utils.GetBrimGruop(product, brimGruop , brimGruopTitle);
            // Utils.GetCrownShape(product, crown, crownTitle);

            // productImage.sprite = hatData.GethatImage();

            var options = new List <string>();

            var List_color_code_map = product.tags();

            var img = product.images();

            foreach (var variant in variants)
            {
                if (variant.availableForSale())
                {
                    string   name  = variant.title();
                    string[] names = name.Split('/');

                    var NameColor = names[0].Trim();
                    var NameSize  = names[1].Trim();

                    if (m_ColorsAndSizes.Count > 0)
                    {
                        if (SearchColorName(m_ColorsAndSizes, NameColor) == false)
                        {
                            ColorsAndSizes d = new ColorsAndSizes();
                            d.NameColor = NameColor;
                            d.sku       = Utils.GetSKU(List_color_code_map);
                            string tagColor = "color_code_map:" + NameColor;
                            d.color_code_map = Utils.GetColorCodeMap(List_color_code_map, tagColor);

                            List <ReferienceHats> m_ReferienceHats = new List <ReferienceHats>();

                            string _URLImage           = "";
                            string _URLExperienceImage = "";
                            foreach (Shopify.Unity.ImageEdge item in img.edges())
                            {
                                string URLglobal           = item.node().transformedSrc("grande");
                                string URLExperienceglobal = item.node().transformedSrc("grande");
                                if (d.sku != "" && d.color_code_map != "")
                                {
                                    string text = d.sku + "-" + d.color_code_map;
                                    if (URLglobal.Contains(text + "-F01"))
                                    {
                                        _URLImage = URLglobal;
                                    }

                                    //if(SearchReferienceceName(rh, URLglobal) == false)
                                    //{

                                    //}
                                    SearchTypeViewHat(m_ReferienceHats, URLglobal, text);

                                    //ordenar la lista(vistas del sombrero)
                                    m_ReferienceHats = Utils.onSortReferienceList(m_ReferienceHats);

                                    string v = d.sku + "-" + d.color_code_map;

                                    if (URLExperienceglobal.Contains(v + "-HF01"))
                                    {
                                        _URLExperienceImage = URLExperienceglobal;
                                    }
                                    else if (URLExperienceglobal.Contains(v + "-HM01"))
                                    {
                                        _URLExperienceImage = URLExperienceglobal;
                                    }
                                    else if (URLExperienceglobal.Contains(v + "-MF01"))
                                    {
                                        _URLExperienceImage = URLExperienceglobal;
                                    }
                                }
                            }

                            d.URLImage      = _URLImage;
                            d.URLExperience = _URLExperienceImage;
                            d.sizes.Add(NameSize);

                            d.ReferenceHats = m_ReferienceHats;

                            m_ColorsAndSizes.Add(d);
                        }
                        else
                        {
                            AddSizes(m_ColorsAndSizes, NameColor, NameSize);
                        }
                    }
                    else
                    {
                        ColorsAndSizes d = new ColorsAndSizes();
                        d.NameColor = NameColor;
                        d.sku       = Utils.GetSKU(List_color_code_map);
                        string tagColor = "color_code_map:" + NameColor;
                        d.color_code_map = Utils.GetColorCodeMap(List_color_code_map, tagColor);

                        List <ReferienceHats> m_ReferienceHats = new List <ReferienceHats>();

                        string _URLImage           = "";
                        string _URLExperienceImage = "";
                        foreach (Shopify.Unity.ImageEdge item in img.edges())
                        {
                            string URLglobal           = item.node().transformedSrc("grande");
                            string URLExperienceglobal = item.node().transformedSrc("grande");

                            if (d.sku != "" && d.color_code_map != "")
                            {
                                string text = d.sku + "-" + d.color_code_map;
                                if (URLglobal.Contains(text + "-F01"))
                                {
                                    _URLImage = URLglobal;
                                }

                                //if (SearchReferienceceName(rh, URLglobal) == false)
                                //{

                                //}
                                SearchTypeViewHat(m_ReferienceHats, URLglobal, text);

                                //ordenar la lista(vistas del sombrero)
                                m_ReferienceHats = Utils.onSortReferienceList(m_ReferienceHats);

                                string v = d.sku + "-" + d.color_code_map;

                                if (URLExperienceglobal.Contains(v + "-HF01"))
                                {
                                    _URLExperienceImage = URLExperienceglobal;
                                }
                                else if (URLExperienceglobal.Contains(v + "-HM01"))
                                {
                                    _URLExperienceImage = URLExperienceglobal;
                                }
                                else if (URLExperienceglobal.Contains(v + "-MF01"))
                                {
                                    _URLExperienceImage = URLExperienceglobal;
                                }
                            }
                        }



                        d.URLImage      = _URLImage;
                        d.URLExperience = _URLExperienceImage;
                        d.sizes.Add(NameSize);

                        d.ReferenceHats = m_ReferienceHats;

                        m_ColorsAndSizes.Add(d);
                    }

                    options.Add(variant.title());
                }
            }

            //if (m_ColorsAndSizes.Count > 1)
            //    tryButton.interactable = true;
            //else
            //    tryButton.interactable = false;

            //GetImages
            OnGetHatImageColors();
            OnGetHatReferience();
            OnGetHatExperience();

            //instantiate colors
            if (m_ColorsAndSizes.Count <= 0)
            {
                addToCartButton.interactable = false;
                ChangeColorAddCartButton(false);
            }
            for (int i = 0; i < m_ColorsAndSizes.Count; i++)
            {
                var colorLocalButton = Instantiate(colorButton.gameObject, colorButton.gameObject.transform.parent);
                colorLocalButton.name = m_ColorsAndSizes[i].NameColor;
                int indexHat = i;
                colors.Add(colorLocalButton);
                colorLocalButton.GetComponent <Button>().onClick.AddListener(delegate { InstantiateSizes(true, colorLocalButton.name, indexHat); });
                colorLocalButton.SetActive(true);
                nameLocal = m_ColorsAndSizes[0].NameColor;
            }

            CurrentProduct = product;
            CurrentVariant = variants[0];


            if (m_ColorsAndSizes.Count > 0)
            {
                InstantiateSizes(true, m_ColorsAndSizes[0].NameColor, 0);
            }
            else
            {
                onlyHat.sprite      = hatData.GethatImage();
                productImage.sprite = hatData.GethatImage();
                onlyHat.gameObject.SetActive(true);
                iconMask.SetActive(false);
            }
        }