Webiant Logo Webiant Logo
  1. No results found.

    Try your search with a different keyword or use * as a wildcard.

IOrderProcessingService.cs

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);
}