This Plugin extends the core nopCommerce Message Template Engine with Razor-Support (by RazorEngine).
Extend any nopCommerce Message Template with the full power of Razor. It works as a Post-Processor of the Token-Engine, so nothing must be changed. Token will continue to work.
Example of "OrderPlaced.CustomerNotification"
Hello %Order.CustomerFullName%,
Thanks for buying from %Store.Name%. Below is the summary of the order.
...
@{
if (Model.Order.PaymentMethodSystemName == "Payments.CheckMoneyOrder")
{
<text>We will send you an Invoice ...</text>
}
else if (Model.Order.PaymentMethodSystemName == "Payments.PayPalStandard")
{
<text>You ordered with PayPal. ToDo: Add payment notes here</text>
}
}
...
Order Number: %Order.OrderNumber%
...
@if (Nop.Core.Domain.Customers.CustomerExtensions.IsInCustomerRole(Model.Customer, "Registered"))
{
<div>
Thanks for your Registration.
</div>
}
Any Message Template has the related Objects available in the Model. E.g. Model.Order, Model.Customer, Model.Vendor etc. Works with Subject and Body.
Disable TinyMCE Editor for Message Templates by adapting "/Administration/Views/Shared/EditorTemplates/RichEditor.cshtml"
if (document.location.pathname.match(/Admin\/MessageTemplate\/Edit/)) return;
tinyMCE.init(...;
Template | Available Objects/Properties in @Model. | Notes |
---|---|---|
Blog.BlogComment | Store, BlogComment | |
Customer.BackInStock | Store, Customer, BackInStockSubscription | |
Customer.EmailValidationMessage | Store, Customer | |
Customer.NewOrderNote | Store, OrderNote, Order, Customer | |
Customer.NewPM | Store, PrivateMessage | |
Customer.PasswordRecovery | Store, Customer | |
Customer.WelcomeMessage | Store, Customer | |
Forums.NewForumPost | Store, Customer, ForumPost, ForumTopic, Forum | |
Forums.NewForumTopic | Store, ForumTopic, Forum | |
GiftCard.Notification | Store, GiftCard | |
NewCustomer.Notification | Store, Customer | |
NewReturnRequest.StoreOwnerNotification | Store, Customer, ReturnRequest, OrderItem | |
News.NewsComment | Store, NewsComment | |
NewsLetterSubscription.ActivationMessage | Store, Subscription | |
NewsLetterSubscription.DeactivationMessage | Store, Subscription | |
NewVATSubmitted.StoreOwnerNotification | Store, Customer, VatName, VatAddress | |
OrderCancelled.CustomerNotification | Store, Order, Customer | |
OrderCompleted.CustomerNotification | Store, Order, Customer | |
OrderPaid.CustomerNotification | Store, Order, Customer | Additional Message Template in 3.40 |
OrderPaid.StoreOwnerNotification | Store, Order, Customer | |
OrderPlaced.CustomerNotification | Store, Order, Customer | |
OrderPlaced.StoreOwnerNotification | Store, Order, Customer | |
OrderPlaced.VendorNotification | Store, Order, Customer, Vendor | |
OrderRefunded.CustomerNotification | Store, Order, Customer, RefundedAmount | |
OrderRefunded.StoreOwnerNotification | Store, Order, Customer, RefundedAmount | |
Product.ProductReview | Store, ProductReview | |
QuantityBelow.StoreOwnerNotification | Store, Product | |
RecurringPaymentCancelled.StoreOwnerNotification | Store, Order, Customer, RecurringPayment | |
ReturnRequestStatusChanged.CustomerNotification | Store, Customer, ReturnRequest, OrderItem | |
Service.EmailAFriend | Store, Customer, Product, PersonalMessage, CustomerEmail | |
ShipmentDelivered.CustomerNotification | Store, Shipment, Order, Customer | |
ShipmentSent.CustomerNotification | Store, Shipment, Order, Customer | |
VendorAccountApply.StoreOwnerNotification | Store, Customer, Vendor | |
VendorInformationChange.StoreOwnerNotification | Store, Vendor | |
Wishlist.EmailAFriend | Store, Customer, PersonalMessage, CustomerEmail |
For the Domain Models of Customer, Store, Product, OrderItem etc. see the API: https://nopcommerce.codeplex.com/SourceControl/latest#src/Libraries/Nop.Core/Domain/Customers/Customer.cs
- Download and extract to the Plugins Folder of your Web Application
- Restart the nopCommerce Application
- Install the Plugin on the Admin Site at /Admin/Plugin/List
- Done
- razormessageservice.compiletask.enablelogging - Enable/disable logging when the schedule task runs to compile messages. Default is False. This Setting was added in version 1.41.
###1.41
- Improved performance with caching of razor-mail-templates. First use of a mail-template might take up to 2 seconds to compile. Afterward no more recompilation is needed. Updating a mail template causes an automatic re-compilation. There's now a schedule task which automatically compiles all active mail-templates for all stores and languages to improve the performance when using a mail template the first time after an application restart.
- Updated to RazorEngine 3.9.3
- Works with nopCommerce 3.80
###1.40
- Works with nopCommerce 3.80
###1.30
- Works with nopCommerce 3.70
###1.20
- Works with nopCommerce 3.50
###1.11
- "OrderPaid.CustomerNotification" is now sent in the Language the Order was made
- Works with nopCommerce 3.40
###1.10
- Added new Message Template "OrderPaid.CustomerNotification"
- Works with nopCommerce 3.40
###1.00
- Works with nopCommerce 3.40
- Errors in a template will result in an unparsed email, but with error-details at the end in the mail-body.
- Change setting "razormessageservice.compiletask.enablelogging" to "true" will log the result of a pre-compilation of all templates. Templates containing errors will be logged as "success: False"