Try your search with a different keyword or use * as a wildcard.
using Nop.Core.Domain.Blogs;
using Nop.Core.Domain.Catalog;
using Nop.Core.Domain.Customers;
using Nop.Core.Domain.Forums;
using Nop.Core.Domain.Messages;
using Nop.Core.Domain.News;
using Nop.Core.Domain.Orders;
using Nop.Core.Domain.Shipping;
using Nop.Core.Domain.Vendors;
namespace Nop.Services.Messages;
///
/// Workflow message service
///
public partial interface IWorkflowMessageService
{
#region Customer workflow
///
/// Sends 'New customer' notification message to a store owner
///
/// Customer instance
/// Message language identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendCustomerRegisteredStoreOwnerNotificationMessageAsync(Customer customer, int languageId);
///
/// Sends a welcome message to a customer
///
/// Customer instance
/// Message language identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendCustomerWelcomeMessageAsync(Customer customer, int languageId);
///
/// Sends an email validation message to a customer
///
/// Customer instance
/// Message language identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendCustomerEmailValidationMessageAsync(Customer customer, int languageId);
///
/// Sends an email re-validation message to a customer
///
/// Customer instance
/// Message language identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendCustomerEmailRevalidationMessageAsync(Customer customer, int languageId);
///
/// Sends password recovery message to a customer
///
/// Customer instance
/// Message language identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendCustomerPasswordRecoveryMessageAsync(Customer customer, int languageId);
///
/// Sends 'New request to delete customer' message to a store owner
///
/// Customer
/// Message language identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendDeleteCustomerRequestStoreOwnerNotificationAsync(Customer customer, int languageId);
#endregion
#region Order workflow
///
/// Sends an order placed notification to a vendor
///
/// Order instance
/// Vendor instance
/// Message language identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendOrderPlacedVendorNotificationAsync(Order order, Vendor vendor, int languageId);
///
/// Sends an order placed notification to a store owner
///
/// Order instance
/// Message language identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendOrderPlacedStoreOwnerNotificationAsync(Order order, int languageId);
///
/// Sends an order placed notification to an affiliate
///
/// Order instance
/// Message language identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendOrderPlacedAffiliateNotificationAsync(Order order, int languageId);
///
/// Sends an order paid notification to a store owner
///
/// Order instance
/// Message language identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendOrderPaidStoreOwnerNotificationAsync(Order order, int languageId);
///
/// Sends an order paid notification to a customer
///
/// Order instance
/// Message language identifier
/// Attachment file path
/// Attachment file name. If specified, then this file name will be sent to a recipient. Otherwise, "AttachmentFilePath" name will be used.
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendOrderPaidCustomerNotificationAsync(Order order, int languageId,
string attachmentFilePath = null, string attachmentFileName = null);
///
/// Sends an order paid notification to a vendor
///
/// Order instance
/// Vendor instance
/// Message language identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendOrderPaidVendorNotificationAsync(Order order, Vendor vendor, int languageId);
///
/// Sends an order paid notification to an affiliate
///
/// Order instance
/// Message language identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendOrderPaidAffiliateNotificationAsync(Order order, int languageId);
///
/// Sends an order placed notification to a customer
///
/// Order instance
/// Message language identifier
/// Attachment file path
/// Attachment file name. If specified, then this file name will be sent to a recipient. Otherwise, "AttachmentFilePath" name will be used.
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendOrderPlacedCustomerNotificationAsync(Order order, int languageId,
string attachmentFilePath = null, string attachmentFileName = null);
///
/// Sends a shipment sent notification to a customer
///
/// Shipment
/// Message language identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendShipmentSentCustomerNotificationAsync(Shipment shipment, int languageId);
///
/// Sends a shipment ready for pickup notification to a customer
///
/// Shipment
/// Message language identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendShipmentReadyForPickupNotificationAsync(Shipment shipment, int languageId);
///
/// Sends a shipment delivered notification to a customer
///
/// Shipment
/// Message language identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendShipmentDeliveredCustomerNotificationAsync(Shipment shipment, int languageId);
///
/// Sends an order processing notification to a customer
///
/// Order instance
/// Message language identifier
/// Attachment file path
/// Attachment file name. If specified, then this file name will be sent to a recipient. Otherwise, "AttachmentFilePath" name will be used.
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendOrderProcessingCustomerNotificationAsync(Order order, int languageId,
string attachmentFilePath = null, string attachmentFileName = null);
///
/// Sends an order completed notification to a customer
///
/// Order instance
/// Message language identifier
/// Attachment file path
/// Attachment file name. If specified, then this file name will be sent to a recipient. Otherwise, "AttachmentFilePath" name will be used.
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendOrderCompletedCustomerNotificationAsync(Order order, int languageId,
string attachmentFilePath = null, string attachmentFileName = null);
///
/// Sends an order cancelled notification to a customer
///
/// Order instance
/// Message language identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendOrderCancelledCustomerNotificationAsync(Order order, int languageId);
///
/// Sends an order refunded notification to a store owner
///
/// Order instance
/// Amount refunded
/// Message language identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendOrderRefundedStoreOwnerNotificationAsync(Order order, decimal refundedAmount, int languageId);
///
/// Sends an order refunded notification to a customer
///
/// Order instance
/// Amount refunded
/// Message language identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendOrderRefundedCustomerNotificationAsync(Order order, decimal refundedAmount, int languageId);
///
/// Sends a new order note added notification to a customer
///
/// Order note
/// Message language identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendNewOrderNoteAddedCustomerNotificationAsync(OrderNote orderNote, int languageId);
///
/// Sends a "Recurring payment cancelled" notification to a store owner
///
/// Recurring payment
/// Message language identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendRecurringPaymentCancelledStoreOwnerNotificationAsync(RecurringPayment recurringPayment, int languageId);
///
/// Sends a "Recurring payment cancelled" notification to a customer
///
/// Recurring payment
/// Message language identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendRecurringPaymentCancelledCustomerNotificationAsync(RecurringPayment recurringPayment, int languageId);
///
/// Sends a "Recurring payment failed" notification to a customer
///
/// Recurring payment
/// Message language identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendRecurringPaymentFailedCustomerNotificationAsync(RecurringPayment recurringPayment, int languageId);
#endregion
#region Newsletter workflow
///
/// Sends a newsletter subscription activation message
///
/// Newsletter subscription
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendNewsLetterSubscriptionActivationMessageAsync(NewsLetterSubscription subscription);
///
/// Sends a newsletter subscription deactivation message
///
/// Newsletter subscription
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendNewsLetterSubscriptionDeactivationMessageAsync(NewsLetterSubscription subscription);
#endregion
#region Send a message to a friend
///
/// Sends "email a friend" message
///
/// Customer instance
/// Message language identifier
/// Product instance
/// Customer's email
/// Friend's email
/// Personal message
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendProductEmailAFriendMessageAsync(Customer customer, int languageId,
Product product, string customerEmail, string friendsEmail, string personalMessage);
///
/// Sends wishlist "email a friend" message
///
/// Customer
/// Message language identifier
/// Customer's email
/// Friend's email
/// Personal message
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendWishlistEmailAFriendMessageAsync(Customer customer, int languageId,
string customerEmail, string friendsEmail, string personalMessage);
#endregion
#region Return requests
///
/// Sends 'New Return Request' message to a store owner
///
/// Return request
/// Order item
/// Order
/// Message language identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendNewReturnRequestStoreOwnerNotificationAsync(ReturnRequest returnRequest, OrderItem orderItem, Order order, int languageId);
///
/// Sends 'New Return Request' message to a customer
///
/// Return request
/// Order item
/// Order
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendNewReturnRequestCustomerNotificationAsync(ReturnRequest returnRequest, OrderItem orderItem, Order order);
///
/// Sends 'Return Request status changed' message to a customer
///
/// Return request
/// Order item
/// Order
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendReturnRequestStatusChangedCustomerNotificationAsync(ReturnRequest returnRequest, OrderItem orderItem, Order order);
#endregion
#region Forum Notifications
///
/// Sends a forum subscription message to a customer
///
/// Customer instance
/// Forum Topic
/// Forum
/// Message language identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendNewForumTopicMessageAsync(Customer customer, ForumTopic forumTopic, Forum forum, int languageId);
///
/// Sends a forum subscription message to a customer
///
/// Customer instance
/// Forum post
/// Forum Topic
/// Forum
/// Friendly (starts with 1) forum topic page to use for URL generation
/// Message language identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendNewForumPostMessageAsync(Customer customer, ForumPost forumPost,
ForumTopic forumTopic, Forum forum, int friendlyForumTopicPageIndex, int languageId);
///
/// Sends a private message notification
///
/// Private message
/// Message language identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendPrivateMessageNotificationAsync(PrivateMessage privateMessage, int languageId);
#endregion
#region Misc
///
/// Sends 'New vendor account submitted' message to a store owner
///
/// Customer
/// Vendor
/// Message language identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendNewVendorAccountApplyStoreOwnerNotificationAsync(Customer customer, Vendor vendor, int languageId);
///
/// Sends 'Vendor information change' message to a store owner
///
/// Vendor
/// Message language identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendVendorInformationChangeStoreOwnerNotificationAsync(Vendor vendor, int languageId);
///
/// Sends a product review notification message to a store owner
///
/// Product review
/// Message language identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendProductReviewStoreOwnerNotificationMessageAsync(ProductReview productReview, int languageId);
///
/// Sends a product review reply notification message to a customer
///
/// Product review
/// Message language identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendProductReviewReplyCustomerNotificationMessageAsync(ProductReview productReview, int languageId);
///
/// Sends a gift card notification
///
/// Gift card
/// Message language identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendGiftCardNotificationAsync(GiftCard giftCard, int languageId);
///
/// Sends a "quantity below" notification to a store owner
///
/// Product
/// Message language identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendQuantityBelowStoreOwnerNotificationAsync(Product product, int languageId);
///
/// Sends a "quantity below" notification to a store owner
///
/// Attribute combination
/// Message language identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendQuantityBelowStoreOwnerNotificationAsync(ProductAttributeCombination combination, int languageId);
///
/// Sends a "new VAT submitted" notification to a store owner
///
/// Customer
/// Received VAT name
/// Received VAT address
/// Message language identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendNewVatSubmittedStoreOwnerNotificationAsync(Customer customer, string vatName, string vatAddress, int languageId);
///
/// Sends a blog comment notification message to a store owner
///
/// Blog comment
/// Message language identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendBlogCommentStoreOwnerNotificationMessageAsync(BlogComment blogComment, int languageId);
///
/// Sends a news comment notification message to a store owner
///
/// News comment
/// Message language identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendNewsCommentStoreOwnerNotificationMessageAsync(NewsComment newsComment, int languageId);
///
/// Sends a 'Back in stock' notification message to a customer
///
/// Subscription
/// Message language identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendBackInStockNotificationAsync(BackInStockSubscription subscription, int languageId);
///
/// Sends "contact us" message
///
/// Message language identifier
/// Sender email
/// Sender name
/// Email subject. Pass null if you want a message template subject to be used.
/// Email body
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendContactUsMessageAsync(int languageId, string senderEmail, string senderName, string subject, string body);
///
/// Sends "contact vendor" message
///
/// Vendor
/// Message language identifier
/// Sender email
/// Sender name
/// Email subject. Pass null if you want a message template subject to be used.
/// Email body
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task> SendContactVendorMessageAsync(Vendor vendor, int languageId, string senderEmail, string senderName, string subject, string body);
///
/// Sends a test email
///
/// Message template identifier
/// Send to email
/// Tokens
/// Message language identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task SendTestEmailAsync(int messageTemplateId, string sendToEmail, List tokens, int languageId);
#endregion
#region Common
///
/// Send notification
///
/// Message template
/// Email account
/// Language identifier
/// Tokens
/// Recipient email address
/// Recipient name
/// Attachment file path
/// Attachment file name
/// "Reply to" email
/// "Reply to" name
/// Sender email. If specified, then it overrides passed "emailAccount" details
/// Sender name. If specified, then it overrides passed "emailAccount" details
/// Subject. If specified, then it overrides subject of a message template
///
/// A task that represents the asynchronous operation
/// The task result contains the queued email identifier
///
Task SendNotificationAsync(MessageTemplate messageTemplate,
EmailAccount emailAccount, int languageId, IList tokens,
string toEmailAddress, string toName,
string attachmentFilePath = null, string attachmentFileName = null,
string replyToEmailAddress = null, string replyToName = null,
string fromEmail = null, string fromName = null, string subject = null);
#endregion
}