Release Notes

Here you can view a list of all the changes for each release of nopCommerce.
Release Notes - nopCommerce 3.60 (June 15, 2015)

Highlight features and changes

  • New clean default theme. The theme features a clean, modern look and a great responsive design. The HTML have been refactored, which will make the theme easier to work with and customize. Thanks a lot to nop-templates team ( for this contribution! Important note – IE6 and IE7 are not supported anymore.
  • Predefined (default) product attribute values. They are helpful for a store owner when creating new products. So when you add the attribute to a product, you don't have to create the same values again.
  • Base price (PAngV) support added. Required for German/Austrian/Swiss users.
  • “Applied to manufacturers” discount type.
  • Security and performance enhancements.


  • Security. Prevent XSRF attack for all admin area pages. Several note for developers - Now each admin area page should has @Html.AntiForgeryToken() line. Also have a look at how KendoUI grids and AJAX calls are protected with "addAntiForgeryToken " javascript method. You can also use "AdminAntiForgery(true)" attribute if you want to skip such validation for some action for some reasons.
  • Security. Added support for honeypot technique (disabled by default).
  • "Add to compare list" button is now AJAX.
  • Display profit on order details page (admin area).
  • Search engine optimization. Allow store owner to change alt and title for product images.
  • CMS. Allow a store owner to add topics to the footer.
  • CMS. Allow a store owner to manage display order of topics added to the top menu or footer columns.
  • Product attribute combinations now support non-combinable attributes (textbox, date picker, file upload). When generating (manually or automatically) combinations, only the combinable attributes are presented. When you have a product with several attributes it may well be that some are combinable, whose combination may form a new SKU with its own inventory, and some non-combinable are more used to add accessories. Example a shirt might have as combinable attributes sleeve size, neck size, color and material and can have other non-combinable such as initials embroidered (text).
  • Display all categories on small devices no matter of the "Include in top menu" property. Otherwise, it's not possible to navigate the whole store catalogue on small devices if we don't include all the categories in the top menu.
  • Added a refund message template (sent to a customer). Disabled by default.
  • Added a setting indicating whether customers should be notified when shipping from multiple locations.
  • Allow plugin developers to add new menu items to any existing node (previously they could add new menu items only to "Plugin" node). Now each sitemap node has "SystemName" property which can be used to find an appropriate standard menu item and edit it (add childs, etc). IAdminMenuPlugin interface.
  • Allow a store owner to filter newsletter subscribers by customer role.
  • "Shipping by weight" plugin. Allow a store owner to configure rates by warehouse (similar to store/country/state filtering options with the "*" option to apply to all).
  • Better payout reporting for affiliate supports. Allow a store owner to filter affiliates only with some orders placed (during specified period).
  • Better payout reporting for affiliate supports. Allow a store owner to search orders on the affiliate details page.
  • Forums. Paging support for the active discussions page.
  • Allow a store owner to decide whether a topic page should be accessible when a store is closed.
  • SEO. Affiliates. Now a store owner can specify a friendly name which will be used to generate affiliate URL. It's more friendly for marketing purposes. You can leave it empty to use the old way (affiliate identifier).
  • Allow a store owner to de-affiliate (clear its AffiliateId) a customer from the backend.
  • Allow a store owner to search affiliates by first and last name.
  • Product list page. Allow a store owner to search "published only" or "unpublished only" products.
  • Allow a store owner to search discounts by coupon code and discount type.
  • Filtering support for "export (all)" buttons, PDF catalog and packaging slips generation. Now they are “export (all found)”.
  • Added a setting indicating whether newsletter box should have an option to unsubscribe. It's the requirement for stores in some countries (e.g. Germany).
  • Make "contact us" page accessible when a store is closed.
  • Allow a store owner to specify maximum discount amount when discount percentage is used.
  • Allow customers to contact vendors.
  • Allow a store owner to test message templates (without creating fake orders, etc).
  • Forums. Added [img] tag support for the editor.
  • Highlight rows on mouse hover in admin area grids.
  • Allow a store owner to search orders by notes.
  • Allow a store owner to search orders by country.
  • Allow a store owner to specify number of valid days for password recovery email.
  • Display a user-friendly message to a customer when a password recovery email contains wrong token.
  • A store owner should stay on the current page when clicking "clear cache" or "restart application" buttons.
  • Allow a store owner to add products and categories to discounts on the discount details page. Previously it could be done only on the product/category details page.
  • Allow a store owner to filter newsletter subscribers by "active" or "not active".
  • Newsletter subscribers (admin area). Exporting should use specified filtering options.
  • Allow a store owner to send a welcome email when he manually activates a customer. This option is available only with "Admin Approval" registration type.
  • Allow a store owner to re-send activation email in admin area. This option is available when registration method is set to "email validation" and a customer is not active.
  • Updated FedEx web service API to the latest version.
  • Updated USPS API the latest requirements (starting June 1st).
  • Updated API to the latest version.
  • Updated GeoLite2 database to the latest version.
  • Updated all third-party libraries to the latest version.
  • Search page. Query string parameter names should be lowercase.
  • Catalog settings page. Split settings to several tabs. It was too bloated.
  • Blog posts now support brief overview which can be used on the main blog list page (optional).
  • Added new widget zones - "home_page_before_categories", "home_page_before_products", "home_page_before_best_sellers", "home_page_before_news", "home_page_before_poll", "productsearch_page_before_results", "productsearch_page_after_results", "opc_content_before", "opc_content_after", "orderdetails_product_line", "productdetails_inside_overview_buttons_before", "productdetails_inside_overview_buttons_after", "productdetails_inside_overview_buttons_before", "productdetails_inside_overview_buttons_after", "productbox_addinfo_before", "productbox_addinfo_middle", "productbox_addinfo_after" (renamed "productbox_add_info").
  • Display product attributes on the current shopping carts (wishlist) page in admin area.
  • Added "Check all" option to all "Add products" popup pages (admin area).
  • Moved "Default image quality" setting to UI (media settings page).
  • Moved "Minimum search terms length" setting to UI (catalog settings page).
  • Moved "Password minimum length" setting to UI (customer settings page).
  • Moved 'CommonSettings.UseSystemEmailForContactUsForm' setting to UI.
  • Google Shopping plugin. Added a setting indicating whether we should consider promotions and tax when calculated product prices. But please note that it can significantly reduce time required to generate the feed file.
  • Google Shopping Plugin. Support products without unique identifiers (custom goods).
  • Topic templates support added (similar product/category/manufacturer ones).
  • Google Shopping plugin should not hard code expiration_date to 28 days. Moved to 'FroogleSettings.ExpirationNumberOfDays' setting.
  • Google shopping plugin. Renamed "Pass shipping info" to "Pass shipping info (weight)".
  • Google shopping plugin. Updated taxonomy file to the latest version.
  • We should secure "contact us" page with HTTPS.
  • Allow a store owner to search discounts by name.
  • Allow a store owner to edit "quantity" on the return request details page.
  • Return request list page (admin area). Added "quanity" column to the grid.
  • Google shopping plugin. Added support for dimensional shipping attributes (disabled by default).
  • Google Analytics (Universal Analytics) plugin. Added a note that {ECOMMERCE} line works only when you have "Disable order completed page" order setting unticked.
  • Google Analytics (Universal Analytics) plugin. Allow a store owner to choose whether order totals should including tax when generating tracking code for {ECOMMERCE} part.
  • Display warning when adding a new specification attribute without options to a product. We should describe that at least one specification attribute option is required.
  • Display CustomValues on the order confirmation page.
  • Admin area. Product details page. Display "view" link on the "Purchased with orders" tab.
  • Allow a store owner to filter orders by payment method.
  • Admin area. Product attribute page. Allow a store owner to view a list of products which use this attribute.
  • Admin area. Discount list page. Display "discount type" and "Times used" columns.
  • Admin area. Show product images on the order detail page's "Products" tab for easier to know which actual products are ordered.
  • Added "order total" column to the "discount usage history" tab.
  • Dynamic price update when changing start/end date for rental products.
  • CSS. Render styles for order statuses on the order list page.
  • Rental products. "Month" period should properly process months with 28,29,30,31 days (previously we had it hard-coded to 30).
  • Support associated (bundled) products for "Purchased with product" field of customer roles.
  • Added new '%ReturnRequest.OrderId%' message template token.
  • Added "MiniProfiler.Mvc4" third-party library. This way to can get more information when profiling the application.
  • We should skip email validation for Facebook connect or any other third-party external authentication plugins. We can trust them. But you can disable this functionality (anyway require email validation) in "ExternalAuthenticationSettings.RequireEmailValidation" setting.
  • Search engine friendly pages names (admin area). Added "Edit page" column which allows a store owner to go to an appropriate page details page.
  • Localized several hard-coded locales.
  • Deleted "Nop.Plugin.Misc.WebServices" plugin. It'll be available on the extensions page once version 3.60 is released. Anyway, it does not have any real usage out of the box. It just demonstrates how web services can be implemented.
  • Allow a store owner to decide whether "Date of birth" form field should be required.
  • Contact us page. Allow a store owner to decide whether a customer should enter "Subject" field (disabled by default).
  • Added a setting allowing a store owner to disable PDF invoices for pending orders.
  • Deleted "Responsive design supported", “AdminAreaSetting.DisplayProductPictures”, "Number of subcategory levels in top menu" settings.
  • Save order notes when a store owner edits an order (add/edit/remove a product, edit totals, etc).
  • Added "download license" link to %Order.Product(s)% message token.
  • Added a setting indicating whether XSRF security is enabled for public store.
  • Added Armenian language pack for installation page. Please help nopCommerce team to localize the installation page (just 46 resources). Please find more information at
  • Created enum for "Priority" column of "QueuedEmail".
  • Developers. AttributesXml columns. Renamed ProductVariantAttribute and ProductVariantAttributeValue in XML.
  • Developers. Removed "Authenticate" method from "IAdminMenuPlugin" interface. Anyway we have "Visible" property in "SiteMapNode" class which can be used for security reasons.
  • Configurable (and localized) formats for attribute price adjustment (product and checkout attributes).
  • Shipping by weight plugin. We should forward and use "StoreId" parameter from "GetShippingOptions" method of "ShippingService".
  • Performance optimization. Now "Ignore limit per store rules" and "Ignore ACL rules" are disabled by default. Most of store owners don't use them. Please note that a notification is displayed to a store owner if he/she wants to use one of these features.
  • Kendo UI grid filtering. Added support for "does not contain" (String).
  • Performance optimization. Add new SQL indexes.
  • Performance optimization. Some page could be slow when a store owner had a lot of categories.
  • Performance optimization. Now changing "Pictures are stored into..." setting is much faster.
  • Performance optimization. There's no need to validate EU VAT tax exempt if a customer or a product is already exempt.
  • Performance optimization. Cache category breadcrumb on a category details page.
  • Performance optimization. Cache discounts in "GetDiscountById" method.
  • Performance optimization of the installation process.
  • Performance optimization. Faster calculation of "Product count" column on the specification details page (admin area).
  • Performance. Add "NOLOCK" to "DeleteGuests" and "ProductTagCountLoadAll" stored procedures.
  • Performance optimization. Cache pictures associated to product attribute values.
  • Performance optimization. Less SQL requests (category loading) in public store when loading left category navigation block. Anyway we already loaded them for the top menu.
  • A lot of other source code refactoring.


  • PayPal plugin should not mark an order as paid when echeck is used (immediately after return to a site).
  • Paypal plugins. Partial refund should not mark whole order as refunded.
  • Admin area. Product list page. Find product by SKU should also search in attribute combinations.
  • Scheduled tasks with "run period" more than 30 minutes could be run more frequently (when application was restarted).
  • Custom customer attributes were not re-filled when form validation gone wrong.
  • Back in stock notification did not work when product quantity set on the bulk edit page.
  • Textbox inputs were truncated for custom customer and address attributes (when editing) with "textbox" attribute type.
  • Product list (admin area). Display correct quantity for products with "Use multiple warehouses" enabled
  • We should search localizable product properties if we have several published languages in multi-store environment. But each language is limited to one store.
  • SEO. robots.txt file. Changed "/shoppingcart/productdetails_attributechange" to "/shoppingcart/*". Google indexes URLs for each Product like "/ShoppingCart/ProductDetails_AttributeChange?productId=3354" but does a HTTP-GET which doesn't work.
  • We should not get "enter some keyword..." warning when we click the Search button in the search box and catalogsettings.productsearchtermminimumlength is set to 0.
  • The search page (paging) did not work well with "catalogsettings.productsearchtermminimumlength" set to 0.
  • Admin area. We should hide "Plugins" tab when all plugin menu items (IAdminMenuPlugin interface) are not visible.
  • Specification attributes could not be edited when custom HTML chars were used.
  • Some message templates didn’t support customer tokens.
  • Authorize.NET plugin. We should not send both addresses in one line when submitting recurring payments.
  • Inputs with HTML content should not cause error on the "registration" and "customer info" pages.
  • Rental dates formatting issue fixed (with custom region formats).
  • General settings. "Override store" checkbox should disable "Default theme" radiobuttons.
  • Minor CSS issue fixed. Customer profiler page was not properly displayed in some cases.
  • SiteMap.xml protocol http should not be hard coded (it should depend on "SecuritySettings.ForceSslForAllPages" setting).
Release Notes - nopCommerce 3.50 (December 8, 2014)
Release Notes - nopCommerce 3.40 (July 17, 2014)
Release Notes - nopCommerce 3.30 (April 3, 2014)
Release Notes - nopCommerce 3.20 (December 9, 2013)
Release Notes - nopCommerce 3.10 (July 30, 2013)
Release Notes - nopCommerce 3.00 (May 4, 2013)
Release Notes - nopCommerce 2.80 (January 5th, 2013)
Release Notes - nopCommerce 2.70 (November 29, 2012)
Release Notes - nopCommerce 2.65 (August 23, 2012)
Release Notes - nopCommerce 2.60 (July 1, 2012)
Release Notes - nopCommerce 2.50 (April 3, 2012)
Release Notes - nopCommerce 2.40 (February 1, 2012)
Release Notes - nopCommerce 2.30 (November 19, 2011)
Release Notes - nopCommerce 2.20 (October 11, 2011)
Release Notes - nopCommerce 2.10 (September 2, 2011)
Release Notes - nopCommerce 2.00 (August 1, 2011)
Release Notes - nopCommerce 1.90 (December 7, 2010)
Release Notes - nopCommerce 1.80 (August 30, 2010)
Release Notes - nopCommerce 1.70 (July 7, 2010)
Release Notes - nopCommerce 1.60 (June 1, 2010)
Release Notes - nopCommerce 1.50 (March 23, 2010)
Release Notes - nopCommerce 1.40 (December 6, 2009)
Release Notes - nopCommerce 1.30 (August 20, 2009)
Release Notes - nopCommerce 1.20 (June 16, 2009)
Release Notes - nopCommerce 1.11 (April 17, 2009)
Release Notes - nopCommerce 1.10 (February 3, 2009)
Release Notes - nopCommerce 1.05 (November 25, 2008)
Release Notes - nopCommerce 1.04 (November 16, 2008)
Release Notes - nopCommerce 1.03 (November 5, 2008)
Release Notes - nopCommerce 1.02 (November 1, 2008)
Release Notes - nopCommerce 1.01 (October 26, 2008)
Release Notes - nopCommerce 1.00 (October 23, 2008)