using Nop.Core.Domain.Orders; using Nop.Web.Models.Media; using Nop.Web.Models.ShoppingCart; namespace Nop.Web.Factories; /// /// Represents the interface of the shopping cart model factory /// public partial interface IShoppingCartModelFactory { /// /// Prepare the estimate shipping model /// /// List of the shopping cart item /// Whether to use customer default shipping address for estimating /// /// A task that represents the asynchronous operation /// The task result contains the estimate shipping model /// Task PrepareEstimateShippingModelAsync(IList cart, bool setEstimateShippingDefaultAddress = true); /// /// Prepare the shopping cart model /// /// Shopping cart model /// List of the shopping cart item /// Whether model is editable /// Whether to validate checkout attributes /// Whether to prepare and display order review data /// /// A task that represents the asynchronous operation /// The task result contains the shopping cart model /// Task PrepareShoppingCartModelAsync(ShoppingCartModel model, IList cart, bool isEditable = true, bool validateCheckoutAttributes = false, bool prepareAndDisplayOrderReviewData = false); /// /// Prepare the wishlist model /// /// Wishlist model /// List of the shopping cart item /// Whether model is editable /// /// A task that represents the asynchronous operation /// The task result contains the wishlist model /// Task PrepareWishlistModelAsync(WishlistModel model, IList cart, bool isEditable = true); /// /// Prepare the mini shopping cart model /// /// /// A task that represents the asynchronous operation /// The task result contains the mini shopping cart model /// Task PrepareMiniShoppingCartModelAsync(); /// /// Prepare selected checkout attributes /// /// /// A task that represents the asynchronous operation /// The task result contains the formatted attributes /// Task FormatSelectedCheckoutAttributesAsync(); /// /// Prepare the order totals model /// /// List of the shopping cart item /// Whether model is editable /// /// A task that represents the asynchronous operation /// The task result contains the order totals model /// Task PrepareOrderTotalsModelAsync(IList cart, bool isEditable); /// /// Prepare the estimate shipping result model /// /// List of the shopping cart item /// Request to get shipping options /// Indicates whether to cache offered shipping options /// /// A task that represents the asynchronous operation /// The task result contains the estimate shipping result model /// Task PrepareEstimateShippingResultModelAsync(IList cart, EstimateShippingModel request, bool cacheOfferedShippingOptions); /// /// Prepare the wishlist email a friend model /// /// Wishlist email a friend model /// Whether to exclude populating of model properties from the entity /// /// A task that represents the asynchronous operation /// The task result contains the wishlist email a friend model /// Task PrepareWishlistEmailAFriendModelAsync(WishlistEmailAFriendModel model, bool excludeProperties); /// /// Prepare the cart item picture model /// /// Shopping cart item /// Picture size /// Whether to show the default picture /// Product name /// /// A task that represents the asynchronous operation /// The task result contains the picture model /// Task PrepareCartItemPictureModelAsync(ShoppingCartItem sci, int pictureSize, bool showDefaultPicture, string productName); }