Try your search with a different keyword or use * as a wildcard.
using Nop.Core.Domain.Customers;
using Nop.Core.Domain.Orders;
using Nop.Core.Domain.Shipping;
using Nop.Services.Payments;
namespace Nop.Services.Orders;
///
/// Order processing service interface
///
public partial interface IOrderProcessingService
{
///
/// Checks order status
///
/// Order
/// A task that represents the asynchronous operation
Task CheckOrderStatusAsync(Order order);
///
/// Places an order
///
/// Process payment request
///
/// A task that represents the asynchronous operation
/// The task result contains the place order result
///
Task PlaceOrderAsync(ProcessPaymentRequest processPaymentRequest);
///
/// Update order totals
///
/// Parameters for the updating order
/// A task that represents the asynchronous operation
Task UpdateOrderTotalsAsync(UpdateOrderParameters updateOrderParameters);
///
/// Deletes an order
///
/// The order
/// A task that represents the asynchronous operation
Task DeleteOrderAsync(Order order);
///
/// Process next recurring payment
///
/// Recurring payment
/// Process payment result (info about last payment for automatic recurring payments)
///
/// A task that represents the asynchronous operation
/// The task result contains the collection of errors
///
Task> ProcessNextRecurringPaymentAsync(RecurringPayment recurringPayment, ProcessPaymentResult paymentResult = null);
///
/// Cancels a recurring payment
///
/// Recurring payment
/// A task that represents the asynchronous operation
Task> CancelRecurringPaymentAsync(RecurringPayment recurringPayment);
///
/// Gets a value indicating whether a customer can cancel recurring payment
///
/// Customer
/// Recurring Payment
///
/// A task that represents the asynchronous operation
/// The task result contains the value indicating whether a customer can cancel recurring payment
///
Task CanCancelRecurringPaymentAsync(Customer customerToValidate, RecurringPayment recurringPayment);
///
/// Gets a value indicating whether a customer can retry last failed recurring payment
///
/// Customer
/// Recurring Payment
///
/// A task that represents the asynchronous operation
/// The task result contains true if a customer can retry payment; otherwise false
///
Task CanRetryLastRecurringPaymentAsync(Customer customer, RecurringPayment recurringPayment);
///
/// Send a shipment
///
/// Shipment
/// True to notify customer
/// A task that represents the asynchronous operation
Task ShipAsync(Shipment shipment, bool notifyCustomer);
///
/// Marks a shipment as ready for pickup
///
/// Shipment
/// True to notify customer
/// A task that represents the asynchronous operation
Task ReadyForPickupAsync(Shipment shipment, bool notifyCustomer);
///
/// Marks a shipment as delivered
///
/// Shipment
/// True to notify customer
/// A task that represents the asynchronous operation
Task DeliverAsync(Shipment shipment, bool notifyCustomer);
///
/// Gets a value indicating whether cancel is allowed
///
/// Order
/// A value indicating whether cancel is allowed
bool CanCancelOrder(Order order);
///
/// Cancels order
///
/// Order
/// True to notify customer
/// A task that represents the asynchronous operation
Task CancelOrderAsync(Order order, bool notifyCustomer);
///
/// Gets a value indicating whether order can be marked as authorized
///
/// Order
/// A value indicating whether order can be marked as authorized
bool CanMarkOrderAsAuthorized(Order order);
///
/// Marks order as authorized
///
/// Order
/// A task that represents the asynchronous operation
Task MarkAsAuthorizedAsync(Order order);
///
/// Gets a value indicating whether capture from admin panel is allowed
///
/// Order
///
/// A task that represents the asynchronous operation
/// The task result contains a value indicating whether capture from admin panel is allowed
///
Task CanCaptureAsync(Order order);
///
/// Capture an order (from admin panel)
///
/// Order
///
/// A task that represents the asynchronous operation
/// The task result contains a list of errors; empty list if no errors
///
Task> CaptureAsync(Order order);
///
/// Gets a value indicating whether order can be marked as paid
///
/// Order
/// A value indicating whether order can be marked as paid
bool CanMarkOrderAsPaid(Order order);
///
/// Marks order as paid
///
/// Order
/// A task that represents the asynchronous operation
Task MarkOrderAsPaidAsync(Order order);
///
/// Gets a value indicating whether refund from admin panel is allowed
///
/// Order
///
/// A task that represents the asynchronous operation
/// The task result contains a value indicating whether refund from admin panel is allowed
///
Task CanRefundAsync(Order order);
///
/// Refunds an order (from admin panel)
///
/// Order
///
/// A task that represents the asynchronous operation
/// The task result contains a list of errors; empty list if no errors
///
Task> RefundAsync(Order order);
///
/// Gets a value indicating whether order can be marked as refunded
///
/// Order
/// A value indicating whether order can be marked as refunded
bool CanRefundOffline(Order order);
///
/// Refunds an order (offline)
///
/// Order
/// A task that represents the asynchronous operation
Task RefundOfflineAsync(Order order);
///
/// Gets a value indicating whether partial refund from admin panel is allowed
///
/// Order
/// Amount to refund
///
/// A task that represents the asynchronous operation
/// The task result contains a value indicating whether refund from admin panel is allowed
///
Task CanPartiallyRefundAsync(Order order, decimal amountToRefund);
///
/// Partially refunds an order (from admin panel)
///
/// Order
/// Amount to refund
///
/// A task that represents the asynchronous operation
/// The task result contains a list of errors; empty list if no errors
///
Task> PartiallyRefundAsync(Order order, decimal amountToRefund);
///
/// Gets a value indicating whether order can be marked as partially refunded
///
/// Order
/// Amount to refund
/// A value indicating whether order can be marked as partially refunded
bool CanPartiallyRefundOffline(Order order, decimal amountToRefund);
///
/// Partially refunds an order (offline)
///
/// Order
/// Amount to refund
/// A task that represents the asynchronous operation
Task PartiallyRefundOfflineAsync(Order order, decimal amountToRefund);
///
/// Gets a value indicating whether Task from admin panel is allowed
///
/// Order
///
/// A task that represents the asynchronous operation
/// The task result contains a value indicating whether Task from admin panel is allowed
///
Task CanVoidAsync(Order order);
///
/// Voids order (from admin panel)
///
/// Order
///
/// A task that represents the asynchronous operation
/// The task result contains the voided order
///
Task> VoidAsync(Order order);
///
/// Gets a value indicating whether order can be marked as voided
///
/// Order
/// A value indicating whether order can be marked as voided
bool CanVoidOffline(Order order);
///
/// Voids order (offline)
///
/// Order
/// A task that represents the asynchronous operation
Task VoidOfflineAsync(Order order);
///
/// Place order items in current user shopping cart.
///
/// The order
///
/// A task that represents the asynchronous operation
/// The task result contains the warnings
///
Task> ReOrderAsync(Order order);
///
/// Check whether return request is allowed
///
/// Order
///
/// A task that represents the asynchronous operation
/// The task result contains the result
///
Task IsReturnRequestAllowedAsync(Order order);
///
/// Validate minimum order sub-total amount
///
/// Shopping cart
///
/// A task that represents the asynchronous operation
/// The task result contains true - OK; false - minimum order sub-total amount is not reached
///
Task ValidateMinOrderSubtotalAmountAsync(IList cart);
///
/// Validate minimum order total amount
///
/// Shopping cart
///
/// A task that represents the asynchronous operation
/// The task result contains true - OK; false - minimum order total amount is not reached
///
Task ValidateMinOrderTotalAmountAsync(IList cart);
///
/// Gets a value indicating whether payment workflow is required
///
/// Shopping cart
/// A value indicating reward points should be used; null to detect current choice of the customer
///
/// A task that represents the asynchronous operation
/// The task result contains the value indicating whether payment workflow is required
///
Task IsPaymentWorkflowRequiredAsync(IList cart, bool? useRewardPoints = null);
///
/// Gets the next payment date
///
/// Recurring payment
/// A task that represents the asynchronous operation
Task GetNextPaymentDateAsync(RecurringPayment recurringPayment);
///
/// Gets the cycles remaining
///
/// Recurring payment
/// A task that represents the asynchronous operation
Task GetCyclesRemainingAsync(RecurringPayment recurringPayment);
}