/// <summary>
		/// Creates a Selling Manager product. Sellers use Selling Manager products to store SYI forms for use
		/// as listing templates.
		/// </summary>
		/// 
		/// <param name="SellingManagerProductDetails">
		/// Contains product information that the seller has recorded, such as a product
		/// description and inventory and restocking details.
		/// </param>
		///
		/// <param name="FolderID">
		/// Unique identifier of the folder. This ID is created when the folder is added and is returned by the
		/// <b>AddSellingManagerInventoryFolder</b> call.
		/// </param>
		///
		/// <param name="SellingManagerProductSpecifics">
		/// Specifies an eBay category associated with the product,
		/// defines Item Specifics that are relevant to the product,
		/// and defines variations available for the product
		/// (which may be used to create mult-variation listings).
		/// </param>
		///
		public SellingManagerProductDetailsType AddSellingManagerProduct(SellingManagerProductDetailsType SellingManagerProductDetails, long FolderID, SellingManagerProductSpecificsType SellingManagerProductSpecifics)
		{
			this.SellingManagerProductDetails = SellingManagerProductDetails;
			this.FolderID = FolderID;
			this.SellingManagerProductSpecifics = SellingManagerProductSpecifics;

			Execute();
			return ApiResponse.SellingManagerProductDetails;
		}
		/// <summary>
		/// Revises a Selling Manager product.
		/// 
		/// This call is subject to change without notice; the
		/// deprecation process is inapplicable to this call.
		/// </summary>
		/// 
		/// <param name="SellingManagerProductDetails">
		/// The details of the product that is being revised.
		/// </param>
		///
		/// <param name="SellingManagerFolderDetails">
		/// The details of the folder for this product.
		/// </param>
		///
		/// <param name="DeletedFieldList">
		/// Specifies the name of a field to remove from a Selling Manager product.
		/// The request can contain zero, one, or many instances of DeletedField (one for each field to be removed).
		/// DeletedField accepts the following path names, which remove the corresponding fields:
		/// SellingManagerProductDetails.CustomLabel
		/// SellingManagerProductDetails.QuantityAvailable
		/// SellingManagerProductDetails.UnitCost
		/// These values are case-sensitive. Use values that match the case of the schema element names.
		/// </param>
		///
		/// <param name="SellingManagerProductSpecifics">
		/// Specifies an eBay category associated with the product,
		/// defines Item Specifics that are relevant to the product,
		/// and defines variations available for the product
		/// (which may be used to create mult-variation listings).
		/// </param>
		///
		public SellingManagerProductDetailsType ReviseSellingManagerProduct(SellingManagerProductDetailsType SellingManagerProductDetails, SellingManagerFolderDetailsType SellingManagerFolderDetails, StringCollection DeletedFieldList, SellingManagerProductSpecificsType SellingManagerProductSpecifics)
		{
			this.SellingManagerProductDetails = SellingManagerProductDetails;
			this.SellingManagerFolderDetails = SellingManagerFolderDetails;
			this.DeletedFieldList = DeletedFieldList;
			this.SellingManagerProductSpecifics = SellingManagerProductSpecifics;

			Execute();
			return ApiResponse.SellingManagerProductDetails;
		}
        /// <summary>
        /// Revises a Selling Manager Product.
        ///
        /// This call is subject to change without notice; the
        /// deprecation process is inapplicable to this call. The user must have a Selling Manager Pro subscription to use this call.
        /// </summary>
        ///
        /// <param name="SellingManagerProductDetails">
        /// The details of the product that is being revised.
        /// </param>
        ///
        /// <param name="SellingManagerFolderDetails">
        /// The details of the folder for this product.
        /// </param>
        ///
        /// <param name="DeletedFieldList">
        /// Specifies the name of a field to remove from a Selling Manager product.
        /// The request can contain zero, one, or many instances of DeletedField (one for each field to be removed).
        /// DeletedField accepts the following path names, which remove the corresponding fields:
        /// SellingManagerProductDetails.CustomLabel
        /// SellingManagerProductDetails.QuantityAvailable
        /// SellingManagerProductDetails.UnitCost
        /// These values are case-sensitive. Use values that match the case of the schema element names.
        /// </param>
        ///
        /// <param name="SellingManagerProductSpecifics">
        /// Specifies an eBay category associated with the product,
        /// defines Item Specifics that are relevant to the product,
        /// and defines variations available for the product
        /// (which may be used to create multi-variation listings).
        /// </param>
        ///
        public SellingManagerProductDetailsType ReviseSellingManagerProduct(SellingManagerProductDetailsType SellingManagerProductDetails, SellingManagerFolderDetailsType SellingManagerFolderDetails, List <string> DeletedFieldList, SellingManagerProductSpecificsType SellingManagerProductSpecifics)
        {
            this.SellingManagerProductDetails   = SellingManagerProductDetails;
            this.SellingManagerFolderDetails    = SellingManagerFolderDetails;
            this.DeletedFieldList               = DeletedFieldList;
            this.SellingManagerProductSpecifics = SellingManagerProductSpecifics;

            Execute();
            return(ApiResponse.SellingManagerProductDetails);
        }
        /// <summary>
        /// Creates a Selling Manager product. Sellers use Selling Manager products to store SYI forms for use
        /// as listing templates.
        /// </summary>
        ///
        /// <param name="SellingManagerProductDetails">
        /// Contains product information that the seller has recorded, such as a product
        /// description and inventory and restocking details.
        /// </param>
        ///
        /// <param name="FolderID">
        /// Unique identifier of the folder. This ID is created when the folder is added and is returned by the
        /// <b>AddSellingManagerInventoryFolder</b> call.
        /// </param>
        ///
        /// <param name="SellingManagerProductSpecifics">
        /// Specifies an eBay category associated with the product,
        /// defines Item Specifics that are relevant to the product,
        /// and defines variations available for the product
        /// (which may be used to create mult-variation listings).
        /// </param>
        ///
        public SellingManagerProductDetailsType AddSellingManagerProduct(SellingManagerProductDetailsType SellingManagerProductDetails, long FolderID, SellingManagerProductSpecificsType SellingManagerProductSpecifics)
        {
            this.SellingManagerProductDetails = SellingManagerProductDetails;
            this.FolderID = FolderID;
            this.SellingManagerProductSpecifics = SellingManagerProductSpecifics;

            Execute();
            return(ApiResponse.SellingManagerProductDetails);
        }