using Nop.Core; using Nop.Core.Domain.Catalog; using Nop.Core.Domain.Orders; using Nop.Core.Domain.Payments; using Nop.Core.Domain.Shipping; namespace Nop.Services.Orders; /// /// Order report service interface /// public partial interface IOrderReportService { /// /// Get "order by country" report /// /// Store identifier; 0 to load all records /// Order status /// Payment status /// Shipping status /// Start date /// End date /// /// A task that represents the asynchronous operation /// The task result contains the result /// Task> GetCountryReportAsync(int storeId = 0, OrderStatus? os = null, PaymentStatus? ps = null, ShippingStatus? ss = null, DateTime? startTimeUtc = null, DateTime? endTimeUtc = null); /// /// Get order average report /// /// Store identifier; pass 0 to ignore this parameter /// Vendor identifier; pass 0 to ignore this parameter /// Product identifier which was purchased in an order; 0 to load all orders /// Warehouse identifier; pass 0 to ignore this parameter /// Billing country identifier; 0 to load all orders /// Order identifier; pass 0 to ignore this parameter /// Payment method system name; null to load all records /// Order status identifiers /// Payment status identifiers /// Shipping status identifiers /// Start date /// End date /// Billing phone. Leave empty to load all records. /// Billing email. Leave empty to load all records. /// Billing last name. Leave empty to load all records. /// Search in order notes. Leave empty to load all records. /// /// A task that represents the asynchronous operation /// The task result contains the result /// Task GetOrderAverageReportLineAsync(int storeId = 0, int vendorId = 0, int productId = 0, int warehouseId = 0, int billingCountryId = 0, int orderId = 0, string paymentMethodSystemName = null, List osIds = null, List psIds = null, List ssIds = null, DateTime? startTimeUtc = null, DateTime? endTimeUtc = null, string billingPhone = null, string billingEmail = null, string billingLastName = "", string orderNotes = null); /// /// Get order average report /// /// Store identifier /// Order status /// /// A task that represents the asynchronous operation /// The task result contains the result /// Task OrderAverageReportAsync(int storeId, OrderStatus os); /// /// Get sales summary report /// /// Category identifier; 0 to load all records /// Product identifier; 0 to load all records /// Manufacturer identifier; 0 to load all records /// Store identifier (orders placed in a specific store); 0 to load all records /// Vendor identifier; 0 to load all records /// Order created date from (UTC); null to load all records /// Order created date to (UTC); null to load all records /// Order status identifiers; null to load all orders /// Payment status identifiers; null to load all orders /// Billing country identifier; 0 to load all records /// 0 - group by day, 1 - group by week, 2 - group by total month /// Page index /// Page size /// /// A task that represents the asynchronous operation /// The task result contains the result /// Task> SalesSummaryReportAsync( int categoryId = 0, int productId = 0, int manufacturerId = 0, int storeId = 0, int vendorId = 0, DateTime? createdFromUtc = null, DateTime? createdToUtc = null, List osIds = null, List psIds = null, int billingCountryId = 0, GroupByOptions groupBy = GroupByOptions.Day, int pageIndex = 0, int pageSize = int.MaxValue); /// /// Get best sellers report /// /// Store identifier (orders placed in a specific store); 0 to load all records /// Vendor identifier; 0 to load all records /// Category identifier; 0 to load all records /// Manufacturer identifier; 0 to load all records /// Order created date from (UTC); null to load all records /// Order created date to (UTC); null to load all records /// Order status; null to load all records /// Order payment status; null to load all records /// Shipping status; null to load all records /// Billing country identifier; 0 to load all records /// 1 - order by quantity, 2 - order by total amount /// Page index /// Page size /// A value indicating whether to show hidden records /// /// A task that represents the asynchronous operation /// The task result contains the result /// Task> BestSellersReportAsync( int categoryId = 0, int manufacturerId = 0, int storeId = 0, int vendorId = 0, DateTime? createdFromUtc = null, DateTime? createdToUtc = null, OrderStatus? os = null, PaymentStatus? ps = null, ShippingStatus? ss = null, int billingCountryId = 0, OrderByEnum orderBy = OrderByEnum.OrderByQuantity, int pageIndex = 0, int pageSize = int.MaxValue, bool showHidden = false); /// /// Get a total amount of best sellers /// /// Store identifier (orders placed in a specific store); 0 to load all records /// Vendor identifier; 0 to load all records /// Category identifier; 0 to load all records /// Manufacturer identifier; 0 to load all records /// Order created date from (UTC); null to load all records /// Order created date to (UTC); null to load all records /// Order status; null to load all records /// Order payment status; null to load all records /// Shipping status; null to load all records /// Billing country identifier; 0 to load all records /// A value indicating whether to show hidden records /// /// A task that represents the asynchronous operation /// The task result contains the result /// Task BestSellersReportTotalAmountAsync( int categoryId = 0, int manufacturerId = 0, int storeId = 0, int vendorId = 0, DateTime? createdFromUtc = null, DateTime? createdToUtc = null, OrderStatus? os = null, PaymentStatus? ps = null, ShippingStatus? ss = null, int billingCountryId = 0, bool showHidden = false); /// /// Gets a list of products (identifiers) purchased by other customers who purchased a specified product /// /// Store identifier /// Product identifier /// Records to return /// A values indicating whether to load only products marked as "visible individually"; "false" to load all records; "true" to load "visible individually" only /// A value indicating whether to show hidden records /// /// A task that represents the asynchronous operation /// The task result contains the products /// Task GetAlsoPurchasedProductsIdsAsync(int storeId, int productId, int recordsToReturn = 5, bool visibleIndividuallyOnly = true, bool showHidden = false); /// /// Gets a list of products that were never sold /// /// Vendor identifier (filter products by a specific vendor); 0 to load all records /// Store identifier (filter products by a specific store); 0 to load all records /// Category identifier; 0 to load all records /// Manufacturer identifier; 0 to load all records /// Order created date from (UTC); null to load all records /// Order created date to (UTC); null to load all records /// Page index /// Page size /// A value indicating whether to show hidden records /// /// A task that represents the asynchronous operation /// The task result contains the products /// Task> ProductsNeverSoldAsync(int vendorId = 0, int storeId = 0, int categoryId = 0, int manufacturerId = 0, DateTime? createdFromUtc = null, DateTime? createdToUtc = null, int pageIndex = 0, int pageSize = int.MaxValue, bool showHidden = false); /// /// Get profit report /// /// Store identifier; pass 0 to ignore this parameter /// Vendor identifier; pass 0 to ignore this parameter /// Product identifier which was purchased in an order; 0 to load all orders /// Warehouse identifier; pass 0 to ignore this parameter /// Order identifier; pass 0 to ignore this parameter /// Billing country identifier; 0 to load all orders /// Payment method system name; null to load all records /// Start date /// End date /// Order status identifiers; null to load all records /// Payment status identifiers; null to load all records /// Shipping status identifiers; null to load all records /// Billing phone. Leave empty to load all records. /// Billing email. Leave empty to load all records. /// Billing last name. Leave empty to load all records. /// Search in order notes. Leave empty to load all records. /// /// A task that represents the asynchronous operation /// The task result contains the result /// Task ProfitReportAsync(int storeId = 0, int vendorId = 0, int productId = 0, int warehouseId = 0, int billingCountryId = 0, int orderId = 0, string paymentMethodSystemName = null, List osIds = null, List psIds = null, List ssIds = null, DateTime? startTimeUtc = null, DateTime? endTimeUtc = null, string billingPhone = null, string billingEmail = null, string billingLastName = "", string orderNotes = null); }