/// <summary>
        /// Get checkout attribute values
        /// </summary>
        /// <param name="attributes">Attributes</param>
        /// <returns>Checkout attribute values</returns>
        public static CheckoutAttributeValueCollection ParseCheckoutAttributeValues(string attributes)
        {
            var caValues     = new CheckoutAttributeValueCollection();
            var caCollection = ParseCheckoutAttributes(attributes);

            foreach (var ca in caCollection)
            {
                if (!ca.ShouldHaveValues)
                {
                    continue;
                }

                var caValuesStr = ParseValues(attributes, ca.CheckoutAttributeId);
                foreach (string caValueStr in caValuesStr)
                {
                    if (!String.IsNullOrEmpty(caValueStr))
                    {
                        int caValueId = 0;
                        if (int.TryParse(caValueStr, out caValueId))
                        {
                            var caValue = CheckoutAttributeManager.GetCheckoutAttributeValueById(caValueId);
                            if (caValue != null)
                            {
                                caValues.Add(caValue);
                            }
                        }
                    }
                }
            }
            return(caValues);
        }
        private static CheckoutAttributeValueCollection DBMapping(DBCheckoutAttributeValueCollection dbCollection)
        {
            if (dbCollection == null)
            {
                return(null);
            }

            var collection = new CheckoutAttributeValueCollection();

            foreach (var dbItem in dbCollection)
            {
                var item = DBMapping(dbItem);
                collection.Add(item);
            }

            return(collection);
        }