private stock_available CreateStock(product product, Assort assort, combination combination)
        {
            var stock = new stock_available
            {
                id_product = product.id,
                quantity = assort.Balance
            };
            if (combination != null)
            {
                stock.id_product_attribute = combination.id;
            }

            return _apiFactory.StockFactory.AddList(new List<stock_available> { stock }).First();
        }
        private combination CreateCombination(product product, Assort assort, product_option_value sizeOptionValue, product_option_value colorOptionValue, bool isDefault)
        {
            var combination = new combination
            {
                id_product = product.id,
                reference = assort.Reference,
                ean13 = assort.Ean13,
                associations = new AssociationsCombination(),
                minimal_quantity = 1,
                default_on = Convert.ToInt32(isDefault),
            };
            combination.associations.product_option_values = new List<Bukimedia.PrestaSharp.Entities.AuxEntities.product_option_value>();
            if (colorOptionValue != null)
            {
                combination.associations.product_option_values.Add(new Bukimedia.PrestaSharp.Entities.AuxEntities.product_option_value { id = colorOptionValue.id.Value });
            }
            if(sizeOptionValue != null)
            {
                combination.associations.product_option_values.Add(new Bukimedia.PrestaSharp.Entities.AuxEntities.product_option_value { id = sizeOptionValue.id.Value });
            }

            combination = _apiFactory.CombinationFactory.Add(combination);
            product = ProductsMapper.MapCombination(product, combination);
            _apiFactory.ProductFactory.Update(product);
            return combination;
        }
 private combination CheckCombination(combination combination, Assort assort, product product)
 {
     if (combination != null && combination.reference != assort.Reference)
     {
         combination.reference = assort.Reference;
         _apiFactory.CombinationFactory.Update(combination);
     }
     
     if(!product.associations.combinations.Exists(s => s.id == combination.id))
     {
         product = ProductsMapper.MapCombination(product, combination);
         _apiFactory.ProductFactory.Update(product);
     }
     return combination;
 }
        internal static product MapCombination(product product, combination combination)
        {
            if(combination == null)
            {
                return product;
            }

            product.associations.combinations.Add(
                new combinations
                {
                    id = combination.id.Value
                });
            return product;

        }