using Nop.Core.Domain.Common; using Nop.Core.Domain.Orders; using Nop.Services.Payments; using Nop.Web.Models.Checkout; namespace Nop.Web.Factories; public partial interface ICheckoutModelFactory { /// /// Prepare billing address model /// /// Billing address model /// Cart /// Selected country identifier /// Pre populate new address with customer fields /// Override attributes xml /// A task that represents the asynchronous operation Task PrepareBillingAddressModelAsync(CheckoutBillingAddressModel model, IList cart, int? selectedCountryId = null, bool prePopulateNewAddressWithCustomerFields = false, string overrideAttributesXml = ""); /// /// Prepare shipping address model /// /// Shipping address model /// Cart /// Selected country identifier /// Pre populate new address with customer fields /// Override attributes xml /// A task that represents the asynchronous operation Task PrepareShippingAddressModelAsync(CheckoutShippingAddressModel model, IList cart, int? selectedCountryId = null, bool prePopulateNewAddressWithCustomerFields = false, string overrideAttributesXml = ""); /// /// Prepare shipping method model /// /// Cart /// Shipping address /// /// A task that represents the asynchronous operation /// The task result contains the shipping method model /// Task PrepareShippingMethodModelAsync(IList cart, Address shippingAddress); /// /// Prepare payment method model /// /// Cart /// Filter by country identifier /// /// A task that represents the asynchronous operation /// The task result contains the payment method model /// Task PreparePaymentMethodModelAsync(IList cart, int filterByCountryId); /// /// Prepare payment info model /// /// Payment method /// /// A task that represents the asynchronous operation /// The task result contains the payment info model /// Task PreparePaymentInfoModelAsync(IPaymentMethod paymentMethod); /// /// Prepare confirm order model /// /// Cart /// /// A task that represents the asynchronous operation /// The task result contains the confirm order model /// Task PrepareConfirmOrderModelAsync(IList cart); /// /// Prepare checkout completed model /// /// Order /// /// A task that represents the asynchronous operation /// The task result contains the checkout completed model /// Task PrepareCheckoutCompletedModelAsync(Order order); /// /// Prepare checkout progress model /// /// Step /// /// A task that represents the asynchronous operation /// The task result contains the checkout progress model /// Task PrepareCheckoutProgressModelAsync(CheckoutProgressStep step); /// /// Prepare one page checkout model /// /// Cart /// /// A task that represents the asynchronous operation /// The task result contains the one page checkout model /// Task PrepareOnePageCheckoutModelAsync(IList cart); }