Release notes

Here you can view a list of all the changes for each release of nopCommerce.
Release Notes - nopCommerce 4.20 (May 28, 2019)
Highlight features
  • Re-designed admin area. A lot of UI/UX enhancements in admin area
  • Significant performance enhancements
  • nopCommerce can be run on Linux now
  • Docker support
Improvements
  • Upgraded to ASP.NET Core 2.2 and EF Core 2.2
  • Performance. HTML minification
  • Performance. Significant performance improvement by upgrading to EF Core 2.2 because the previous version of EF had a critical performance issue
  • Performance. Faster processing of large catalogs (do not load product attributes for products without attributes)
  • Performance. Faster processing of pictures stored in Windows Azure
  • Performance. Faster discount calculation
  • Performance. Faster generation of bundled and minified JS and CSS files
  • Performance. Redis works much faster now
  • Performance. Moved jQuery library to the footer (actually all js libraries now)
  • Performance. Improved performance of “IsCrawler” method used to detect search engines
  • Performance. Cache is cleared much faster now
  • New plugin architecture. Do not load uninstalled plugins in memory. Allow to uninstall/install multiple plugins at the same time
  • Added Avalara tax plugin out of the box
  • Security. Prevent a credit card bruteforce
  • GDPR user change history
  • We moved away from outdated KendoUI Grid to DataTables library
  • Added localizations for relative dates (previously they were hard-coded)
  • Added "Use response compression" setting to UI
  • Notificate customers when discount coupon code is applied using URL
  • Allow a store owner to configure password strength
  • Added a setting indicating whether we should apply additional shipping charge for pickup in store
  • Added backward compatibility routes for product tags
  • Added alternate language pages to sitemap.xml
  • Added favicon support for other devices (e.g. iOS Safari, Android Chrome, Windows 8 and 10,Mac OS X El Capitan Safari)
  • Allow to upload favicon in admin area
  • “Default value” of checkout and product attributes is localizable now
  • “Custom text” of specification attributes is localizable now
  • Added meta property "og:image:url" (file sharing in social networks)
  • Updated breadcrumbs structure according to the latest schema changing
  • Do not store "clean" passwords for external authentication systems
  • Update PayPal Standard plugin config instruction
  • Update Facebook plugin config instruction
  • Allow filtering by warehouse for the order list report
  • Added warning when trying to impersonate inactive customers
  • Added QualPay and SendInBlue plugins
  • Removed WorldPay plugin
  • Updated Square plugin to use the new "renew token" API
  • Admin area. Add a link to the warnings page from the dashboard
  • Added reCAPTCHA to the “forgot password” page
  • Support for multiple reCAPTCHAs on one page
  • Return 404 page when a topic, blog post, news item cannot be loaded
  • Increased max length of the settings
  • Filtering support for the "shopping carts and wishlist" page (admin area)
  • Remove Google+ page URL from social media (Google dropped its support)
  • Added ada tags to assist screen readers
  • Added possibility to use specific redis database
  • Added additionally check ManageAcl permission when managing customer roles
  • Performance. Allow to load top menu using AJAX (disabled by default)
  • Developers. Added Redis and AzureBlobStorage Enabled settings to SystemInfo admin widget
  • Developers. Continuous Integration. Added support of Travis CI (travis-ci.com)
  • Developers. Support schema other than DBO (databases)
  • Developers. Refactoring of admin mapping configuration
  • Developers. Added application root path for use in JavaScript
  • Developers. Added more widget zones
  • Developers. Added event handler on document when pressing Enter
  • Developers. Use IHttpClientFactory to create HttpClients (performance)
  • Developers. Less source code duplication
  • Developers. A lot of source code refactoring
  • Developers. Updated third-party libraries to the latest version
  • Developers. Added attribute "placeholder" in nop-editor tag helper
  • Developers. Added instructions for changing type datetime to type datetime2 in the database
  • Developers. Changed file extension from .txt to .csv when exporting
  • Developers. Store source files uploaded using html editor filemanager in database if media setting is database
Bugs
  • Security. XSS security issue fixed
  • Security. XEE security issue fixed
  • Admin menu was broken on mobile devices
  • Fixed rating stars display (product reviews)
  • Profit on the order details page didn’t consider "refunded amount"
  • Images were not displayed after product name changes
  • Return requests could not be edited
  • UPS Plugin. Shipping rates were set to 0 for international shipments
  • Page titles weren’t set for all pages in admin area
  • Browser language wasn’t detected properly (used in multilingual websites)
  • The plugin list page couldn’t be open when www.nopcommerce.com website was not available
  • Editing of attribute combinations didn’t properly pre-set values
  • Facebook authentication. Fixed redirection issue when authentication failed
  • Fixed duplicated warnings on admin area pages with a multi-store configuration
  • Fixed a “free shipping” label
  • Product tags count ignored ACL
  • Sitemaps loaded categories of all store (multi-store configuration issue)
  • Pickup points. Added display of address input fields depending on the address settings
  • Fixed problem with localization of non English chars in the “add reward points” form in admin area
  • reCAPTCHA didn’t work behind proxy
  • We had duplicates in UrlRecord after installation with sample data
  • Fixed issue with custom address attributes and "Billing address in checkout is disabled" setting
  • Fixed problem when allowed to save empty download object
  • Fixed tax calculation if product cost was zero
  • “Edit page” administration links didn’t work on the blog and news pages
  • When the picture SEO filename was changed, images couldn’t be loaded (cache reset was required)
  • When you limited a news item to a particular store you could still view it in other stores
  • Fixed duplicated default select option under country drop-down on the shipment page
  • Fixed issued in magnific popup gallery
  • Fixed euro symbol display
  • Fixed robots.txt for search page
  • Fixed CSS issue with up/down buttons (IE Edge +Firefox)
  • Fixed Redis clear cache error
  • Fixed problem with synchronization of "CustomerCustomerRoleMappings" with "CustomerRoles" entities
  • We should remove filename after clicking "Remove picture" button when uploading images
  • Fixed generate configuration URL in virtual directories for discount requirement plugins
  • Fixed bug with "SpecificationAttributes" caching
  • Fixed error with incorrect background color of uploaded images
  • Fixed redirection problem when PdtToken isn't set for PayPal standard options
Release Notes - nopCommerce 4.10 (July 26, 2018)

Our development efforts were focused on moving nopCommerce to NET Core 2.1, performance and architecture improvements, further enhancements and fixing bugs.

Highlight features

  • Moved from .NET Framework to .NET Core 2.1
  • GDPR support

Improvements

  • Upgraded to ASP.NET Core 2.1 and EF Core 2.1
  • Added "Shipping by Total" functionality to "Shipping by Weight" plugin
  • Custom vendor attributes
  • Combined some admin area (UI/UX)
  • Allow customers to check gift card balance
  • Updated all third-party libraries to the latest version
  • Updated all third-party client libraries (e.g. jQuery) to the latest version (only in public store)
  • Now Google Analytics plugin uses a new tracking code - Global Site Tag
  • Added opportunity add multiple rating values
  • Dropped support SQL Server Compact.
  • Added displaying the customer avatar (if enabled) in the customer list page
  • Added support import picture of product by URL
  • Ignored reviews of limited to stores products and filter reviews on enabled ShowProductReviewsPerStore setting on the account page
  • Moved default view (grid/view) setting to UI
  • Added warning admin that the entered SKU already exists
  • Allow admin to provide external links to a store which include a discount coupon code
  • Notify customers when a store owner (or vendor) replies to their product reviews
  • Added ignoring of products with the unchecked "Visible individually" property on cross-sell products list and related products list
  • Added missed TaxRate to recurring orders
  • Permitted to use CSS style/link tags in richTextBox
  • Added ability to allow a store owner to disable checkout process
  • Added possibility a store owner to delete shopping carts and wishlists on the admin area
  • More accurate start time of schedule tasks (after application restart)
  • Support multiple topics (the same system name) with ACL
  • Renamed some widget zone names (variable names)
  • Order details page (admin). Combine "Billing info" and "Shipping info" into one single tab
  • Added delay usage of reward points when adding them manually in admin area
  • Allowed the use of cookies from SSL protected page on the other store pages which are not
  • Support filtering by product in summary reports on the order list page (admin area)
  • Added possibility to set product attribute price adjustments as percentages
  • Added support for polls per store
  • Added ability to automatic remove required products from the cart if the main one is removed
  • Dropped support of reCaptcha version 1 (outdated)
  • Added ability to automatically choose language for reCAPTCHA
  • Added preview button for news, topics, blogs
  • Removed PayPal Direct plugin from the solution
  • Removed FedEx plugin from the solution
  • Updated maxmind and browscap databases
  • Synchronized the logic of displaying strikethrough price on the catalog page and product details page
  • Quick search in admin area includes plugins now
  • Display primary currency code on Value of 'X' (free shipping)
  • Removed obsolete unit tests
  • Excluded from bundle scripts in Worldpay and Square payment plugins
  • Allowed a store owner to search topics by keywords
  • Added filters by dates on the discount list page
  • Added filter by unpublished products on low stock report page
  • Added pagination support on "AppliedTo" discount pages
  • Implemented showing vendor name on the shopping cart and order details page
  • Added order notification to affiliate
  • Added possibility to preselect a country if there's only one country available (public store)
  • Added possibility a store owner to view all mapped products on a specification details page
  • Added possibility to create several product attribute combinations
  • Added possibility to find orders by phone number
  • Added ability to show date for pre-order availability in public store
  • Added ability to allow a store owner to specify rules for usernames
  • Added ability to delete gift card usage history after order cancellation
  • Added setting to ship product separately one item each
  • Added settings for hide/show footer items
  • Added settings to configure registration points validity
  • Added setting to sort reviews by date created desc OR asc
  • Added settings to configure minimum order total when points are granted
  • Added settings for datepicker "count of displayed years"
  • Allowed to set number of days when reward points are valid
  • Added validity of reward points when adding them manually in admin area
  • Excluded payment fees from profit report
  • Added showing an error when customer try to add a new "reward point" row with zero value
  • Added display link to the search page of autocomplete search result list
  • Replaced "confirm" javascript to "action-confirmation" window in admin area
  • Performance. Added sitemap pagination
  • Performance.Added re-index function for tables of database
  • Performance. Implemented splitting "big import file"
  • Performance. Speed up to load categories (database paging)
  • Performance. Added avoid unnecessary loading of binary image data
  • Developers. Move business logic from extension methods to services. This will make it easy to override appropriate methods and then use them by DI container.
  • Developers. Pass entire model to widgets
  • Developers. Square payment plugin and Worldpay plugin. Identified a route by name instead of route values
  • Developers. Supported order tokens in "return request" message templates
  • Developers. Added entity reference to activity log
  • Developers. Cleared cached widgets on updating a widget plugin descriptor
  • Developers. Added settings to include customer identifier to the Google Analytics script
  • Developers. Used analytics.js as predefined script on installation GoogleAnalytics plugin
  • Developers. Add inline scripts in the correct order
  • Developers. Added URL encoding on redirection to URL with non-ASCII chars
  • Developers. Added "Host" directive to robots.txt
  • Developers. Moved widget zones to separate classes
  • Developers. Added use gregorian date in sitemaps
  • Developers. Sort all fields and injected dependencies by name
  • Developers. Simplified javascript code for grid checkboxes in admin area
  • Developers. Used proper protocol to generate canonical URLs
  • Developers. Added paging css class names as fields
  • Developers. Use secure links to Google Maps
  • Developer. Search engine optimization. ID-less product tag URL pages
  • Developer. Added In-Memory Scheduled Task Lock
  • Developer. Added version identifiers to js and css files to keep them from caching when updated
  • Developer. Using Moq library instead RhinoMocks in tests

Bugs

  • Google Analytics. Send "cancel/refund" notifications only if an order was paid
  • Google Analytics. UTM (campaign) details were ignored when passing ecommerce details to GA
  • Localization errors fixed
  • Fixed meta keywords for grouped products
  • Fixed bug with overridden rates for international shipping in the UPS plugin
  • Fixed problem with not create browscap.crawlersonly.xml file
  • Fixed problem with IPv6 in GetCurrentIPAddress method
  • Prevent adding the same picture to the product
  • Fixed bug with ignoring the selected services on saturday delivery in UPS shipping plugin
  • Fixed problem when do not display product availability until all required product attributes are selected
  • Fixed bug with empty tokens in message templates
  • Fixed address restriction and "Shipping to the same address" issue
  • Fixed the date problem on the customer reviews page
  • Fixed determination of the store location in WebHelper
  • Fixed problem with properly encoding URL
  • Fixed problem with assembly blocking on application startup
  • Fixed displaying reports for dates with daylight saving time
  • Fixed datepicker wrapper bug
  • Fixed "back to plugins" link for misc plugins
  • Fixed problem with robots.txt always included into sitemap.xml ("sitemap enabled" setting wasn't used)
  • Fixed exception on installation page
  • Fixed bug on search by store id on "Topics (pages)" page
  • Fixed problem with generate wrong combinations
  • Export/import. Fixed problem with the same key for different stores
  • Fixed saving problem in FixedByWeightByTotal plugin after editing an rates
  • Fixed issue with upload plugin or theme on Azure Web App
  • Fixed incorrect multiple selection of statuses on the order list page
  • Fixed all problems on test projects
  • Bug-fix for unexpected auto-closing of grids page size DropDownList in Chrome
Release Notes - nopCommerce 4.00 (November 9, 2017)

Our development efforts were focused on moving nopCommerce to ASP.NET Core 2.0, performance, architecture improvements, further enhancements and fixing bugs. These release notes below don’t include all changes caused by migration to ASP.NET Core. There’s a separate upgrade guide for developers on how to migrate existing projects and plugins to this version because number of changes are really HUGE!!!

Highlight features

  • Migration to ASP.NET Core 2.0. Please note that we target .NET Framework 4.6.1 and not .NET Core. We plan to use .NET Core only when EF Core team starts supporting all ORM functionality from the classic EF. Such as lazy loading, etc (they plan to do it in Q1-Q2 2018).
  • Hence, significant performance enhancements. But it’s not just about migration to ASP.NET Core. We’ve made a lot of other changes to increase performance

Improvements

  • Allow store owners to upload plugins and themes instead of putting them manually into "\Plugins" or "\Themes" directory using FTP. Also allow to delete uninstalled plugins in admin area
  • Better UI/UX in admin area. Nested settings
  • Enabled "Force SSL for all site pages" by default. It is no longer possible to set "secure" cookies over insecure (e.g. HTTP) origins on Firefox and Chrome after they implemented the Strict Secure Cookies specification
  • Dynamically update order totals blocks when updating checkout attributes (shopping cart page)
  • Google analytics plugin. Reverse an ecommerce transaction. And process only already paid orders (not just placed)
  • "Accept terms of use" for vendors
  • Use more secure password hashing algorithm (SHA1)
  • Added "Store IP addresses" customer setting. When enabled, IP addresses of customers will be stored. It's prohibited to store IP addresses in some countries (private customer data). For example, in Germany now
  • B2B. Allow a store owner to override tax display type (excl/incl tax) based on customer role
  • Added a setting indicating whether "accept terms of service" or "access privacy policy" links should be open in popup window or new pages. It can be useful when "terms of services" page is big
  • Added setting to include product tags in sitemaps
  • Consider associated products on determining whether shipping is required
  • Consider associated products on determining additional shipping charges
  • Properly handling of products marked as "free shipping" in the shipping plugins
  • Consider associated products when displaying the "Free shipping" label on the product details page
  • Moved the following plugins to the marketplace - Australia Post, Canada Post, USPS, Google Shopping, PurchaseOrder, "Customer has one of these products in the cart"
  • Added Worldpay and Square payment plugins
  • Admin area. Persist selected language tab when editing localizable values
  • Added a setting allowing administrators (in impersonation mode) to buy products marked as "Call for price". This would allow for a store owner to complete the purchase via phone or secure chat
  • Product import/export. Category names now include name of all parent categories
  • Category import. Import by name.
  • Made reCAPTCHA settings overridable per store
  • Validate credit card expiration date in payment plugins
  • Added a setting indicating whether to use canonical URLs with query string parameters
  • Added "Deleted system log" activity log record
  • Added DisplayOrder property to pickup points
  • Country is now required for estimate shipping
  • Added a setting to allow customers to remove their external authentication associations
  • Product details page (admin area). Now product attributes are managed on a separate page (previous we added/edited them right in the grid)
  • Product details page (admin area). Show "Visible individually" only if product type is "Simple"
  • Localization support for "Text prompt" field of product attributes
  • Log records should save URL "as is" (do not lowercase)
  • "adminareasettings.usericheditorinmessagetemplates" setting moved to UI
  • Delete appropriate settings when deleting a discount requirement
  • Delete appropriate settings when uninstalling a plugin
  • Added support for negotiated rates in UPS plugin
  • Consistent design for "Configure" button on the widgets page
  • Consistent cookie names. Now all cookie names start with ".Nop."
  • Removed "ExternalAuthenticationSettings.AutoRegisterEnabled" setting
  • Performance. Moved javascript files and inline scripts to the footer
  • Performance. Schedule tasks are rewritten to be run using HTTP requests (not in background)
  • Performance. Response compression
  • Performance. Now generated bundles and minified files are stored on the file system
  • Performance. More SQL Server indexes
  • Performance. Faster loading of cross-sells
  • Performance. Cache stores, currencies, languages between requests (do not load them for each HTTP request)
  • Performance. Faster Azure BLOB support (caching added)
  • Performance. More async methods
  • Performance. Implemented splitting locales to two groups
  • Developers. Added ModelReceived and ModelPrepared events (for model factories)
  • Developers. More widget zones.
  • Developers. New implementation of "RestartAppDomain" method
  • Developers. Do not hard-code URLs in MessageTokenProvider.
  • Developers. Taxonomy.txt file should be embedded in Google Shopping plugin (caused by a recent change in a plugin project files)
  • Developers. Replaced plugin 'Description.txt' files with 'plugin.json'. Replaced 'theme.config' file with 'theme.json' file for themes. InstalledPlugins and Settings are also in JSON now
  • A lot of other source code refactoring and polishing

Bugs

  • Google Shopping plugin should use "HTTPS" when generating product and picture URLs if SSL is enabled.
  • Localization errors fixed
  • Checkout didn't work in SQL Server Сompact with reward points enabled
  • Ignore deleted orders in discount usage history
  • Fixed problem with update a specification attribute at the product level if the value of the option is a number or int
  • Fixed problem with store link on RSS pages when site is SSL only
  • Weight was ignored when adding a product to an order in admin area
  • A customer was not able to choose an address during the checkout process if both 'Disable "Billing address" step' and 'Ship to the same address' settings were active
  • Checkout attributes: 'RGB color' input cannot be set after changing attribute type to 'Color squares' (from any other type)
  • Product details page (admin area). Category mappings input box didn’t search all categories (kendoui multi-selector)
  • Topics protected with passwords should use unique ID for a hidden input
  • Selected checkout attributes were lost after customer login
  • Fixed a bug on category/manufacturer pictures importing
  • Fixed a rounding bug
  • Prevent uploading files if ReturnRequestsEnabled = true and ReturnRequestsAllowFiles = False
  • Fixed an issue with free shipping. If you had a not shippable item in cart, and also had a product with free shipping in cart, shipping was still charged
  • Fixed the incorrect cache key in the GetProductSpecificationAttributes method
  • Fixed bug with displaying only the first 10 pickup points on the map
  • Fixed CSS formatting of the RichEditor in full mode
  • Disallow the use of the seo name is the same as the language code
  • Added a missing HTML class name to the "customer product reviews" page
Release Notes - nopCommerce 3.90 (March 14, 2017)

Highlight features

  • Compliance with PCI DSS 3.2 requirements. Password attempt failure lock-out support (configurable). Do not allow customers to submit one of previously used password (configurable). Passwords must be forced to change at least once every 90 days (configurable).
  • Support conditions in message templates. For example, now you can hide shipping address in emails if shipping is not required.
  • Boolean logic support for discount requirements (“AND” or “OR” or groups).
  • Delay usage of reward points. A store owner can specify a period of time after which points should become active.
  • Allow customers to apply multiple discount coupon codes.
  • Allow a store owner to configure custom order number. For example, add some prefix or date.
  • Allow a store owner to manage access to plugins per customer role (ACL).
  • Allow a store owner to specify a product availability range (will be displayed instead of general “out of stock” message).
  • Bundled products (attributes associated to other products). Customers can enter the quantity of bundled items.
  • Tier prices now support start and end dates (hence removed “special prices” product properties).
  • Track stock changes of products.
  • Allow store owners and vendors to reply to product reviews.

Improvements

  • Further changes on admin area redesign. More user-friendly buttons, not links as before. Redesigned grids. New inputs for currencies, weight, dimensions.
  • New redesigned installation page.
  • Rounding rules for currencies.
  • Added settings indicating whether "default" items (homepage, forums, contact us, etc) should be displayed in the top menu
  • Development. Now we use model factories, it makes customization much easier for developers.
  • Now customers can attach files when submitting return requests (scans, additional documents, etc). Disabled by default.
  • Multiple XML sitemap files support (if there are more than 50,000 records).
  • Allow a store owner to specify an address of vendors.
  • News and blog comments per stores can be displayed per store.
  • Added approval mechanism for news and blog comments.
  • Performance optimization. The speed of loading user agents was increased and memory usage was reduced. Now sites require much less memory.
  • Performance optimization. Cache discounts between requests. Previously we loaded all discounts for each HTTP request
  • Performance optimization. We removed only appropriate records from the cache when some event is triggered, not all of them.
  • Performance optimization. Cached number of blog and news comments between HTTP requests.
  • Simplified admin area adding "basic-advanced" modes to categories, checkout attributes, manufacturers, message templates, topics.
  • Performance optimization. Now vendors and manufacturers in admin area are cached.
  • Performance optimization. Added a stored procedure to load all categories. Disabled by default.
  • Added required hints for all required inputs in the admin area.
  • Return requests can be searched by custom number, dates, status.
  • Blog and news comments can be searched by dates, text, approved status.
  • Customer notifications for failed recurring payments.
  • Added description to each message template.
  • Moved "contact us" emails to message templates. Now, store owners can choose a default email account which is used to send these emails and configure BCC.
  • PayPal Direct plugin. Pass a list of all purchased items (configurable).
  • Combined "Fixed Rate Shipping" and "Shipping by weight" plugins into one. Upgrade instructions: do not forget to manually delete "/Plugins/Shipping.FixedRateShipping" and "/Plugins/Shipping.ByWeight" directories (they are not used anymore) and replace the plugin «Shipping.Fixed Rate» or «Shipping.ByWeight» by the plugin «Shipping.FixedOrByWeight» in the App_Data/InstalledPlugins.txt file.
  • Combined "Nop.Plugin.Tax.CountryStateZip" and "Nop.Plugin.Tax.FixedRate" plugins into one. Upgrade instructions: do not forget to manually delete "/Plugins/Tax.FixedRate" and "/Plugins/Tax.CountryStateZip" directories (they are not used anymore) and replace the plugin «Tax.Fixed» or «Tax.CountryStateZip» by the plugin «Tax.FixedOrByCountryStateZip» in the App_Data/InstalledPlugins.txt file.
  • Renamed "Froogle" plugin to "Google Shopping". Upgrade instructions: manually delete /Nop.Web/Plugins/Feed.Froogle/ directory
  • Now customers should re-validate the new email address after editing if "Registration method" is set to "Email validation".
  • Only supported tokens are displayed on message template details page.
  • Added a setting indicating when an order status should be marked as "complete" (when just shipped or delivered).
  • Hid 'Search' button if there are no other search fields in panel in the admin area.
  • Added a message template for new return requests for customers.
  • "Products never purchased" report now can be filtered by store, vendor, category and manufacturer.
  • "Shipments" and "Products never purchased" pages are displayed in two columns now. Previous filters block had too much empty space displayed.
  • Standard text area is used instead of TinyMCE for message templates, campaigns and queued emails.
  • Now a store owner is allowed to "limit" product templates by product type(s). Now if a store owner chooses "Simple" product type, then he won't see "Grouped" product template.
  • Allow a store owner to decide whether shopping carts and wishlist are shared between stores in multi-store environment
  • Payment method description is displayed during checkout.
  • External authentication block is added to the registration page.
  • A store owner is allowed to choose an email account for sending campaigns.
  • Added support for "Enter" button ("zip code" input) in “Estimate Shipping” form.
  • Display a warning if a specified search engine friendly name already exists.
  • Added a setting to hide "Shipping total" labels if shipping is not required.
  • Required products are not allowed to be removed from the cart.
  • Added Indian Rupee to built-in list of currencies.
  • Now it is allowed to choose a language from a dropdown list on the language add/edit page.
  • Checkbox labels should be clickable in “Terms of Services”
  • System info page in admin area shows more detailed information of loaded assemblies and more readable format of variables and assemblies list.
  • REST API is used for PayPal Direct Payment plugin.
  • Renamed "Payment method restrictions" menu title to "Payment restrictions".
  • Increased a random number appended to the backup filename to 10.
  • Enabled "Ship to the same address" setting by default.
  • Ensured that store owners can preview products, categories and manufacturers that are not available (mapped to other store, ACL, etc).
  • Imported states (country list page). Added a link to the official package (https://www.nopcommerce.com/all-states-provinces-package-nopcommerce-team)
  • The Product editor settings are used when exporting products to XML.
  • Allow admins to change customer username regardless of the "allow customers to change username" setting.
  • Added a tax setting indicating whether pickup point address should be used for tax calculation (when selected by a customer).
  • Performance. A warning is displayed when LoadAllLocaleRecordsOnStartup setting is enabled and Redis cache is used.
  • Now ECB exchange rate provider supports different currencies.
  • Editing of specification attribute option is allowed on product details page.
  • Added a new tax setting "Default tax category for product" which is pre-set on the add new product page.
  • "Attribute values" tab when "attribute type" doesn't require any value is hidden on checkout and custom checkout attributes.
  • Added a setting indicating whether a product can be reviewed only by a customer who have ordered it.
  • Hid entered password on Email account details page.
  • Vendors can import products (Excel).
  • Vendors can export orders (Excel).
  • There's no need to display payment methods during checkout if "Use my reward points" is selected and earned points are enough to pay the order in full.
  • Canada Post plugin now supports commercial customers.
  • Display product attributes info are displayed on Return request list page.
  • Added a lot of new activity types.
  • Added a navigation link to the appropriate order details page on return request page.
  • A store owner is allowed to specify the state for pickup points.
  • Now we support customer names in the header and not just email or username ("CustomerName" property of "HeaderLinksModel").
  • "TaxSettings.LogErrors" setting is now disabled by default.
  • Now it is allowed to add products to the cart from catalog page for products that have "readonly" product attributes only.
  • Added setting for deactivating gift cards when deleting an order.
  • Categories and manufacturers on “Import products” page should exactly match after importing (all to delete categories/manufacturers during importing).
  • Added support for product tags in Export/import products.
  • Included information about products in export orders.
  • Included custom customer attributes to export customers.
  • A store owner is allowed to add custom URLs to sitemap.xml file in admin area (use "commonsettings.sitemapcustomurls" setting).
  • Added a column indicating in which store a customer registered.
  • Updated all third-party libraries to the latest versions.
  • Added setting (paymentsettings.skippaymentinfostepforredirectionpaymentmethods) indicating whether the 'payment info' page should be skipped for redirection payment methods. Disabled by default.
  • Disallowed /admin from robots.txt file.
  • 0 is not allowed to be set as "Page Size" (categories, vendors, manufacturers). Otherwise, exception can be thrown in public store.
  • “Copy product” functionality now supports attribute conditions.
  • Localized all hard-coded resources.
  • Changes in the default "click-to-zoom" behaviour in the product picture gallery.
  • Localization of grid pager in admin area and TinyMCE editor.
  • Added option for “Saturday Delivery” in UPS plugin
  • User-friendly message for "maximum discounted quantity" is displayed (when applied).
  • Vendors can see whether orders are canceled or not.
  • Uniformed view of all tables in the admin area.
  • Don't display “store” columns if only one store is available in Admin area.
  • Static content is cached for 24 hours by default (cacheControlMaxAge).
  • In “Copy products” new product name should be "original name - copy" (not "Copy of...."). Also add " - copy" to SKU field.
  • Stock quantity default value should be set to 0 in attribute combinations.
  • Display a warning on adding associated product with attributes in Bundled products
  • Display a warning on adding associated product which is gift card or downloadable one in Bundled products.
  • The CacheControl header for Azure Blob is set.
  • A specified message template static file attachments on a queued email details page is displayed.
  • Added a message token for custom customer attributes (Customer.CustomAttributes).
  • Subscription to a newsletter is allowed when store is closed.
  • Applied cube root method to associated products when calculating shipping rates (ShippingSettings.ConsiderAssociatedProductsDimensions).
  • Hid "product template" drop-down list if it has only one value on product details page in admin area.
  • Dropped "Awarded order status" and "Canceled order status" fields in Reward points settings.
  • Replaced "Gift card activation order status" and "Gift card deactivation order status" dropdownlists with appropriate checkboxes (just two available scenarios) in order settings.
  • System names (e.g. "con", "com1", "lpt1", etc) are not allowed in "Search engine-friendly URL" fields. Anyway they will cause a runtime error.
  • Removed "Affiliate identifier" field on Affiliate details page.
  • A warning on discount list page when "Ignore discounts" is displayed when the setting is enabled.
  • Now a store owner cannot create a product attribute with "Associated to a Product" type without association.
  • A setting to display MiniProfiler only to administrators is implemented.
  • In Security settings added "RequireReLogin" field to "Customer" record. If set to "true", then require a customer to re-login.
  • Topic system name is not required anymore.
  • Removed "DiscountRequirement.HadSpentAmount" and "DiscountRequirement.HasAllProducts" plugins from solution. Starting version 3.90 they will be available for download on the marketplace.
  • Removed "ID" column on the customer list page in admin area.
  • Renamed "Azure Web Sites" to "Azure Web Apps" in web.config.
  • PayPal Standard plugin now properly validates order total.
  • Added support for Enter button to discount and gift card boxes on the shopping cart page.
  • The activities are logged during import.
  • Performance. Reduced size of some images for better performance.
  • Performance.Categories in top menu and category navigation block can use the same model and is cacheble. Hence loaded only once for better performance.
  • Performance. GetAllUrlRecordsCached method of UrlRecordService should use "TableNoTracking" (read-only) for better performance.
  • Added registration date in the customer export.
  • Admin area. Hid entered password on Customer and Email account pages.
  • Admin area. Added support for menu items to be open in a new window.
  • Admin area menu is allowed to have more than two levels.
  • Added a setting ('commonsettings.bbcodeeditoropenlinksinnewwindow') indicating whether BBCode Editor should generate URL with "target=_blank" (new window).
  • In PayPal Standard plugin new url to IPN postback is added.
  • The "shipment tracker" is not required to have an active shipping rate computation provider.
  • All stored procedures should use "dbo" schema.
  • Markup optimizations for Order/Details.cshtml , ShipmentDetails.cshtml and _OrderReviewData.cshtml file are implemented.
  • Removed an unnecessary HTML element in forum posts
  • Development. Support "kendoMultiSelect" control when overriding settings per store is added.
  • Development. Changed the way how plugin views are stored. Now we store them in \Views\file.cshtml. Previously it was \Views\plugin_name_directory\file.cshtml (removed extra directory). It's much simpler.
  • Development. An additional CSS class for "image squares" attributes is created.
  • Development. Enabled TLS 1.2 support for entire application (instead of adding this support to every single plugin).
  • Development. GetOrdersByIds, GetCustomersByIds, GetProductsByIds methods ignore deleted records.
  • Development. Marked all methods as "virtual" in controllers.
  • Development. Pass entire newsletter entity to event.
  • Development. Using distributed locks with Redis for exclude TaskScheduler race condition.
  • Development. Added "Delete" events for entities which are just marked as deleted
  • Development. Refactoring of mapping rules (AutoMapper) was performed. Now we can have multiple mappers (plugin developers can use it). Each mapper should implement IMapperConfiguration interface.
  • Development. Added "UpdateExistingResources" parameter to "ImportResourcesFromXml" method.
  • Development. Changed a DownloadActivationType enum value.
  • Development. Added more "orderby" to service methods. Sometimes DisplayOrder alone is not enough in some cases.
  • Development. Trim the start space if the first letter is uppercase (CommonHelper.ConvertEnum).
  • Development. Add ProductReviewApprovedEvent on editing product review.
  • Development. Added "Customer logged out" event.
  • Development. Marked SendNotification method of WorkflowMessageService as public.
  • KendoUI grids. Return error message is present if access is denied in 'List' methods.
  • Refactoring. Simplified unit tests (Nop.Data).
  • A lot of other source code refactoring.

Bugs

  • Special chars are not encoded (rich editor). For example, ä should NOT become "ä". Otherwise, database searches become impossible when words contain a character of this kind.
  • IsoDateTimeConverter is used for properly formatting date in Kendo grids (disabled by default).
  • PayPal Direct has a bug fixed with the wrong update of payment status with enabled fraud filter.
  • Fixed ReCaptcha Version 1 error which caused a warning on a store with SSL enabled.
  • Set payment status to 'Refunded' if the order total amount is fully refunded is fixed.
  • Fixed bug, when username (read-only) wasn’t displayed on user account page.
  • Product export bug which failed when filters length was more than 255 is fixed.
  • Explicitly set content type for the "Page not found" page is working fine now.
  • "Return request status was changed" message template now uses use customer language not default admin.
  • Proper consideration of secure connection on GetThisPageUrl method. Previously it could cause issues with services such as CloudFlare and non-English cultures.
  • We should not include shipping total when calculating reward points to be granted.
  • Cumulative discounts (with coupon codes). If you had several discounts with the same code, and one of them could not be applied for some reasons (e.g. requirements are not met, etc), then you got "The coupon code you entered couldn't be applied to your order" error when entering a coupon code on the shopping cart page. Because we validated only the first found discount. Now we do it for all found discounts.
  • Fixed bug in BBCodeHelper for IMG tag.
  • Fixed a bug in Fedex plugin for India intra-country shipping rates
  • Google Analytics plugin. Ensure that transactions are not duplicated when reloading an order completed page.
  • Language tabs didn't work properly when language name had brackets.
  • Schedule tasks threw an exception when period was more than 24 days. We added a note to the schedule task list page that period should not exceed 24 days.
  • Product details page bug fixed, when categories or any other entities with too long names could not be deleted. It could be done only on a category details page.
  • An email which is sent to a vendor is not in the customer language.
  • Fixed a bug when RedisCacheManager did not work properly when database used a number greater than 0.
  • Robots.txt file now properly generates localized URLs.
  • Vendors cannot see products of other vendors in PDF invoices.
  • Vendors cannot see "Manage this page" link only for own products.
  • Fixed "Terms of service" dialog size issue.
  • Fixed all warnings on RSS feeds
  • Fixed Paypal Standard bug which failed when there were too many products in cart (URL is limited to 2048 chars).
  • Fixed BackorderMode property which was ignored during product import.
  • Added a setting to display SKU on catalog pages, not just product details page.
  • The return requests for deleted items are displayed.
  • USPS plugin throws no exception causing site error.
  • Validation fixed for password protected pages with forms.
  • Issue with "SEO friendly URLs with multiple languages" setting fixed. Previously non-existing language codes could be specified in URLs by users. For example, you had only English and Russian languages but users could visit URLs such as http://www.yourstore.com/gr/product-name (Greek).
  • Fixed a bug with wrong pickup point marker position with coordinates.
  • Fixed displaying of the manual order status change warning (order details page in admin area)
  • The conditional checkout attributes that are not visible but are required should not be validated.
  • "Check / Money Order" plugin didn't use description overridden per store.
  • The prices are not rounded in Google Shopping plugin.
  • Fixed a bug when custom customer attributes didn't validate "required" fields in the admin area.
  • Customer details page (admin area). We should not validate required form fields for guests.
  • The cache is cleared automatically when editing product tags.
  • The customer is not allowed to visit "checkout" page (hide it and appropriate buttons) if we have only "Button" payment methods (e.g. PayPal Express).
  • The setting "Show product images on wishlist" is used instead of "Show product images on cart"
  • Import products. We set "Visible individually" and "Published" to "true" by default if not specified.
  • Order details page in admin area now has no empty panel was rendered when logged in as a vendor.
  • Azure. Invalid mime type was saved in blob. Fixed.
  • Forum topic pages had inputs with duplicate ID (failed HTML validation). Fixed.
  • Fixed recurring orders which didn't support "CustomValues" when value wasn't copied to a new order.
  • Deleted products are not ignored when importing (Excel) and looking for existing ones by SKU.
  • Fixed a bug with wrong display SKU, GTIN, MPN with product attributes
  • Search (both the page and autocomplete box) didn't support wrong chars (HTML input validation).
  • Fixed a bug with wrong calculation of minimum price for products with tier prices (in some cases maximum discount could be configured not for maximum quantity).
  • Nop.Admin\Views\Product\_ProductAttributes.cshtml "Built action" should be set to "Content". Otherwise, some IDE could skip it when deploying.
  • "PublicStore.Login" activity type didn't work as expected.
  • Fixed displaying of the 'Sent on' field value on the 'message queue item' page
  • Database backups should are now ignored in Nivo Slider plugin.
  • "Tax By Country & State & Zip" and "Fixed tax" providers used rates of already deleted tax categories. Appropriate records are now deleted when a store owner deletes a tax category.
  • Dashboard graphs (reports) bug when the data from the next months was included is fixed.
  • Fixed bug when admin dashboard charts (orders and new customers) showed flat line since 2017.
  • Disabled "Refund" (full) button when some partial refund has been already done. It was possible to reproduce if a store owner manually marked an order as paid after a partial refund.
  • WebHelper.GetStoreLocation(false) was hard-coded (HTTP) in GenericPathRoute. It could cause issues when a site is forced to HTTPS.
  • Canada Post plugin. Fixed a bug related to zip postal code with space.
  • Admin area. Menu item "Measures" had wrong CSS class.
  • Users in impersonation mode are not authenticated.
  • Fixed wrong locale resource usage for "ACL" field on the topic details page in admin area.
  • Fixed "GetStoreUrl" method of MessageTokenProvider which doesn't properly detect secure URL in some cases.
  • "In order to use this functionality..." warning on the customer details page beside "customer roles" field is not displayed now.
  • Fixed a bug with decryption of multiline text.
  • Fixed situation when "GetCurrentIpAddress" method threw an exception when invoked by web service.
  • Resolved the grey background issue for product details page on SEO tab (admin area).
  • Set LastSuccessUtc property to the database value in the constructor. Without it, if the task threw an exception, the LastSuccessUtc column in the database will be overwritten with NULL since the property is never initialized.
  • Admin area. Fixed button alignment in the confirmation popup.
  • Fixed account info page CSS issues.
  • Fixed "download" editor template CSS issue.
Release Notes - nopCommerce 3.80 (August 3, 2016)

The main changes that we implemented were aimed at making nopCommerce more store owners and store managers oriented. We wanted to ease the work with the platform for different types of users: from beginner merchants to experienced managers. Making it happen, we focused on UI and UX and simplified and redesigned admin area.

Highlight features and changes

  • Absolutely new redesigned admin area (responsive). “Basic” and “Advanced” modes for settings and product details pages (a store owner can choose which product properties he wants to see/edit). This way it'll much easier for new store owners to get started with nopCommerce.
  • Usage of several discounts simultaneously (cumulative discounts).
  • "Color square" specification attribute type (allow filtering by this type on catalog pages).
  • Conditional checkout attributes.
  • Added new product attribute type Image squares. It's very similar to "color squares" attribute type. But allows a store owner can upload pictures instead of choosing of colors. Attribute value images make it more clear to the customer what they are choosing.
  • Better "instore pickup" support. Allow a store owner to configure (and a customer to choose) pickup locations.
  • "Ship to the same address" checkbox to the "Billing address" step during checkout (configurable disabled by default).
  • Allow a store owner to configure custom RMA# (return request number).

Improvements

  • Export and import now supports product attributes (Excel).
  • Filtering by specification attributes now use "OR" condition.
  • Catalog pages. Allow a store owner to choose/sort available "sort by" options.
  • Product reviews per store (configurable).
  • Allow to upload site logo in admin area.
  • Allow a store owner to create database backups in admin area.
  • Support for new version reCAPTCHA / V2.
  • Now customers can see all written product reviews on my account page.
  • Now a store owner see "Manage this page" link in public store for products, categories, manufacturers, vendors, topics, blog posts, news.
  • Allow a store owner to filter reviews per product.
  • Forums. Allow user to vote for posts.
  • Redesign of order details page (public store).
  • Advanced search. Allow search by vendor.
  • Product bulk edit page. Allow to edit product name.
  • Display a warning to a store owner in case if quantity has been changed during period when a store owner opened a product details page and clicked "save" button.
  • Performance optimization. Much faster caching (removed locking).
  • Performance optimization of product importing (Excel).
  • Product importing. Now a store owner can skip most of product properties (they are not required).
  • Allow a store owner to specify whether a product is returnable or not.
  • Support for plugin descriptions.
  • Performance. Add paging support for reward point grids
  • Setting to check to automatically update order totals on editing an order in admin area.
  • Store "IP address" in activity log.
  • Do not allow administrators to be impersonated as other administrators.
  • Import and export categories and manufacturers (Excel).
  • Allow a store owner to have only "in store pickup" option available (no shipping carriers configured).
  • Allow a store owner to publish/unpublish topics.
  • Allow a store owner to search/filter orders by multiple statuses (order, shipping, payment).
  • Allow a store owner to specify send time to campaigns.
  • Now we search in SKU and manufacturer part number by default (previously it was done for advanced search only).
  • Apply for vendor account. Allow applicants to enter description and upload logo
  • Allow vendors to manage its information (my account page).
  • Allow a store owner to search/filter customers by IP address.
  • Allow a store owner to specify maximum number of products per vendor.
  • Allow to force entering email twice during registration (configurable).
  • Add support for "Send in... hours/days" property for message templates
  • Allow customers to edit wishlist items (similar to standard shopping cart items).
  • Reply to already sent PM (private message) should not be sent to yourself.
  • Partial refund support for PayPal Direct.
  • Estimate shipping uses AJAX now (no full page reloading).
  • Added more sample data.
  • Allow to limit campaign recipients by customer role.
  • Admin area. Allow a store owner to filter category and manufacturer lists by a store.
  • Months and years should be sorted descending in the "Blog archive" block.
  • "New order note" message template. Added support for "%Order.OrderNoteAttachmentUrl%" token that displays a link to download an attached file.
  • Updated Australia post API to the latest version.
  • Upgraded Canada Post to use web services.
  • Added a setting to generate customer invoices in customer language ("OrderSettings.GeneratePdfInvoiceInCustomerLanguage")
  • Sent private message page. Recipient wasn't displayed. Change the recipient link font.
  • Admin area should not throw exceptions when entering HTML code into "footer text" fields of PDF settings.
  • Add support for "Do not send before date" property to queued emails.
  • Added activity log for topic page changes.
  • Added activity log for "Delete order" and "Edit order" events.
  • Now all entered values are trimmed. Developers can mark properties to be excluded from trimming with [NoTrim] attribute.
  • Removed "Authorize.NET", "Verizon SMS Provider", "Facebook shop" plugins from the solution. Since version 3.80 they will be available as thirdparty plugins at our extensions and themes page.
  • PayPal standard plugin. Save warning about "failed order total validation error" in order notes.
  • Customer role “Registered” is checked as a default role when creating a new customer (admin area).
  • Moved localization (locales) to the language details page.
  • Admin area. Avoid duplication when entering page size values.
  • Ability to require account creation for downloadable products.
  • Message Tokens for social network pages are added.
  • Moved sitemap settings to UI.
  • Removed "Search by GUID" on the order list page.
  • Sample data. Specify distinct SKU for each sample products.
  • Google Analytics plugin. Allow a store owner to choose widget zone.
  • Forums are now responsive.
  • Admin area. Display validation rules and formatted condition in "product attributes" grid.
  • Admin area. Ensured for valid email address if registered role is checked.
  • Added setting for DeleteGuestTask. Interval was hard coded to 1440. Moved to “Tasks.DeleteGuestTask.OlderThanMinutes” setting.
  • Added textboxes to search settings and locales (forget about funnel icons).
  • Ensure that only administrators can delete other admins. Ensure that only administrators can change passwords of other admins.
  • "Uninstall plugin" button color should be red. "Install" one should be green.
  • Performance optimization. Delete a lot of records as one SQL query.
  • Significant performance optimization of Redis cache implementation.
  • Admin area. ide dropdownlists when only one option is visible (available).
  • Admin area. Group some buttons (e.g. "all found" and "selected").
  • Security. All delete functionality should use "POST" (XSRF validation)
  • Security. Added XSRF protection to delete a customer address functionality
  • Security. XSRF validation for password protected topics.
  • Security. XSS issue fixed for the registration result page.
  • Dynamically hide conditional products attributes in admin area (add product to order, add attribute combination).
  • Replaced "tagit" script with much faster "tageditor".
  • Added a default "Standard" value to 'Email account' dropdown in nonstandard localization tabs of 'Message template details' page.
  • Removed "Shipping methods" and "Shipping method restrictions" from admin menu. Now they are accessible from offline shipping provider configuration pages only.
  • USPS. Firstclass Postcards and Letters should be hidden in some cases.
  • Updated country list. Added some missing countries South Sudan, Congo (Democratic Republic of the), Palestine, East Timor.
  • Added new widget zones to sitemap and forums pages.
  • Applied a general error fix for the "Error during serialization" issues in admin area.
  • Customer reward points. Renamed "Add points" to "Add (reduce) points". This way it's more clear for store owners that negative values are also supported.
  • Do not use "fulltext" search for SKU(when enabled). We should use “Exact match”. IMPORTANT: If you already have fulltext enabled, then go to admin area > general and misc setting and disable fulltext and then enable it. This way a new index will be created.
  • Now we use exact match when searching in product tags.
  • Added Indonesian (Bahasa) language for installation page.
  • Hints were missing for gift card fields when adding a product to an order (in admin area).
  • Moved back to browscap.org to detect search crawlers.
  • Allow a store owner to add custom tags to the element.
  • Grouped "measures" pages into single one.
  • Consistency of all confirmation windows.
  • Developers. Significant refactoring of export/import implementation.
  • Developers. Page class on element
  • Developers. Split thirdparty client libraries (JS and CSS) to public and admin area.
  • Developers. Separated social links out into separate model and view to allow them to be shown in places other than just the footer.
  • Developers. Added CurrentStoreName property to ProductDetailsModel. Previously we got it dynamically in the ProductTemplate.Simple.cshtml and ProductTemplate.Grouped.cshtml files.
  • Developers. Updated thirdparty libraries to the latest version.
  • Developers. Null validation fixed in CurrencyService
  • Developers. Dropped ShippingRateComputationMethodType.Unknown and PaymentMethodType.Unknown enum values.
  • Developers. Add support for "async" for javascript files.
  • Developers. Replaced all invocations of HostingEnvironment.MapPath with CommonHelper.MapPath
  • Developers. Pass more data to tax providers (product, price).
  • Developers. Added product type property to product models (presentation layer).
  • Developers. Moved "HideAdvertisementsOnAdminArea" and "LastNewsTitleAdminArea" settings to "AdminAreaSettings". Moved "DeleteGuestTaskOlderThanMinutes"setting to "CustomerSettings".
  • Developers. Allow to extend GetListOfCampaignAllowedTokens and GetListOfAllowedTokens methods (events).
  • KendoUI grids. Do not display javascript errors when we make some redirections (before data loading is finished).
  • Include nopCommerce version into language pack when exporting locales.
  • Allow HTML for product attribute default value and file extensions (textbox attribute type). We should not throw exceptions.
  • More consistent source code. Replaced all "$(function()" with "$(document).ready(function ()".
  • Fixed all compilation warnings.
  • A lot of other source code refactoring.

Bugs

  • PayPal Standard and Direct. We should ensure that TLS 1.2 is used.
  • UPS shipping plugin. We should ensure that TLS 1.2 is used.
  • Store closed page should be disallowed in robots.txt file.
  • Fixed some RSS validation issues.
  • PayPal plugins. We should validate order totals in IPN handler.
  • Redis caching didn't work when you have bestsellers displayed on the home page (disabled by default).
  • Avoid "ProductDetails_AttributeChange not found " errors in log (caused by search engine crawling).
  • We should save current tab when some entity is created (the same as we do when we edit existing ones).
  • Product attribute page. "Save" button click should redirect to list page.
  • "Customers who bought this item also bought" functionality ignored "Visible individually" product property.
  • Product details page. We should display "out of stock" message (product details page) when a selected attribute combination doesn't exist and "Allow only existing attribute combinations" option is enabled.
  • Edit shopping cart item functionality did not preset correct picture (associated to attribute values). The same issue was with preselected attribute values (with associated pictures). Now we load associated pictures using AJAX (the same way as it's done for dynamic pricing)
  • We should display "start date" as "created on" date for blog posts and news (if specified). We should also sort blog posts and news by "start date" (if specified).
  • Fixed an issue with carts that don't require shipping but "tax based on" setting is set to "shipping address". We should clear "shipping address" when shipping is not required.
  • Properly process conditional product attributes when using "Generate all combinations" functionality.
  • Do not throw exception (Entity Framework) when a store owner entered too long values into fields (maximum length validation).
  • Installation. Sometimes we cannot use newly created database ("Create new database" option).
  • Do not throw exception when we don't have any shipping plugins configured.
  • Wrong variable name has been used in _ProductAttributes.cshtml file (conditional attributes).
  • Sample data. Vendors didn’t have "search engine friendly page name" specified.
  • Product tags count is now properly calculated in multistore environment in SQL Compact.
  • UIHint["Download"] could not be used inside plugins.
  • VAT status and note weren't displayed on the customer info and registration pages
  • Image resize rounding issue fixed (white line visible sometimes).
  • Fixed styling issue on confirm order page (onepage checkout).
  • Fixed an issue when sharing products with short description with HTML tags on Twitter and Facebook.
  • Forum styling issue fixed. Signature wasn't displayed well
  • Fixed _RentalInfo.cshtml file mobile issue
  • Fixed an issue with "Search engine friendly page name" (with inactive seo names).
  • The Affiliate Edit page had an error with its validation system. If the user leaved one of the input fields empty, it thrown an error.
  • Microdata for Price. You could receive a warning in cultures other "enUS".
Release Notes - nopCommerce 3.70 (December 8, 2015)

Highlight features and changes

  • Full support for web farms and Windows Azure (multiple instances).
  • Conditional product attributes.
  • ACL (access control list) for topics.
  • Allow users to apply for vendor account in public store.
  • Allow a store owner to add notes to "Vendor" record. For example, this functionality can be used to record vendor payouts so that you always have you bookkeeping organized.
  • Added a setting indicating customers should see "discontinued" message when visiting details pages of unpublished products. For example, "Sorry - this product is no longer available" or "We're sorry but this product has been discontinued."
  • Significant performance and security enhancements.

Improvements

  • Allow a store owner to apply discounts to a category including subcategories. Please have a look at the new "Apply to subcategories" property. This way he should not go into hundreds of categories and apply the discount to each one.
  • Now a store owner can mark products as "New". This way we can manage list of products displayed on the "New products" page.
  • Security. Prevent XSRF attacks in public store (and all the rest methods in admin area).
  • Return request reasons and actions are now localizable.
  • A new catalog setting to view unpublished products (enabled by default). This way SEO won't be affected by search crawlers when a product is temporary unpublished.
  • Authorize.NET plugin. Updated URLs according to the latest changes (Akamai). It should be done by all store owners till June 2016.
  • Now customers can see a user-friendly message why entered discount coupon code cannot be applied. For example, "Sorry, this offer is expired".
  • Allow to search orders by customer last name (billing address).
  • Reward points. New setting indicating whether to accumulate all reward points in one balance for all stores so they can be used in any store. Otherwise, each store has its own rewards points and they can only be used in that store. WARNING: not recommended to change in production environment with several stores already created.
  • Allow a store owner to specify "Minimum Age" setting (available when "Date of Birth" field is enabled).
  • Support "Display stock availability" and "Display stock quantity" product properties with "Manage inventory method" set to "Track inventory by product attributes".
  • Added a refund message template (sent to a store owner). Disabled by default.
  • More user-friendly terms. Renamed "Grouped product" product type to "Grouped (product with variants) ". The same is about the appropriate product template. Renamed "Associated products" tab to "Associated products (variants)". We could remove "Grouped" or "Associated" terms at all. But let's keep it for consistency because a lot of existing store owners already used to them.
  • Logo support for vendors.
  • Allow a store owner to customize robots.txt file without customization. Now it could be done in one of the following ways. Create and add robots.additions.txt to the root of the site. In this case we'll use it instead of the default one generated by the system ("RobotsTextFile" method of "CommonController"). Or you can add robots.additions.txt to the root of the site. Its content will be appended to the generated robots.txt file.
  • Allow a store owner to specify default language per store.
  • Allow a store owner to manage newsletter subscription on the customer details page.
  • Added a setting indicating whether "Minimum order sub-total amount" should be calculated including or excluding tax.
  • Add a setting ('catalogsettings.publishbackproductwhencancellingorders') indicating whether "Published" or "Disable buy button" flags should be updated after order cancellation or deletion (if required).
  • Added 'storeinformationsettings.hidepoweredbynopCommerce' setting that allows to hide "powered by nopCommerce" text in the footer without any customization.
  • Allow a store owner to view back in stock subscriptions per customer (in admin area).
  • "This product has a minimum quantity of N" notification on the product details page (if configured).
  • Better HTTPS support for hosting companies that use a load balancer. Now you can open web.config file and uncomment "Use_HTTP_CLUSTER_HTTPS" or “Use_HTTP_X_FORWARDED_PROTO” setting to support distinct hosting companies.
  • We should save checkout attributes when clicking "Update cart" button on the shopping cart page.
  • "Re-order" functionality should pre-set checkout attributes as well.
  • Bundling and minification now can be used in web farms on Windows Azure.
  • Dropped 'catalogsettings.enabledynamicpriceupdate' setting. Added a new one instead of it - 'catalogsettings.ajaxprocessattributechange'.
  • Added "required" hint to several pages (contact us, contact vendor, email a friend, new product review).
  • Newsletter radio buttons were broken in IE on mobile resolutions.
  • Checkout attributes with "color squares" type were not properly displayed.
  • Allow a store owner to filter bestsellers by store.
  • Now we preset price when adding a product to an existing order in admin area.
  • Bestsellers report. Allow a store owner to filter by vendors.
  • Allow a store owner to override gift card amount. If not specified, then product price will be used (default behavior).
  • Allow a store owner to choose what customer roles can access a closed store (moved to ACL permissions). Previously we could grant such access to administrators only.
  • Added "Display tax/shipping info (shopping cart page)" setting.
  • Allow a store owner to delete selected product reviews.
  • Bulk deletion of blog and news comments.
  • We should ensure that start date should be the future date for rental products.
  • We should not popup EU cookie law message after logout. Otherwise, the user will have to click it again. And thus next visitor will not click it. So violation for that cookie law.
  • Vendor details page (admin area). Associated customer emails should link to appropriate customer details pages.
  • Display a warning to a customer when items from wishlist could not be moved to the shopping cart.
  • Added warehouses, vendors, affiliates, news and blog comments to sample data
  • Return request list page (admin area). Added "Created on" column.
  • Order list page (admin area). Search by order number and press enter support.
  • Australia Post. Added a setting to hide delivery information.
  • Added validation to "Edit return request" page. "Reason for return" or "Requested action" fields should not be empty.
  • Added support for "%Shipment.TrackingNumberURL%" message token.
  • Blog posts. When clicking "Comments" link we should redirect a customer to to the comments section. Also added #comments achor element to the "News" details page.
  • Security. Disable HTTP headers telling what version of ASP.NET your site is hosted on and even what version of MVC you are using.
  • Authorize.NET plugin. Eliminate credit card type dropdown. Anyway we don't use it.
  • Significant performance optimization of caching implementation (for high-loaded sites). We should not use "lock" in CachingExtensions ("get" method).
  • Performance optimization. We should not load ALL reward point records to find the current balance (load only the last one).
  • Performance optimization. There's no need to load specification attributes when creating a new product.
  • Performance optimization of discounts applied to categories and manufacturers (caching).
  • Added new widget zones - left_side_column_blog_before, left_side_column_after_blog_archive, left_side_column_blog_after, bloglist_page_before_post, bloglist_page_before_post_body, bloglist_page_after_post_body, bloglist_page_after_post, blogpost_page_top, blogpost_page_bottom.
  • Order list page (admin area). Renamed "Edit" link to "View".
  • Included "id" as sorting for specification attributes.
  • Added "Manage plugins" permissions to "Third-party plugins" menu in admin area.
  • Fixed "_AdminLayout.cshtml" issues when using in a plugin that is running in a different area than "Admin".
  • Developers. Added "Owin" libraries to Nop.Web project. This way third-party developers can use it.
  • Developers. Added "Description" property to "CategoryModel.SubCategoryModel " class.
  • Performance optimization. Product details page (admin area) was slow when we had thousands of specification attributes. Now we cache them
  • Performance optimization. Load all product reviews at once in admin area when using "approve/disapprove/delete selected".
  • Performance optimization of "ProductLoadAllPaged" stored procedure (when filtering by specification attributes).
  • Performance optimization. Cache filterable spefication attributes on category pages.
  • Performance optimization. Cache discount requirements. There's no need to load them for each HTTP request for each discount.
  • Performance. Cache list of available return request actions and reasons.
  • Performance optimization of "ValidateDiscount" method (when we really have gift carts in the cart).
  • Updated third-party libraries to the latest version.
  • Localized some hard-coded locales (in admin area grids).
  • Refactoring of "Update currency exchange rates" task. Previously update period could not be set less than one hour.
  • We should round prices using "RoundingHelper.RoundPrice" method that supports rounding based on a currency.
  • Developers. Added CustomerRegisteredEvent and CustomerLoggedin events.
  • Developers. PluginManager. Povide name of plugin with exception message. Some plugins share the same dependencies and the current exception information doesn't include which plugin failed to load within the PluginManager. Including the plugin name with the exception message would cut down on troubleshooting time a lot.
  • Developers. Pass order ID as additional data parameter to checkout_completed_top and checkout_completed_bottom widgets.
  • Developers. web.config files had wrong "System.Web.Mvc" version specified.
  • Developers. Minor change to RegisterDependencies method of NopEngine. This way we can access ContainerManager (and Resolve method) in IDependencyRegistrar of plugins.
  • Developers. Refactoring of "StoreClosedAttribute". Now developers can specify certain methods whic should be ignored by using overridden contructor.
  • Developers. Add decimal PriceValue to ProductOverviewModel.ProductPriceModel (for easier designing price display in ProductBox).
  • Developers. Removed "PriceWithDiscountValue" property of "ProductDetailsModel.ProductPriceModel" class. Let's use "PriceValue".
  • Developers. Do not hardcode "EuCookieLaw.Accepted" customer attribute key. It should be stored in SystemCustomerAttributeNames class.
  • Developers. Refactoring PublicStoreAllowNavigationAttribute. Now develoeprs can make a certain action method accessible without customization of this class.
  • Developers. Removed "IsCustomerGuest" property from some forum models.
  • Developers. DatePickerDropDowns HTML helper now have "htmlAttributes" parameter. This way developers can customize it (e.g. add "class" attribute).
  • Developers. We should have separate locales for "Search" link and button.
  • Developers. Added "area" parameter to "Html.Widget()" extension method.
  • Refactoring of admin area pages with tabs. It alos fixed an issue on discount details page (with tabs displayed/hidden based on discoutn type).
  • A lot of other source code refactoring.

Bugs

  • Moneyconverter services discontinued its services. All exchange rates were set to 1 if you have it configured for autoupdate. We replaced it with a new plugin - ECB.
  • Robots.txt and sitemap.xml files should be accessible when a store is closed.
  • Redeemed reward points were not restored when the order is canceled or deleted.
  • Facebook authentication plugin. Email wasn't returned when using the latest version of Facebook API.
  • Customers could not change language/currency/tax when navigation was disabled.
  • Fixed an issue with picture duplications when importing products.
  • We used invalid Schema for product aggregate rating hen there were no any ratings.
  • We should update stock levels when editing order details in admin area.
  • Fixed an issue with "File upload" checkout attribute. When the customer uploaded a file then proceeded through checkout (but didn't finish) and went back to the shopping cart, the "uploaded file" was no longer there. The same issue was with editing of existing shopping cart item with "File upload" product attributes.
  • We should sort countries by localized names when they have the same display order.
  • We should sort states by localized names when they have the same display order.
  • Custom address attributes were not (re)filled when form validation gone wrong.
  • "OrderRefunded.CustomerNotification" message template was accidently removed in version 3.60 before release. Fixed.
  • We should delete previously used "Downloads" or "Sample Downloads" when uploading a new ones for a product.
  • Display order of topics was ignored in multi-store environment.
  • Shipments could not be deleted in some cases.
  • Australia Post plugin could not return shipping methods for some countries.
  • We should validate whether a country is published when choosing an existing address during checkout.
  • Pasted discount or gift card codes with surrounding whitespace didn't work.
  • Locale resource typo fixed. The title of the modal window for importing products says "Import from CSV" while in reality it will only accept Excel files.
  • Abbreviation for "Yukon" (Canada) should be "YT".
  • We validated wrong permission when changing password of email accounts.
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.

Improvements

  • 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 Authorize.net 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 https://www.nopcommerce.com/boards/topic/17641/help-nopcommerce-team-to-localize-the-installation-page-46-resources
  • 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.

Bugs

  • 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)

Highlight features and changes

  • Rental products support added.
  • Support for new tax rules for Europe Union from 2015.
  • Better warehouse support and inventory control. Now a single product can exist in multiple warehouses.
  • Allow a store owner to define custom address attributes (similar to "Custom customer attributes").
  • Allow a store owner to see all existing extensions and themes in admin area (from nopCommerce official site).
  • Now specification attributes support several types (option, custom text, HTML text, hyperlink).

Improvements

  • Allow a store owner to specify "pick up in store" fee.
  • Allow a store owner to find not shipped shipments.
  • Added "Order paid" message template sent to a customer and a vendor (disabled by default). Previously we had this template available only for store owners.
  • Search engine optimization. Added more URLs to sitemaps.
  • Message templates. Allow a store owner to attach static files to any template.
  • Payment icons should be clickable in multi-step checkout.
  • Shopping cart page. Display how much reward points will be earned (this option can be disabled in admin area).
  • Order list page. Allow a store owner to filter orders by product name.
  • Display "Download" link for downloadable product on the order details page. Previously it was displayed only or the separate "Downloadable products" page in "My account" section.
  • Allow a store owner to decide whether "Country" or "State" dropdownlist (customer form field) should be required.
  • Allow a store owner to enter the own company info.
  • Allow a store owner to specify "Notify Admin for Quantity below" for product attribute combinations.
  • Addresses. Added "Select state" item to "state" dropdownlist.
  • Ensure that topic pages are not SSL secured. Otherwise, search engines can think that content is duplicated.
  • Updated PayPal API to the latest version.
  • Allow a store owner to send campaigns only for subscribers of a chosen store.
  • Display successful notifications when saving plugins the same way as on other admin area pages.
  • Allow a store owner to search vendors by name.
  • Interactive dashboard reports in admin area. Ability to click rows in the "Incomplete orders" dashboard report.
  • Allow a store owner to add topics to the top menu in admin area.
  • Now customer reports support paging (previously it was limited to "top 20").
  • Display payment and shipping statuses on the order details page.
  • Allow a store owner to export/import states. Previously store owners had to add states manually. Please contribute a list of states for your country. Please do it at https://www.nopcommerce.com/boards/topic/30664/massive-import-of-stateprovinces-of-countries-help-us-with-your-countrys-data
  • Published checkbox should be ticked by default when adding a new state.
  • Do not allow discounts applied to order subtotal or total when a customer has gift cards in the cart. Otherwise, this customer can purchase gift cards with discount and get more than paid ("free money").
  • Allow a store owner to attach PDF invoices to "order paid" emails.
  • Added "admin comment" field to affiliates. This way a store owner can enter additional info (e.g. payment method, tax info, etc).
  • Added "Admin comment" field to warehouses.
  • Discounts. Allow a store owner to specify maximum product quantity which could be discounted. For example, you can have two products (the same) in the cart but only one of them will be discounted.
  • Updated USPS plugin according to the latest API changes of USPS Web Tools (September 7th 2014).
  • Added "Ship separately" option for products. Enable it to mark a product as being able to be shipped by itself in a single box (separate shipment). This way shipping rates are calculated separately for this product regardless of what other products are also in the cart. Please note that if you have several quantities of this product in the cart, then all of them will be packed and shipped in a single box.
  • Allow a store owner to filter plugins by mode (all, installed only, not installed only).
  • Allow a store owner to filter plugins by group.
  • Product details page. More user-friendly way to enter "Require other products" IDs.
  • Discount requirement rules . More user-friendly way to enter "Required products" IDs.
  • Added "Display tax/shipping info (wishlist)" and "Display tax/shipping info (order details page)" settings. These settings are required in German market.
  • Removed "Cash on delivery" and "OpenID authentication" plugins from solution. It'll be available for download in the official extensions directory since version 3.50.
  • Deleted "commonsettings.sitemapincludetopics" setting. Anyway each topic already has "Include in sitemap" property.
  • Localization support added to "Google Shopping" plugin.
  • Added "adminareasettings.richeditorallowjavascript" setting indicating whether rich editor should support javascript (disabled by default).
  • Hide "Associated products" tab for "Simple" products.
  • Display CustomValues on order details page. It can be helpful for developers of payment plugins.
  • Added Bangla (Bangladesh) language pack for the installation page.
  • Allow a store owner to specify a list of errors (phrases) to be ignored when logging ('commonsettings.ignorelogwordlist' setting).
  • Ensure that we always have at least one published currency.
  • Moved "mediasettings.multiplethumbdirectories" setting to admin area UI.
  • Added a setting ("Media.DefaultImageDirectoryPath") with directory path for default images. This way theme vendors can override a default image without touching the default one.
  • "Purchase Order", "Check / Money Order" payment methods. Added "Shippable product required" setting.
  • "Check / Money Order" payment method. Localization of description text. Please note that it's not supported in multi-store configuration now (you should have only one store configured).
  • Wrap the number of messages in the inbox in the HeaderLinks.cshtml view to be similar to the wishlist count and shopping cart count.
  • Search engines should not be able to add items to cart.
  • Google shopping plugin. Moved "FroogleSettings.PassShippingInfo" setting to UI.
  • It’s better to display in-store pickup option before shipping addresses (during checkout).
  • Updated all third-party libraries to the latest version.
  • Updated a file with user agent strings.
  • Added "Product.SKU" and "AttributeCombination.SKU" message template tokens
  • Refactoring UPS and USPS plugins. Do not duplicate code (service names).
  • Added 'CatalogSetting.LoadAllSideCategoryMenuSubcategories' setting indicating whether we should load all subcategories in the left menu with categories. It can be used by third-party theme developers.
  • Now products with "order minimum quantity" could not be added to the cart from catalog pages (in custom themes with "qty" input and a specified value more than 1)
  • Added "IncludeProperties" method to repositories. Now developers can include a list of properties to load with a single SQL request.
  • Performance optimization. Use stored procedure to delete guest customer records.
  • CacheExtensions.Get is now thread safe.
  • Allow store owners to extend HTML Editor (admin area) without customization. Use "Admin.RichEditor.AdditionalSettings" setting
  • Refactoring of CustomerController. Moved a lot of methods to other controllers. Please note that some URLs have been changed.
  • Refactoring. Renamed ProductVariantAttributeCombination, ProductVariantAttribute, ProductVariantAttributeValue entities (tables).
  • Refactoring of ShippingService. Allow developer to request shipping options for shopping cart items with custom quantity. It'll allow us to implement logic when some product is shipped from multiple locations (warehouses).
  • Added support for bulk insert and delete operations in IRepository.
  • Now developers can easily extend core entities without touching core files
  • Added "HidePaymentMethod" method to IPaymentMethod interface. Developers can put any filtering logic into it. For example, hide a payment method if all products in the cart are downloadable.
  • Added a new method to get a table name by entity type (DbContexExtensions.GetTableName). It can be helpful in cases when entity name is not the same as table name.
  • Refactoring of MappingExtensions file. This way "heavy" AutoMapper library can be easily replaced.
  • Developers. Added "order refunded" event.
  • Moved "GetSpecialPrice" method from "PriceCalculationService" to "ProductExtensions".
  • Added "RoundPrice" method to IPriceCalculationService. This way developers can customize the way rounding is done. For example, some currencies (e.g. hungarian forint) use non-standard rules for rounding.
  • Moved import/export of newsletter subscribers to ImportManager/ExportManager. Previously we had this logic in controllers.
  • A lot of other source code refactoring.

Bugs

  • PayPal plugins. Some users could get "Access Denied on Paypal IPN verification" error. We should pass "User-Agent" to PayPal servers.
  • Localized some hard-coded locale resources.
  • Grid double data binding issue fixed in admin area.
  • Do not allow dots in blog post tags. Otherwise, it can cause routing issues.
  • Product availability dates were ignored on some pages (e.g. bestsellers, recently viewed products, cross-sell products, etc).
  • PayPal Direct plugin did not pass "Address 2" (shipping address).
  • Canada Post, FedEx, UPS plugins. We should consider dimensions (width, length, height) of associated products when requesting rates.
  • AppendHeadCustomParts method could throw a formatting exception in some rare cases.
  • Checkout progress block should not be visible on the shopping cart page when customers don't have any items in the cart and when one-page checkout is enabled.
  • Campaign editor did not support "DOCTYPE", "Body" and "style" HTML elements.
  • We should not display a warning when someone tries to add a product with "minimum order quantity" more than to the shopping cart. Let's redirect such customers to the product details page which has "quantity" field.
  • "Disabled" attribute was not properly rendered for read-only checkbox attributes.
  • Login page. "Please enter a valid email address" should be localizable.
  • We should hide "Back" button for the first checkout step ("Shipping address") when "Billing address" step is disabled.
  • "AttachmentFilePath" property of "QueuedEmail" got empty when we edited an existing queued email.
  • Low stock report should not include grouped products.
  • USPS plugin. Sometimes we passed wrong package size (REGULAR or LARGE).
  • Canonical URL for product tags could be generated wrong way in some cases (e.g. when a product tag had a space).
  • Fancybox caused warnings in CSS bundling
  • We should not ignore case when looking for a product with the same textbox attribute.
  • We should not apply additional shipping charge for in-store pickup.
  • Google Shopping (Froogle) plugin did not properly loaded categories in multi-store environment (for categories limited to distinct stores).
Release Notes - nopCommerce 3.40 (July 17, 2014)

No major features have been introduced with this release as our development efforts were focused on performance optimization and fixing bugs. Performance and memory usage optimizations are really very significant. Please find more info below:

Highlight features and changes

  • Performance optimization. Really a lot of changes.
  • Added full support for in-store pickup. This way a customer should not enter shipping address during checkout. It can be enabled in admin area (shipping settings).
  • Dropped jQuery mobile version support. We already have responsive design available out of the box (since 3.30). Maintenance of both approaches is quite complete. It can also improve performance (less IO, output caching - to be done, etc). It'll simplify development and customization (only one view change instead of two, etc). Responsive design becomes much more popular today. It's just more user-friendly.

Improvements

  • Added back picture uploading and file manager functionality to TinyMCE (was temporary removed in 3.30).
  • Country report added (includes number of orders and order totals).
  • Search engine optimization. Added an option indicating whether product META descriptions should be automatically generated (if not specified on the product details page) based on product short description.
  • Search engine optimization. Added more links to sitemap page.
  • Search engine optimization. "/sitemapseo" URL was renamed to "sitemap.xml".
  • Search engine optimization. Added support for Twitter and Open Graph tags (product details page).
  • Multi-store support for newsletter subscriptions.
  • Allow a store owner to set default currency for each language.
  • New "Read-only checkboxes" (list) attribute control type. This type will be ideal for building bundles that cannot be edited.
  • Add RTL (right-to-left) support for PDF documents.
  • Responsive design: added the ability to click anywhere in the mobile menu item to go to the category, and not just on the text.
  • Display responsive menu even without categories.
  • Search page. Allow customers to choose a view mode, page size, sort.
  • Allow a store owner to choose a page size on each admin page that has a grid.
  • Allow a store owner to specify "Admin comment" for shipments (for internal use).
  • Allow a store owner to decide whether newsletter checkbox should be ticked/unticked on the registration page. For example, in Germany it's mandatory to disable the newsletter by default during registration.
  • Shipments. Display warehouse name on appropriate pages - "add shipment", "shipment list", "shipment details" (admin area). This way a store owner can see where products are located before he adds them to a shipment. In case if he wants to create a shipment which should be shipped from one warehouse.
  • Order list page. Allow a store owner to filter orders by warehouse (load orders with products from a specified warehouse). This way a store owner will be able to easily find a list of products to be shipped from a certain warehouse.
  • Shipment list page. Allow a store owner to filter shipments by warehouse (load shipments with products from a specified warehouse). This way a store owner will be able to easily find a list of products to be shipped from a certain warehouse.
  • Product and checkout attributes. Allow a store owner to specify default values for textboxes.
  • Allow a store owner to search gift cards by recipient's name.
  • Added a setting indicating whether a store owner can see tracking info (events) on the shipment details page in admin area based on an entered tracking code. This shipping setting is disabled by default.
  • Allow a store owner to specify display order of products displayed on the home page.
  • Canada Post plugin now also allows customers to see tracking info with one click (on the Canada Post site).
  • Search engine optimization. Added "alt" attribute to the header logo.
  • Allow a store owner to see tracking info URL (link).
  • Disable guest redirection to the login page for "back in stock subscription".
  • Added "Starts with" grid filtering options to "locale resources" and "settings" pages.
  • "GetCurrentIpAddress" method. The X-Forwarded-For (XFF) HTTP header field is a de facto standard for identifying the originating IP address of a client connecting to a web server through an HTTP proxy or load balancer. But in some cases server use other HTTP header. in these cases an administrator can specify a custom Forwarded HTTP header (just add a "ForwardedHTTPheader" appconfig settings).
  • Better and faster GIF file processing. Version 3.30 had bad thumbnail quality for such files.
  • Added "ReplyTo" property to "QueuedEmail". Now we use it on the contacts page. When a user sends an email via the contact form, it is handy to populate the reply-to field with the user's email so a direct reply can be initiated.
  • Installation page. Automatically choose a language based on the current browser culture.
  • Moving away from outdated browserCaps.config file. Now we use http://user-agent-string.info/ to detect search engine crawlers and browser settings.
  • Checkout workflow. Made payment icons clickable (usability).
  • Search engine optimization. We should make 301 (permanent) redirection in LanguageSeoCodeAttribute, NopHttpsRequirementAttribute, and WwwRequirementAttribute.
  • Import from Excel issue fixed. We should not require apostrophe before numeric fields in Excel files.
  • Order details page. Order notes tab. More user-friendly file upload block.
  • TinyMCE editor. Allow store owners to specify font and font size.
  • Updated all third-party libraries to the latest version.
  • Allow customers to free search (min and max product prices set to 0). Previously "ProductLoadAllPaged" stored procedure ignored 0 parameters.
  • Renamed "Google Product Search" to "Google Shopping".
  • Made it more visible to registered account to link external authentication records.
  • Allow customers to detach external authentication records.
  • PayPal Standard plugin. Added "address override" setting. For people who already have PayPal accounts and whom you already prompted for a shipping address before they choose to pay with PayPal, you can use the entered address instead of the address the person has stored with PayPal.
  • Do not use "WWW prefix requirement" setting when running localhost.
  • Performance optimization. Set "runAllManagedModulesForAllRequests" to "false". We should not process static resources. If you're using IIS 7, then ensure that it has SP1 installed. Just a reminder that IIS application pool should be set to "Integrated".
  • EU cookie law 'learn more' link should not open in a new window.
  • Added "Application started" information log. It can understand when the application was started or restarted.
  • Google Shopping plugin. Include "additional_image_link" tag for additional images.
  • Registration page. Now clicking "read" privacy policy opens a pop-up window.
  • Added validation for some discount requirement rule plugins. Previously some inputs could break the application.
  • Performance optimization. Do not load "UrlRecord" for each page load of product, category, manufacturer, etc.
  • Performance optimization. Cache a value indicating whether a customer has some products in the shopping cart. If this property is set to false, then we do not need to load "ShoppingCartItems" navigation property for each page load.
  • Performance optimization. Cache a value indicating whether product has some product attributes. It reduces number of SQL request for product details page without attributes.
  • Performance optimization. Cache widget models. This way we do not load and instanciate widgets for each HTTP request.
  • Performance optimization. Added a setting indicating whether calculated product prices should be cached (disabled by default). Highly recommended to enable if acceptable.
  • Performance optimization. We should dispose DI/IoC scope once a schedule task is completed.
  • Performance optimization. Hundreds of extra redundant calls have been made in LocalizedRoute.
  • Performance optimization. Do not render widget view when model is empty.
  • Performance optimization. Less I/O when looking for views. There's no need to support ".vbhtml" extension.
  • Performance optimization. Added light version of "SearchProducts" method to load associated products - "GetAssociatedProducts".
  • Performance optimization. Faster price calculation logic. Some methods were invoked too many times.
  • Performance optimization. Register highly used action methods as routes.
  • Performance optimization. Memory leaks. We should dispose all used resources at the end of each HTTP request.
  • Performance optimization. There's no need to calculate tax rates for 0 values (attributes without price adjustments, old prices set to 0, etc).
  • Performance optimization. Cache home page categories and subcategories.
  • Performance optimization. Reordered the routes so the most used ones are on top.
  • Performance optimization. Cache static content for 24 hours.
  • Performance optimization for local development. We should not use bundling and minification functionality when debugging (anyway it won't work).
  • Performance optimization. Faster "products also purchased" report.
  • Performance optimization. Do not return views if we already know that there's nothing to display.
  • Performance optimization. Cache related products in the presentation layer.
  • Performance optimization. Do not load all "ActivityLogType" records for each request.
  • Performance optimization. We disable bundling out of the box because it requires a lot of server resources.
  • Performance optimization. Added a new "SupportPreviousNopcommerceVersions" setting (web.config file). Set the setting below to "false" if you did not upgrade from one of the previous versions. It can slightly improve performance.
  • Performance optimization. Added one more database index to [Product_SpecificationAttribute_Mapping] table.
  • Performance optimization. There's no need to enable MARS (Multiple Active Result Sets). It just adds additional overhead. NOTE for existing store owners. Open \App_Data\Settings.txt file and remove "MultipleActiveResultSets=True" from your connection string.
  • Performance optimization. Use "no tracking" to load settings and locale resources.
  • Performance optimization. We should not parse product attributes twice when a customer chooses new attributes.
  • Performance optimization. "Google Product Search" plugin. Load all product records using one SQL request when generating the feed (previous we number of requests were the same as number of products).
  • Performance optimization. Faster "Show the number of distinct products besides each category" setting
  • Developers. Now we do not embedded views for plugins. This way they can be editted without recompilation. Note that now all views (cshtml files) and web.config file should have "Build action" set to "Content" and "Copy to output directory" set to "Copy if newer". Previously we returned embedded view path. Now we return physical view paths (e.g. return View("~/Plugins/DiscountRules.HadSpentAmount/Views/DiscountRulesHadSpentAmount/Configure.cshtml")).
  • Performance optimization. Cache primary store currency in admin area.
  • Performance optimization. Faster application startup (do no search some types in third-party libraries).
  • Performance optimization. Removed very slow overriden "FileExists" method of the "ThemeableVirtualPathProviderViewEngine" class. Let's use the default implementation of "VirtualPathProviderViewEngine".
  • Re-ordered some settings on the catalog settings page (admin area). Move performance related settings to the top.
  • Developers. Now we filter shopping cart items in "LimitPerStore" extension method. This way we can simply (one line change) customize the solution to support shopping cart items shared between stores (multi-store configuration).
  • Developers. Now you should register your custom interfaces in DependencyRegistrar files using "InstancePerLifetimeScope" method (previously we used "InstancePerRequest" or "InstancePerHttpRequest" ones).
  • Developers. Now developers can access "additional data" in widgets. "PublicInfo" method of widgets supports optional "additionalData" parameter. For example, you can get current product ID when implementing a widget for product box ("productbox_add_info" widget zone). Also updated all widget zones with appropriate addional data.
  • Developers. Split CatalogController to two new ones - CatalogController and ProductController.
  • Developers. Moved commonly used code in CatalogController to separate methods.
  • Developers. Autofac. "InstancePerHttpRequest" method is obsolete. Use the new "InstancePerRequest" one.
  • Developers. Added two new widget zones - "productdetails_after_breadcrumb" and "searchbox_before_search_button".
  • Developers. Allow developers to override default CssRewriteUrlTransform for CSS minification.
  • Source code refactoring.

Bugs

  • Facebook shop plugin did not work.
  • "Dynamic price calculation" issues fixed. It did not properly calculate final price when a discount was applied. It also did consider attribute combinations with overridden price specified. It is ignored currency formatting (e.g. comma on thousand separator). A new "Use AJAX to dynamically update prices" catalog settings added (disabled by default) indicating a way how prices are calculated on the produce details page when a customer changes product attributes. It also updates SKU, MPN, GTIN values overridden in attribute combinations. But note that this method can slightly affect performance.
  • If you had a product set up with "Manage inventory method" set to "Don't manage stock" and a product attribute value associated to some other product, then when the item is sold nopCommerce did not correctly adjust the stock level of the associated product.
  • We should not allow products to be added to the cart from catalog pages if it has some (optional) product attributes.
  • We should not allow searching when default text ("Search store") is entered in the header search box.
  • Product importing could duplicate pictures when importing the same file several times.
  • Export selected products or orders did not work when we have a large number of such entities to be exported (limitation of HTTP GET).
  • Search engine optimization. We should update page URL (search engine friendly name) when choosing a new language.
  • Google Shopping plugin. "Default Google category" dropdownlist was not properly filled.
  • MimeType was not properly determined when importing products with pictures.
  • FakeHttpRequest should override and return null for UserLanguages property. Otherwise, it schedule tasks won't work if the setting to automatically detect the user language is enabled.
  • "Resource already exists" error message were not properly displayed when editing locale resources. The same is about several other pages.
  • Topics with the same system name but limited to distinct stores did not properly work in multi-store environment.
  • Keep alive task should not create guest customer records.
  • Admin area. Price adjustment field was displayed twice for product attributes. Locale resource typo fixed.
  • Admin area. Queued email list (grid). Do not return email body. Otherwise, we can get the following error: "Error during serialization or deserialization using the JSON JavaScriptSerializer. The length of the string exceeds the value set on the maxJsonLength property".
  • Log list (grid). Do not return full error text. Otherwise, we can get the following error: "Error during serialization or deserialization using the JSON JavaScriptSerializer. The length of the string exceeds the value set on the maxJsonLength property".
  • When a store owner clicks "requeue" button on the queued email page, then he should be redirected to the new (requeued) queued email page
  • "Products Never Purchased" report. We should exclude grouped products from the report.
  • We should decode full product description when generating PDF catalog.
  • Shipping method appeared twice on the shipment details page.
  • "Google Product Search" plugin did not support "available for order" value for "availability" anymore.
Release Notes - nopCommerce 3.30 (April 3, 2014)

Highlight features and changes

  • Now the default theme is responsive out of the box. This option can be disabled in admin area.
  • Significant performance optimization.
  • Admin area user interface. Moved from outdated Telerik MVC Extensions to KendoUI.
  • Search engine optimization. ID-less topic URL pages.
  • Added an option to automatically give customers a role if they purchase a specific product (when order is paid). It can be used for paid membership.
  • Allow a store owner to create custom customer attributes (similar to product and checkout ones).

Improvements

  • Allow a store owner to disable "Billing address" step during checkout. Billing address will be pre-filled and saved using the default registration data (this option cannot be used with guest checkout enabled). Also ensure that appropriate address fields that cannot be pre-filled are not required (or disabled).
  • Added an option to automatically detect language based on customer browser settings.
  • Added new Google Universal Analytics. The original Google Analytics is also supported.
  • Allow a store owner to configure countries per store.
  • Allow a store owner to configure checkout attributes per store.
  • Extended vendor support (localizable properties, SEO settings, display order).
  • Stock management. Product attribute combinations. Added a new product property indicating whether to allow adding to the cart/wishlist only attribute combinations that exist and have stock greater than zero. In this case you have to create all existing product attribute combinations that you have in stock.
  • Allow a store owner to specify validation rules (minimum and maximum length) for product and checkout attributes with "textbox" and "multiline textbox" attribute types.
  • Allow a store owner to speficy validation rules (maximum file size, allowed file extensions) for product and checkout attributes with "file upload" attribute type.
  • New more user-friendly notification of EU cookie law (Google style) to avoid high bounce rates.
  • German store owners. Added several settings indicating whether we should display shipping and tax information (footer, product boxes, product details page).
  • Performance optimization. Added a setting ('catalogsettings.ignorestorelimitations') indicating whether we should ignore "limit per store" rules configured for entities. Highly recommended to enable this setting if you have only one store or don't use this functionality (signification optimization).
  • Performance optimization. Added a setting ('catalogsettings.ignoreacl') indicating whether we should ignore ACL rules configured for entities. Highly recommended to enable this setting if you don't use this functionality (signification optimization).
  • Performance optimization. Admin area could slow when you have thousands of categories (hundreds of SQL requests have been made; now we make only one SQL request).
  • Performance optimization. Category details page. Load all specification attributes for one SQL request (previously we loaded them separately).
  • Performance optimization. Do not load checkout attributes for each HTTP request just to know whether we have them (used on the mini-shipping cart block). Cache a value indicating whether we have them.
  • Performance optimization. Cache customer language and currency during HTTP request.
  • Performance optimization. Faster installation process.
  • Performance optimization. Cache generated sitemaps.
  • Performance optimization. A lot of other minor optimizations.
  • Allow a store owner to attach files to order notes.
  • Updated all third-party libraries to the latest version.
  • Facebook external authentication plugin now supports multi-store configuration.
  • Added support for "%Customer.FirstName%" and "%Customer.LastName%" message template tokens.
  • UPS plugin. Allow a store owner to choose a packing type (Pack by dimensions, Pack by one item per package, Pack by volume).
  • •Display a list of server variables on the "System info" page.
  • Hide dashboard reports (titles) based on ACL permissions.
  • Added "Clear log" schedule task (disabled by default). It allows a store owner to save some database space.
  • Allow a store owner to delete all queued emails. It allows a store owner to save a lot of database space.
  • Shipment list page. Allow a store owner to mark selected shipments as shipped or delivered without going to their details pages (bulk edit).
  • Product list and low stock report pages (admin area). Display "Price" column only for simple products. Display "Stock qty" column only for simple products with "manage inventory" set to "Track inventory".
  • We should not display EU cookie law confirmation for search engine bots because some pages could be indexed with the EU cookie as description.
  • When a store owner is associating a simple product to a grouped product we would warn him if that simple product already has an associated grouped product (show existing associations while selecting an associated simple product).
  • Shipment details page. Add a link to an appropriate order details page.
  • Added "ShippingSettings.UseCubeRootMethod" setting indicating whether dimensions are calculated based on cube root of volume.
  • Order details page (admin area). We should notify a store owner if he tries to delete a purchased order item and an appropriate gift card record exists.
  • Added a setting indicating whether we should always exclude tax from order subtotal (no matter of selected tax display type).
  • Dynamically update SKU, GTIN, MPN on the product details page for overridden attribute combinations. This setting ('catalogsettings.enabledynamicskumpngtinupdate') is disabled by default and works only with 'catalogsettings.enabledynamicpriceupdate' enabled. A product itself also should have some SKU/MPM/GTIN defined (having overridden values in attribute combinations is not enough).
  • Admin area. Order list page. Display both customer email and full name (previously we displayed only email).
  • The products list page (admin area). There's no need to return full description on this page. It improves performance and ensures that no "Error during serialization or deserialization using the JSON JavaScriptSerializer" excepion is thrown.
  • Categories and manufacturers. Moved page size fields from "SEO" tab to "Info".
  • Nivo Slider. Allow a store owner to add up to 5 pictures.
  • Allow a store owner to use %Order.Product(s)% token in "OrderPlaced.VendorNotification" template (previously it did not filter products by vendor).
  • Replaced slimbox gallery script with the new responsive one - magnific-popup (http://dimsemenov.com/plugins/magnific-popup/).
  • Updated TinyMCE to the latest version (4.0.18). The previously used TinyMCE version had an issue in IE11 (added extra line breaks).
  • Developers. A lot of source code refactoring (C# code, CSS, HTML markup).
  • Developers. Refactoring of PictureService. Added "ResizeTypes" to "CalculateDimensions" method of "PictureService". Now PictureServices uses ImageResizer library for image processing.
  • Developers. Started using .NET 4.5.1 (previously we used .NET 4.5).
  • Developers. Deleted a lot of obsolete and not used classes.
  • Developers. Replaced outdated "fileuploader" with the new "Fine Uploader".
  • Developers. Now each plugin should be derivative from BasePluginController. Each public store controller should be inherited from BasePublicController. Admin area controllers should be inherited from BaseAdminController.
  • Developers. Source code refactoring. Implemented a generic method to register DataContext for plugins with data access.

Bugs

  • Shopping cart page. Checkout button did not work in some cases in IE7 and IE 8.
  • Low stock report did not properly display stock levels for products with "track inventory by product attributes". It also should display the entire attribute combination.
  • Avoid duplicate addresses during multi-step or mobile checkout. We should check whether entered address already exists (like it already was done one for one-page checkout).
  • •When printing PDF invoices in admin area we should use PDF settings of a store in which an order was placed (not the current store).
  • Cart picture (set to a product attribute) was not updated when editing an existing shopping cart item.
  • Store URL could be wrong in some cases in generated order emails in multi-store configuration.
  • "Number of days that the return request is available" setting did not support multi-store configuration.
  • Trim (remove extra spaces) address fields. Otherwise, it can cause issues when using PayPal.
  • "%Store.Email%" message token was always set to email of the default email account. We should use email of the current "Email Account" assigned to a message template.
  • Admin area dashboard page threw an exception when a current user did not have the "Admin area. Manage Products" permission (ACL).
  • Export selected customers. New search should not retain prior selected IDs.
  • Country list page. Publish/unpublish selected countries should retain prior selected IDs.
  • Return request reasons and actions were not properly saved when a store owner had several stores configured and tried to save order settings page (override for some store).
  • Deleted or non-active vendor should not receive "Order placed" email notifications.
  • Customers should not see non-active vendors in the public store.
  • Minor caching issue fixed related to vendor navigation block.
  • A closing tag was missing in the register.mobile.chtml file.
  • We should not log errors about "empty" IP addresses when a store owner opens "online customers" page.
  • HTML markup. Extra space removed on the address list page.
  • "Export orders to Excel" missed a column ("CustomValuesXml").
  • Fixed several typos (locales and source code comments).
  • Do not return information about stores on the plugin list page. It can cause "Error during serialization..." when you have a lot of stores.
Release Notes - nopCommerce 3.20 (December 9, 2013)

Highlight features and changes

  • Performance optimization.
  • "Facebook shop" plugin added. It helps store owners to present their store products on Facebook. Note: currently this plugin has just catalog browsing without product details or shopping cart pages. It was done to reduce source code duplicates. If somebody wants to extend this plugin, then he can easily do it.
  • Warehouse support added. Also allow a store owner to decide whether the system should or should not use warehouse location when requesting shipping rates. This is useful when you ship from multiple warehouses.
  • Allow a store owner to configure and specify delivery dates (for products). Specified delivery date will be displayed on the product details page.
  • Better UI for the default theme. Now it has the top menu with categories and a new footer.
  • Multi-vendors. Front-page navigation support added.

Improvements

  • Updated ASP.NET MVC 4 to ASP.NET MVC 5. IMPORTANT NOTE: this MVC version doesn’t support medium trust anymore (decision of ASP.NET team)!
  • Allow developers to deploy or publish nopCommerce right from Visual Studio. Now we can forget about prepare.bat and deploy.bat files. By the way, prepare.bat and deploy.bat files used in versions 2.X-3.10 don’t work when publishing in Visual Studio 2013 without VS 2012 installed.
  • Source code refactoring.
  • Performance optimization. Added CSS bundling and minification support (contributed by www.nop-templates.com).
  • Performance optimization. Cache picture models on the product details page.
  • Performance optimization. Added an option to load all localized properties (such as localized product properties) in memory on application startup. This way we make only one heavy SQL request on application startup rather a lot of simple requests for each of displayed products.
  • Performance optimization. Added an option to load all slugs (search engine friendly names) in memory on application startup. This way we make only one heavy SQL request on application startup rather a lot of simple requests for each of displayed products.
  • Performance optimization. Now "Tax By Country & State & Zip" tax provider caches records between HTTP requests. Hence tax rate records are loaded only once.
  • Performance optimization. Disable "Store last visited page" setting by default.
  • Usability. Admin area. Remember active tab (when saving some entity).
  • Further performance optimization. Cache pictures uploaded in the "Nivo slider" plugin.
  • Further performance optimization. Faster language and currency loading.
  • Added a setting indicating whether we should bypass "select shipping method" page if we have only one shipping method (disabled by default).
  • Allow a store owner to restrict payment methods by countries.
  • Updated all third-party references to the latest version.
  • Use partial customer address to pre-populate new address in checkout. For example, the first name and last name and usually email are always required to register. We should not require a customer to enter the same fields once more during checkout.
  • Now plugins have logos. Just add a logo.jpg file into your payment plugin root directory. Note: the payment gateway logos are automatically picked up and displayed during checkout. Recommended size: 53x36 px.
  • Allow a store owner to specify information which will be displayed in footer of PDF invoices. For example, company or shop information.
  • Allow a store owner to search bestsellers by category or manufacturer.
  • Allow a store owner to search shipments by shipping address (country, state, or city).
  • Allow a store owner to execute a schedule task on demand.
  • Add settings indicating whether "order placed" or "order completed" emails should contain a PDF invoice attached.
  • Better bundle product support. Allow a store owner to specify the default quantity for product attribute values associated to some products. Previously it was hard-coded to 1. Note: you can also set "ShoppingCartSettings.RenderAssociatedAttributeValueQuantity" setting to "true" in order to display quantity on the shopping cart page or during checkout.
  • Now permission names are localizable (admin area > access control list).
  • Now a store owner can decide on which page "terms of service" checkbox should be displayed: on the shopping cart page or on the order confirmation page.
  • Allow a store owner to specify 0 as a number of manufacturers to display in manufacturers block. Previously it threw an exception.
  • Allow a store owner to manage product/category/manufacturer templates in admin area (admin area > system > templates).
  • "Order paid" email notification added (disabled by default). Some customers place orders but leave them suspended to complete payment at a later time. This email can notify a store owner of such payments.
  • Added RTL (right-to-left) support for admin area. Note: also added a setting ("LocalizationSettings.IgnoreRtlPropertyForAdminArea") indicating whether RTL property should be ignored for admin area (disabled by default).
  • Allow a store owner to manually edit an order status. Previously there were some case when you never could get an order status to become 'Completed' (after partial refund, etc). Now a store owner can set any "order status" he wants.
  • Allow customers to edit attributes of existing shopping cart items. Previously they had to click the product, reconfigure, add to cart, then delete the item they don't want.
  • Allow a store owner to specify cost for product attribute values.
  • Allow a store owner to specify an overridden price for attribute combinations. For example, you can give a discount for bundled products this way.
  • Search engine optimization. Allow a store owner to choose "WWW requirement" mode. For example, requests to http://yourStore.com/ could be automatically be redirected to http://www.yourStore.com/ and vice versa.
  • Added "Pre-order availability start date" product property. It's used only with "pre-order available" option enabled. "Pre-order" button will automatically be changed to "Add to cart" at the moment.
  • Added canonical URLs for product tags.
  • Added "Popular search terms" report.
  • Shipping plugins. Removed all “shipped from” properties. But we should use the origin address entered in admin area > configuration > shipping settings. Now on this page you can also specify origin "City" and origin "Address".
  • Added paging support for product and specification attributes.
  • Reporting. Allow a store owner to see a list of orders in which a particular product was purchased.
  • Multi-store. Allow a store owner to upload a favicon per store. Just upload a favicon-{0}.ico file where {0} is your store ID. If such file doesn't exist, then the default one will be used - favicon.ico
  • Multi-store. Allow a store owner to configure "Tax By Country & State & Zip" plugin per store.
  • Store name is now localizable.
  • Display "Free shipping" icon on the product details page. It can be disabled by editing "catalogsettings.showfreeshippingnotification" setting.
  • Generate random encryption private key on install.
  • Allow a store owner to edit an order shipping method.
  • Do not hard-code brackets "(some-text)". Moved all of them to resources: "({0})".
  • Reporting. Display shipping total on the order list page (totals).
  • Allow a store owner to bulk publish/unpublish countries.
  • Allow a store owner to generate PDF invoices in batch.
  • Added "check/uncheck all" functionality to ACL (access control list) page.
  • "Copy product" functionality now also copies associated products.
  • A store owner now will see a warning in admin area if a custom machine key is not specified in web.config
  • Added implementation for Refund, PartialRefund, and Void for Authorize.NET plugin.
  • Authorize.NET plugin. Pass a full order GUID in "x_description" variable because "x_invoice_num" is limited only to 20 chars.
  • Added support for the "Enter" button press on the product details page.
  • When detecting a user IP address we should also consider "X-Forwarded-For" HTTP header (used with proxies and load balancers).
  • Admin area. Now a store owner can see a theme "Preview" picture. Note for theme developers. Now you should supply your themes with a preview file which is specified in the \Themes\YoutThemeName\theme.config file.
  • Add Assume “VAT always valid” tax setting. If enabled no validity check is made when a customer fills out the EU VAT field in their profile: it is automatically assumed valid and will appear on future orders.
  • Forum topic details page. Moved "manage" into "topic header". This is because if a topic name gets too long it may cause some design issues with the "manage" icons.
  • Added a separate locale resources for image titles/alt on the product details page. There's no need to display something like "Show details for product..."
  • Admin area. Now a product details and blog details pages have a user-friendly autocomplete " tags" input.
  • When importing products using Excel file we should validate whether specified picture already exists from a product. Otherwise, we can get several duplicated pictures for the same product.
  • Renamed the "Facebook" plugin name to "Facebook authentication", and "OpenID" to "OpenID authentication".
  • We should set a current store URL (not http://www.yourStore.com/) for "Store" entity when installing nopCommerce.
  • Moved "ordersettings.onepagecheckoutdisplayordertotalsonpaymentinfotab" setting to UI (admin area).
  • Admin area > discount details page. Display order ID on the discount usage history tab.
  • Use language SEO code in sitemap generator.
  • Message queue page (admin area). Display "to" column. Also re-ordered some other columns.
  • Warnings page (admin area). Display a warning if no shipping rate computation methods enabled.
  • PayPal Standard. Added a new setting indicating a customer should be redirected to the order details page when he clicks "return to store" link on PayPal site WITHOUT completing a payment. And on this order details page he can always click "Complete payment" and try one more time.
  • Discount list page (admin area). Display only one of the specified values ("discount percentage" or "discount" amount) based on a "Use percentage" property.
  • Remove the "Google Checkout" plugin from the solution (retired on November 20, 2013).
  • Added a setting ("CommonSettings.RenderXuaCompatible") indicating whether we should render "X-UA-Compatible" tag (disabled by default). It's useful for users who experience issues with IE browser compatibility mode. Then you can also edit its value by editing the "CommonSettings.XuaCompatibleValue" setting.
  • Added several more chars to "ConvertNonWesternChars" method.
  • Renamed "complete payment" button to "retry payment".
  • Some HTML enhancements
  • Developers. Removed some unused fields in the CatalogController.
  • Developers. Extended the payment method plugin interface ("IPaymentMethod") with a new property ("SkipPaymentInfo") indicating whether a payment information page should be skipped.
  • Developers. Allow developers to add any custom data to the HTML tag. For example, now you can open any cshhtml file and add the following code: Html.AddHeadCustomParts("");
  • Developers. Added "virtual" to some methods.
  • Developers. Added a new "CustomUrlRecordEntityNameRequested" event. It allows developers to insert custom "cases" into GenericPathRoute. Hence seo-friendly-names could be used in plugins. More info: https://www.nopcommerce.com/boards/topic/25879/genericurlrouteprovider-form-a-plugin.
  • Developers. Added ShipmentSentEvent and ShipmentDeliveredEvent events.
  • Developers. Allow developers to specify a custom filepath to settings.txt file (DataSettingsManager.LoadSettings).
  • Developers. Extended "ProductDetailsModel" class with two new properties: "IsShipEnabled" and "IsFreeShipping".
  • Developers. Persist CustomValues of the ProcessPaymentRequest class in the "Order" table ("CustomValuesXml" property). You can deserialize values the following way: order.DeserializeCustomValues().

Bugs

  • Tax rates were not properly calculated when we had "entered prices include TAX" enabled and customers were tax exempt.
  • Bundled products. Customer could purchase when associated products (part of a bundle) stock was not enough (we previously always validated "1" quantity).
  • Email & username required messages on customer info page were not localized.
  • PayPal Direct could cause some issue when testing in sandbox mode on localhost. You could get 10747 error.
  • TinyMCE did not fully supported IE 11 (HTML source code pop-up editor did not work). Fixed by updating to the latest 3.X version (3.5.10).
  • Schedule tasks engine issue fixed. Autofac generated distinct ILifetimeScope instances for one task. It caused issues for some developers.
  • Reporting issue. We should reduce shipping total from the profit report.
  • Tier prices did not work when buying a product with different product attributes. For example, you could have several shopping cart items of the same products. In this case tier prices did not work. Now you can set 'shoppingcartsettings.grouptierpricesfordistinctshoppingcartitems' setting to 'true' in order to enable the new logic.
  • Country field was not saved on the UPS configuration page.
  • Mapping records (AclRecord and StoreMapping tables) should be also deleted when deleting a store or a customer role.
  • reCaptcha was deformed on the default mobile theme.
  • Vendors should not be able to edit "Show on homepage" product property (server-side validation added).
  • Scroll bar should not be displayed for some pop-up windows in admin area.
  • Disabled "autocomplete" for "Password" textbox on the customer details page (admin area).
  • Ensure that a non-admin user cannot impersonate as an administrator.
  • "Email a friend" message template should use localized product values.
  • "Copy product" functionality should also copy a custom value of specification attributes.
  • "AvailableForPreOrder" product property was not copied when using "Copy product" functionality and when importing/exporting.
  • Ensure that a generated "search engine friendly name" does not exceed some length. Although a store owner can always manually edit "seo name" and such product names are quite rare, it's better to don't allow so long automatically generated names. This way customers won't get the following error: "the fully qualified file name must be less than 260 characters".
  • "ProductId" property of "DownloadableProductsModel" contained the order item ID and not the product ID (although this property even was not used later).
  • Users could not change language when a store was closed.
  • If you had several gift cards applied and tried to remove the last one (on the shopping cart page), then nopCommerce always removed the first one.
  • Remove checkout steps indicator from the shopping cart page when multi-step checkout is disabled.
  • Australia Post plugin. Removed "Express Parcels Platinum" method because it was discontinued and caused issues.
  • FedEx plugin. If the customer orders on a Saturday, the rate calculation will use Saturday as the shipping date, and the rates will include a Saturday pickup surcharge. It was wrong.
  • Error page. We cannot have UL in P tag.
  • Downloadable products. Vendors could download any "download" object by its identifier. Hence they could download files uploaded by other vendors. Fixed.
  • Thumbnails on the shopping cart page and mini-shopping cart block should display appropriate product variant attribute picture (if it is specified).
  • Currency list page (admin area). Some buttons in the grid disappeared after clicking "Refresh".
  • Dimension and weight list pages (admin area). "Mark as primary" buttons in the grids stopped working after clicking "Refresh".
  • Mapping pictures to product attributes. The image that is set to the default picture is not the full size image and when you enable the default image click to zoom ("mediasettings.defaultpicturezoomenabled" setting) it displays the small image rather than the full image.
  • We should hide "Restart Application" and "Clear Cache" buttons from vendors (admin area). Although they were visible they did not have permission to perform those actions so they just needed to be hidden.
  • When deleting a category we also set reset a "Parent category" of all child categories. Previously we did it only for published (!!!) subcategories. But we should do it for all subcategories.
  • Authorize.net payment plugin. The email address was not passed to the payment gateway and thus could be used when issuing refund or doing a search.
  • CSS issue fixed. Added missing angle brackets for ".order-details-page" style.
  • CSS issue fixed. Unordered or ordered lists in full description of products were not properly displayed.
  • CSS issue fixed. Message errors could be wrongly displayed on the "customer info" and "registration" pages.
  • Product reviews page. Rating radio buttons all had the same ID.
  • The topic list page (admin area) could not be loaded when you had a lot of topics (for example, 200).
  • Forums. Some CSS issues fixed in RTL theme.
  • Issue fixed (EF limitation) on one-page checkout. If a customer entered a new billing address with some country that doesn't allow shipping, then he could see this address on the shipping address tab.
  • Deleted obsolete LinqToTwitter assembly.
  • AdminTabStripCreated event had a "category-edit" strip name instead of "blog-post-edit".
  • Typo fixed in "GetListOfAllowedTokens" method.
  • Developers. Removed "VatNumberStatusNote" property from RegisterModel. Anyway it wasn't used.
Release Notes - nopCommerce 3.10 (July 30, 2013)

Highlight features and changes

  • Performance optimization.
  • New more user-friendly product/product-variant logic. Now we'll have only products (simple and grouped). Please note that some extra steps will be required during upgrade (please find them in the appropriate readme.txt upgrade file).
  • Bundle products support added. Now a store owner can associate any product variant attribute value with any product. He can manage it on a product variant attribute value details page. In this case price and weight adjustments of this product will be used. The same is about inventory stock of an associated product.
  • Allow a store owner to associate product image for product variant attribute values.

Improvements

  • Allow a store owner to generate all possible product attribute combinations.
  • Multi-store. Allow a store owner to configure shipping rates per store ("Shipping by weight" plugin).
  • Multi-store. Allow a store owner to have different prices in different stores. He can do it by configure tier prices limited to a specific store (just set tier price quantity to 1). But this feature has one limitation. Sorting by price does not consider tier prices.
  • Multi-store. Allow a store owner to configure payment modules per store.
  • Multi-store. Allow a store owner to limit plugin per store. Admin area > plugins > edit > stores tab.
  • Allow a store owner to edit shipped and delivery dates of shipments.
  • Allow a store owner to search product review (by keyword).
  • Allow a store owner to search shipments by a tracking number.
  • Admin area, product list page. Allow a store owner to search including subcategories.
  • Allow a store owner to expand a shipment row on the shipment list page and see a list of products (without going to the shipment details page).
  • Rich snippets. Added "priceCurrency" schema.org value.
  • Search engine optimization. Do not render "pageindex" query parameter for the first page (on pageable pages).
  • Minor CSS refactoring.
  • Now a product box has a product rating.
  • Display pictures for recently viewed products (block).
  • Admin area. Specification details page. Display number of associated products beside a specification option.
  • We should delete a customer email address from "newsletter subscribers" when we delete a customer.
  • Admin area. Display a "view" link for some products grid.
  • Removed "HideAdminMenuItemsBasedOnPermissions" security setting. Let it always be enabled.
  • Admin area. Message template list. Display a list of stores assigned to each template.
  • Estimate Shipping. Added required indicator for country field.
  • Removed "Enabled" PDF setting. It was used only when PDF was not supported in medium trust. Now everything works fine.
  • Allow a store owner to change AddThis.com code (page share) on the catalog settings page.
  • Admin area. Display "Created on" and "Updated on" fields on the product details page.
  • Facebook external authentication plugin. Renamed field names so they match the Facebook terms ("Client key identifier" to "App ID/API Key", "Client secret" to "App Secret").
  • Localized some hard-coded resources.
  • Deleting the only email account should show an error message instead of throwing an exception.
  • Compare products empty page should have some explanation.
  • Allow a store owner to specify ReCaptcha theme in admin area ('captchasettings.recaptchatheme' setting).
  • Ensure that the StackExchange profiler won't throw exception in medium trust.
  • Media settings. Renamed "Product variant detail image size" to "associated product image size".
  • Breadcrumbs. Renamed "Top" to "Home".
  • The newsletter checkbox should be checked by default on the registration page.
  • Minor refactoring of sample data.
  • Created distinct error messages for login results.
  • Renamed "Croatia (local Name: Hrvatska)" coutnry to "Croatia". The previous name could cause some issues with shipping providers such as USPS.
  • Updated the USPS shipping plugin according to the latest USPS updates (28 July 2013).
  • Montenegro was missing in the country list.
  • Moved the "Force SSL for all site pages" setting ("securitysettings.forcesslforallpages") to admin area.
  • Added a setting indicating whether customers should be automatically redirected to the order details page when visiting an "order completed" page.
  • Added "MediaSettings.ProductThumbPerRowOnProductDetailsPage" setting indicating how many thumbs per row is displayed on the product details page.
  • Admin area. Added a note about noise words to "full-text settings" page.
  • Performance optimization. Added more SQL Server indexes.
  • Performance optimization. More caching.
  • Performance optimization for stores which use discounts assigned to categories.
  • Performance optimization. The order list page in admin area was really slow when you had more than 100,000 orders (all orders were loaded in memory). Now paging is done in database layer.
  • Performance optimization. Cache categories on the search page. It could be slow if you have hundreds of categories.
  • Performance optimization. "Delete guests" schedule task. Do not delete more than 1,000 customer records otherwise it can really slow down the system.
  • Performance optimization. Cache nopCommerce.com official news shown on the admin area dashboard page.
  • Developers. Updated MaxMind GeoIP database to the latest version (the /App_Data/GeoIP.dat file).
  • Developers. Updated third-party assemblies to the latest version.
  • Developers. "AllowMultiple" addition to ParameterBasedOnFormNameAttribute and ParameterBasedOnFormNameAndValueAttribute.
  • Developers. Now “IAdminMenuPlugin” has "Authenticate" method which should return a value indicating whether a user can see this item in the admin menu.
  • Developers. GenericUrlRouteProvider should not have the lowest possible priority (cannot be overriden).
  • Developers. Removed "GoogleOrderNumber" property in ProcessPaymentRequest. We should use "CustomValues" property.
  • Developers. Renamed "ShipmentOrderProductVariant" table/entity to "ShipmentItem".
  • Developers. Renamed " OrderProductVariant" table/entity to " OrderItem".
  • Developers. GiftCard entity. Renamed "PurchasedWithOrderProductVariantId" column/property to "PurchasedWithOrderItemId".
  • Developers. Split the /Administration/Views/Product/_CreateOrUpdate.cshtml view to several ones. It was too bloated.

Bugs

  • We could load some wrong entities when using "limit to stores" or "limit to ACL" mapping.
  • Fixed an issue in "AreProductAttributesEqual" method of "ProductAttributeParser". In some cases it could return wrong result.
  • Nivo Slider plugin did not properly scale the first image in IE9 and IE10.
  • Keep alive issue fixed. It generated error records in system log (although it worked).
  • Admin area "AJAX loading" indicator was not displayed when running in virtual category.
  • CSS issue fixed. When you had more than 5 languages (or some very long currency name), the language bar droped below the currency and exc/incl VAT dropdown.
  • CSS issue fixed. When applying category titles that require 2 lines, the second line of text is cut off half-way.
  • CSS issue fixed. Rating stars were not properly displayed on the product details page in the RTL (right-to-left) theme.
  • Minor issue in [ProductLoadAllPaged] stored procedure fixed. #KeywordProducts temporary table was not dropped.
  • Some files from the \Themes directory were copied to the output (\bin) in source code version. It's not required.
  • "IsAddressValid" method of AddressService did not validate "City" property.
  • We should validate ACL and store mapping for recently viewed and compared products.
  • "OrderItemGuid" property was missing when exporting orders to XML.
  • We should ignore deleted or inactive customers when sending newsletter campaigns.
Release Notes - nopCommerce 3.00 (May 4, 2013)

nopCommerce 3.00 introduces a lot of really great and long awaited features. Our development efforts were focused on multi-store and multi-vendor support, better SEO, and HTML/CSS refactoring.

We also fixed a critical security issue. The security vulnerability affects all 2.X versions of nopCommerce. We won’t share the issue details because people need a chance to update or fix their installations. The upgrade is HIGHLY recommended. If you don’t have an opportunity to upgrade to version 3.00, then please follow the next steps to fix your 2.X version. Open web.config file in the root of your site and remove the following three lines of code:

  • <add verb="GET,HEAD" path="asset.axd" validate="false" type="Telerik.Web.Mvc.WebAssetHttpHandler, Telerik.Web.Mvc" />
  • <remove name="asset" />
  • <add name="asset" preCondition="integratedMode" verb="GET,HEAD" path="asset.axd" type="Telerik.Web.Mvc.WebAssetHttpHandler, Telerik.Web.Mvc" />

As you can see it was caused by a third-party library (Telerik MVC Extensions), but we apologize for the inconvenience that this security vulnerability has caused.

 

Highlight features and changes

  • Multi-store support.
  • Multi-vendor support.
  • Performance optimization.
  • Search engine optimization. Rich snippets support added, etc.
  • A lot of HTML and CSS refactoring. Thanks a lot to www.nop-templates.com for this contribution.

Improvements

  • Search engine optimization. More user-friendly "page not found" page (with 404 HTTP status code).
  • Search engine optimization. Do not link the current page to itself (the last step in the breadcrumbs should be un-linked).
  • Implemented "Page not found" page as topic so it can be easily edited in admin area.
  • Updated third-party assemblies and scripts to the latest version.
  • Allow a store owner to specify start/end date and time on the discount details page (admin area). Previously he could specify only date.
  • Allow a store owner to specify minimum reward points to use. Customers won't be able to use reward points before they have X amount of points.
  • Allow a store owner to manage SEO settings for blog posts and news (meta keywords, meta description, meta title).
  • On some pages in admin area the customer column reports "View" hyperlinked to the customer's page who posted the review. This is of little information, because it's necessary to go back and forth opening pages to see who submitted a comment. Now we display customer email instead of "View" link on these pages: product reviews, blog comments, news comments, return requests.
  • Added more user-friendly "Username is required" validation message on registration page.
  • Added a new setting indicating whether single (/content/images/thumbs/) or multiple (for example, /content/images/thumbs/001/ and /content/images/thumbs/002/) directories will used for picture thumbs.
  • Added one more "installation" language pack (Japanese).
  • Created a new system customer record which will be used in scheduled (background) tasks. This way less guest records will be created (when IWorkContext.CurrentCustomer is accessed).
  • Allow a store owner to see all available flag images when creating/editing language.
  • Google Checkout plugin. Added a setting indicating whether "Edit cart" URL should be passed to Google Checkout site.
  • Moved "Load all locales on startup" setting to admin area UI. It can increase performance when enabled.
  • Removed the "checkout steps" breadcrumb from the order complete page when using one page checkout.
  • Removed "Description" property of "Forum group". Anyway it wasn't used.
  • Admin area. Renamed "ACL" tabs to "Access control list (ACL)"
  • Moved breadcrumb delimiter char to settings ("commonsettings.breadcrumbdelimiter").
  • Moved an allowed number of products to be compared to settings ("catalogsettings.compareproductsnumber").
  • Allow a store owner to see all used discount on the order details page in admin area.
  • Added paging support to bestsellers reports.
  • Updated the progress-step-inactive.gif file with the new one with transparent background.
  • Performance optimization. Do not load all categories for navigation. It can slow down the system if you have thousands of categories.
  • Google Analytics widget now supports mobile version.
  • Removed several discount requirement plugins from the official solution. They will be available on the extensions page on the official site.
  • Performance optimization. Added "store last visited page" setting to admin area UI. Now a store owner can disable this option. When disabled, it can improved performance.
  • Performance optimization. Optimized the solution to don't load product category mappings for each production a requested page if we do not have any discount assigned to categories.
  • Performance optimization. Now we do not use CustomerContent table (TPH approach). The following entities now do not inherit from CustomerContent: BlogComment, ProductReview, ProductReviewHelpfulness, NewsComment, PollVotingRecord.
  • Performance optimization. Reduced the default value of mediasettings.defaultimagequality to 80.
  • Developers. Now a designer can specify a picture thumb size and "preparePriceModel" for "recently viewed products" block in cshtml file(s).
  • Developers. A lot of source code refactoring.
  • Developers. Allow a store owner to specify a list of plugins that should be ignored during nopCommerce installation. This will allow us to create packages which could be installed quite fast (useful on slow hosting). Just enter a comma separated list of plugin system names in "PluginsIgnoredDuringInstallation" setting in web.config file.
  • Developers. Replaced jQuery "live" with "on" (public store only).
  • Developers. Moved a lot of “Customer” entity properties to generic attributes.
  • Developers. Added OrderCancelled event.
  • Developers. More unit tests.

Bugs

  • Critical security issue fixed. The security vulnerability affects all 2.X versions of nopCommerce. The issue is caused by a third-party library (Telerik). The upgrade is HIGHLY recommended. If you don’t have an opportunity to upgrade to version 3.00, then please follow the next steps to fix your 2.X version. Open web.config file in the root of your site and remove the following three lines of code:
    • <add verb="GET,HEAD" path="asset.axd" validate="false" type="Telerik.Web.Mvc.WebAssetHttpHandler, Telerik.Web.Mvc" />
    • <remove name="asset" />
    • <add name="asset" preCondition="integratedMode" verb="GET,HEAD" path="asset.axd" type="Telerik.Web.Mvc.WebAssetHttpHandler, Telerik.Web.Mvc" />
  • The inventory could be adjusted twice when a store owner cancelled an order and then deleted it.
  • Facebook external authentication plugin re-written. The previous one was outdated and did not work anymore (it used tokens deprecated by Facebook).
  • Home page was requested twice. Nivo Slider issue fixed.
  • Nivo Slider did not work in IE10.
  • Froogle (Google Product Search) plugin did not properly encode some categories.
  • Url Encode email address otherwise URL for password recovery & activation will break for addresses with + in them (ie [email protected])
  • IE6,IE7 issue fixed. Nivo Slider did hide the flyout shopping cart block.
  • Profit calculation issue fixed. Discount and gift card codes were not considered.
  • Specification attribute options could be mixed up in the "Filter by attributes" block if display order of all specification attributes was set to 0.
  • We should display a warning to a customer if we exceed the "Maximum shopping cart items" and "Maximum wishlist items" settings.
  • Added favicon.ico available out of the box. This way no "page not found" page will be requested/returned (hence less database requests).
  • Minor issue fixed. If you apply a discount or gift card coupon and then press checkout, you are redirected to the login page. Once logged in, previously entered coupon code is not migrated and should be re-entered.
  • \Themes\DefaultClean\theme.config should have "supportRTL" proeprty set to "true"
  • USPS issue fixed. The plugin did not work for the following countries: Puerto Rico, United States minor outlying islands, American Samoa, Guam, Marshall Islands, Micronesia, Northern Mariana Islands, Palau, Virgin Islands (U.S.)
  • Color squares #values were not carried over when copying products or variants
  • Shopping cart page JavaScript validation issue fixed. Removed “onclick” attribute from checkout button as JavaScript function startcheckout() was removed.
  • USPS issue fixed. Some rates were returning with HTML encoded trademark (&lt;sup&gt;&amp;trade;&lt;/sup&gt;), replaced encoded HTML with trademark sign.
  • We should not throw an exception when printing packaging slips without shipments selected.
  • Inbox (PM) link was displayed on the mobile version for not logged-in customers.
  • Added "%BackInStockSubscription.ProductUrl%" message token and update the template. Now a customer can click on a link.
  • Admin area. Preview buttons did not work for categories and manufacturers
  • Do not allow a store owner to choose a widget zone on the configuration page of Google Analytics widget (it's not required).
  • Deleting a category should set a ParentCategory property of the children to 0.
  • "Continue shopping" button did not properly work. It always redirected customers to the home page.
  • We should delete the appropriate records from the [GenericAttribute] table when deleting the guest customers.
  • Admin area. When adding a related product hitting "enter" should not close the window. It should activate the "search" button.
  • Order confirmation email did not contain download link for downloadable products for FREE orders.
  • Events and classes which implement IRouteProvider interface should be ignored for not installed plugins.
  • Developers. Renamed "top-left-button" and "top-right-button" sections in Root.Mobile.cshtml. They could not be overridden (dashes are not allowed in section name).
Release Notes - nopCommerce 2.80 (January 5th, 2013)

Highlight features and changes

  • New clean and modern default theme.
  • Added ACL (access control list) support on manufacturers.
  • Search engine optimization. ID-less URLs for news and blog posts.
  • Added "Color squares" attribute control type.
  • Now a store owner can specify any custom value for specification attributes on the product details page (filtering is not supported for such specification attributes).
  • Allow a store owner to specify SKU, manufacturer part number, GTIN for each product attribute combination.

Improvements

  • Now a store owner can enable "I accept privacy terms" checkbox to the registration page (disabled by default).
  • Sename (slug) history supported added. It allows a store owner to have several slugs (sename) per entity. Previously an entity sename could be changed and in this case the previous URL became unavailable.
  • Added "Nivo Slider" widget.
  • Allow a store owner to set order ID counter in admin area (order starting number).
  • Added confirmation question ("Are you sure?") on the address list page when clicking "Delete" button.
  • Track impersonated orders. Now we can see which orders were placed by store administrators impersonating customers (appropriate order note is created when placing an order).
  • Added one more "installation" language pack (Icelandic).
  • Added a setting ("currencysettings.displaycurrencylabel") indicating whether currency label (e.g. USD) should be hidden.
  • Disabled tracing in web.config. It can have some (minor) performance impact.
  • PayPal Standard plugin. Specify charset variable (utf-8) when doing POST to ensure that product names are properly displayed on PayPal site.
  • Added copy product variant functionality.
  • Added one more customer name format value "Show first name".
  • Added more paths to the robots.txt file.
  • Simplified "Subscribe to newsletter" block.
  • Removed "Live person (Chat)" plugin from the official solution. It'll be available on the extensions page on the official site.
  • Updated USPS shipping option names according to the latest USPS standards (January 27, 2013).
  • Source code refactoring.
  • Developers. Added "CustomValues" property (dictionary) to ProcessPaymentRequest class. This way it can be easily extended (if required).
  • Developers. Now "AddProductToCart" route have "shoppingCartTypeId" and "quantity" parameters.
  • Developers. Created "CustomerLastActivityAttribute" and "StoreIpAddressAttribute" action filters.
  • Developers. Now CategoryNavigationModel contains all categories and subcategories. Appropriate filtering in done in the views. It also increases the performance because the model (cached) is prepared only once for all the pages.

Bugs

  • Critical issue fixed. Mobile devices did not work with SSL support enabled (secured pages returned "Error loading page" error).
  • File upload attribute did not work on mobile devices.
  • Finish payment functionality for redirection payment methods (such as PayPal Standard) minor issue fixed. The problem is that if the customer has more than one unpaid orders and try to repost the first of them, after the payment is completed and redirect the customer at the /checkout/completed page, it always shows the last payment completed.
  • Full-text issue fixed in [ProductLoadAllPaged] stored procedure when you have search mode set to "exact match". We should remove wrong chars such as ' and " before searching.
  • You could get "This authorization code has been used" error when using Facebook plugin. GetAccessToken method should not be invoked twice in the TranslateResponseState method.
  • New product tags were ignored when adding a new product (could be added only when editing).
  • You could not delete a product with a product tag with only one associated product.
  • Authorize.Net plugin. Transactions were not logged in sandbox when we were in the test mode. We should not pass "x_test_request" parameter.
  • We should use JavaScript encoding for messages passed to "alert" function.
  • Not found slugs (search engine friendly page names) should redirect to the home page.
  • Source code typo fixed. "ProductDetailsModel" class had "StockAvailablity" property.
  • The padlock icon was not shown on secured pages (HTTPS) when blog and news RSS header links were enabled.
Release Notes - nopCommerce 2.70 (November 29, 2012)

Highlight features and changes

  • Performance optimization.
  • Search engine optimization. ID-less URLs for products, categories, and manufacturers.
  • Added ACL support (access control list) on products and categories.
  • Minify and bundle JavaScript files.
  • Allow a store owner to decide which billing/shipping address fields are enabled/disabled/required (like it's already done for the registration page).
  • Moved to MVC 4 (.NET 4.5 is required).
  • Now Visual Studio 2012 is required to work with source code.

Improvements

  • More accurate shipping package dimension calculation (based on cube root of volume).
  • Allow a store owner to specify "additional fee" for payment methods as percentage.
  • Updated all third-party assemblies to the latest version.
  • Allow a store owner to view and manage schedule tasks in admin area.
  • Use icons in admin grids for ease of identification of true/false values.
  • Performance optimization. Minify and bundle JavaScript files.
  • Performance optimization. More presentation layer model caching.
  • Performance optimization. Use real batch operation when clearing log in admin area.
  • Performance optimization. More SQL indexes.
  • Performance optimization. Upgrade Entity Framework to version 5.0 (Microsoft reports 67% performance increase for this version).
  • Source code refactoring.
  • Admin area. Bestsellers report. Allow a store owner to filter results by billing country.
  • Enhanced "Shipping by weight" plugin. Now it uses the following formula to calculate rates: [additional fixed cost] + ([order total weight] - [lower weight limit]) * [rate per weight unit] + [order subtotal] * [charge percentage]. If you already use this shipping plugin, please ensure that all your records are correct.
  • Added paging support to configuration pages of "Shipping by weight" and "Tax by country" plugins.
  • Added paging support on the discount list page (admin area).
  • Now we automatically redirect customers to a localized page URL (with SEO code) if "SEO friendly URLs with multiple languages" setting is enabled.
  • Display sender and recipient emails for virtual gift cards on the shopping cart page.
  • Allow a store owner to create physical gift cards (admin area). Previously only virtual gift cards could be created.
  • Minor HTML and CSS refactoring.
  • A lot of new activity log types (for public store).
  • New "installation" language packs.
  • The deploy.bat file now supports web.config transformations.
  • Display subject on the message template list page (admin area).
  • More accurate formatting of decimals displayed in admin area grids.
  • Added several new widget zones.
  • Removed the following plugins from the official package because the solution is already quite bloated with plugins available out of the box. You'll be able to download them from the extensions page on the nopCommerce official site: Nop.Plugin.ExchangeRate.EcbExchange, Nop.Plugin.ExternalAuth.Twitter, Nop.Plugin.Feed.Become, Nop.Plugin.Feed.PriceGrabber, Nop.Plugin.Misc.MailChimp, Nop.Plugin.Payments.PayInStore, Nop.Plugin.SMS.Clickatell, Nop.Plugin.Tax.Free, Nop.Plugin.Tax.StrikeIron
  • Admin area. Order details page. Display a link to an appropriate recurring payment record (if it is a recurring order).
  • Admin area. Payment method list page. Allow a store owner to edit friendly name without going to the plugin list page.
  • Admin area. External authentication methods page. Allow a store owner to edit display order without going to the plugin list page.
  • Admin area. External authentication methods page. Allow a store owner to edit display order without going to the plugin list page.
  • Added a setting indicating whether products from wishlist should be copied or moved to cart.
  • Do not save generated PDF files to file system.
  • Do not save generated Excel files to file system.
  • Simplified names of generated XML files (export/import).
  • Added a setting ("commonsettings.log404errors") indicating whether 404 errors (page or file not found) should be logged. Enabled by default.
  • Added a setting ("customersettings.suffixdeletedcustomers") indicating whether deleted customer records (email and username) should be suffixed with "-DELETED" (disabled by default).
  • Now robots.txt file is dynamically generated and supports URL localization (if "SEO friendly URLs with multiple languages" setting is enabled).
  • Renamed "Select" button text of some admin grids to more meaningful text (currencies, email accounts, weights, dimensions, and tax providers).
  • Localized several hard-coded resources.
  • Reordered some columns in admin area grids (external authentication methods, payment methods, shipping methods, tax providers, widgets).
  • Now Google Product Search (Froogle) plugin supports the following attributes: gender, age group, size, color (required for apparel products for US merchants).
  • Admin area > the plugin list page refactoring.
  • Admin area UI. "Search engine friendly page name" and "Meta title" textboxes should not be multiline.
  • Installation. Make "create sample data" checkbox unchecked by default.
  • A store owner should not be allowed to disable or delete all languages.
  • More user-friendly "error" "page not found", "store closed" implementation.
  • UI. Admin area > customer settings. Moved form fields to the separate tab.
  • Simplified the Froogle plugin. Removed "FTP upload" functionality. Anyway a generated file path is always static (distinguished per site) and uploading by file URL can be done using Google Merchant Center.
  • Enabled HttpOnly flag for cookies.
  • More accurate regex for email validator in CommonHelper.
  • Added autofacos attribute to the login page (HTML 5).
  • Added a new "Admin area. HTML Editor. Manage pictures" permission.
  • Added %Store.Name% token to titles of "NewCustomer.Notification" and "NewVATSubmitted.StoreOwnerNotification" message templates.
  • Renamed a menu item in admin area - "Topics" to "Topics (pages)".
  • Developers. Extended BestSellersReport method of IOrderReportService. Now we can group report by products. Previously we could do it only by product variants.
  • Developers. Renamed "GetProductById" method to "GetProductTagById" of "IProductTagService"..
  • Developers. Source code refactoring. Removed "IsMaxLength" fluent mapping method. Anyway result is the same.
  • Developers. Moved some image from the \Content folder to the CSS images.
  • Developers. Added more events.
  • Developers. Performance optimization. Use database layer paging on the following pages: affiliate list, gift card list, recurring payment list, return request list. Previously we did it in the application layer by loading ALL records from a database.
  • Developers. CategoryNavigation.cshtml. Added style rules to child categories so we can easily customize them through CSS.
  • Developers. Removed hard-coded subcategory margin (CSS) in CategoryNavigation.cshtml
  • Developers. Made IExportManager and IImportManager partial.
  • Developers. Added CSS classes to "Pager" class for better pager customization.
  • Developers. Renamed IPageTitleBuilder to IPageHeadBuilder.
  • Developers. Optimized "GetDiscountByCouponCode" method of "DiscountService". We should not load ALL discounts from the database and only then filter them by coupon code in memory.
  • Developers. Simplified DiscountRequirement class. Discount requirement rule plugins should not be tightly coupled with the core libraries.
  • Developers. IPageHeadBuilder and LayoutExtensions refactoring.
  • Developers. Added a data-productid attribute for the product-item div in the product box views.
  • Developers. Added a property to BaseNopModel class. This way developers can extend any model with new properties via an ActionFilter when they need to do so.
  • Developers. Avoid placing title text in block elements without being wrapped in a proper html tag.</strong>
  • Developers. Added an element (".master-wrapper-main") that wraps the master columns together (left column, center column, right column).

Bugs

  • The system could be really slowed down if "View product page" activity log type was enabled (when we several thousands of appropriate records in database).
  • Affiliates with a lot of associated customers could really slow down the shop. Fixed.
  • "Country" and "State" properties of "ShippingAddress" were null during one-page checkout if you entered a new address.
  • The password field could not contain HTML dangerous chars when logging in (an exception was thrown). Now it allows any chars.
  • We should reduce awarded reward points when deleting an order (the same behavior when we cancel an order).
  • Renamed "productag" path in product tag URLs to "producttag" (old URLs are also supported for backward compatibility).
  • We should cancel appropriate recurring payments when deleting recurring orders.
  • Customers were redirected to the home page when changing currency, language or tax type if URL referrer could not be loaded (for example, in IE8).
  • Gift card changing from physical to virtual when activating in admin area.
  • In some cases customer language was not properly detected when sending virtual gift card notifications (with several languages enabled).
  • "Re-post payment" should not be allowed for orders with "Cancelled" status.
  • Google Product Search plugin. We should remove invalid characters from a generated XML feed file.
  • You could not accept EU cookie law if you had a "store closed" or "public store. allow navigation" permission enabled.
  • Bestsellers displayed on the home page. Cache should be reset if a product or a product variant is modified/deleted.
  • Bestsellers displayed on the home page (public store). We should not display empty space (product box) for unpublished product variants.
  • "Tax By Country & State & Zip" provider. Tax rates should not be limited to 2 decimals precision (4 now).
  • We should not duplicate warnings about minimum/maximum quantity when adding items to the cart.
  • One page checkout. "Back" button should move a customer back to the last ALLOWED tab. We should ignore disabled tabs (for example, when payment method or payment info tab is skipped).
  • Mobile site "Back" button issue fixed. If we use cell phone's back button to navigate to previous page and then whatever action we take, it performs that action and immediately redirects back to the previous page. Second time if we take any action on this previous page, it works well (fixed by disabling "hashListeningEnabled" setting).
  • We should update product tag totals (count) when adding/editing/deteting products and product variants.
  • Selected checkout attributes should be saved when clicking buttons on the shopping cart page (such as "Estimate shipping", "Apply discount", "Add gift card", "Estimate Shipping").
  • Sometimes a schedule task period could be set to several hours (or even days). In this case a probability that it'll be run was quite small (an application could be restarted). Now it's fixed.
  • Developers. Creating a custom mobile theme. Previously when overriding the "_Root.Head.Mobile.cshtml" file developers had to name it "_Root.Head.Mobile.Mobile.cshtml".
  • Polls loaded by system name (for example, displayed on the right column) should by filtered by language. Previously we displayed the first one (no matter of the current language).
  • Admin area > recurring payment list. We should display payment records even for associated deleted orders or customers.
  • One-page checkout did not have page title specified.
  • The password recovery page had a new password field twice.
  • Paging did not work for "Low stock product variant" report.
  • Admin area. The product tag list page was broken when doing paging in IE.
  • Minor issue fixed. When a customer selects a country in dropdownlist (address entering) and then selects the first "select country" item, then the states dropdownlist should be populated with "Other (Non US)" item.
  • Admin area. Search customers by multiple roles issue fixed.
  • Google Checkout plugin. Additional shipping cost was not applied.
  • Base weight and dimension units (labels) were not shown when creating a product in admin area.
  • USPS. There should not be "Oversize" size option.
  • Do not allow duplicates in product category and product manufacturer mappings.
  • Admin area. We should hide a password on the email account configuration page.
  • "SearchProducts" method "ProductService" used "searchDescriptions" parameter instead of "searchProductTags" when searching in product tags.
  • Admin area. "Customer had spent x.xx amount" discount requirement could render wrong value in cultures other than "en-US".
  • A store owner could duplicate an username when creating a new customer in admin area (when usernames were enabled).
  • "Customer has one of these product variants in the cart" and "Customer has all of these product variants in the cart" discount requirements did not properly group products when a customer had the same product variant with distinct attributes in the cart.
Release Notes - nopCommerce 2.65 (August 23, 2012)

As some of you may know we were planning to release version 2.70 much later (the end of September). But today we have to release this intermediate version (2.65). It fixes a critical issue caused by a third-party assembly when running nopCommerce on a server with .NET 4.5 installed. No major features have been introduced with this release as our development efforts were focused on further enhancements and fixing bugs, but it does include the following changes:

Improvements

  • Complete HTML markup and CSS refactoring.
  • Performance optimization.
  • Source code refactoring.
  • Search engine now can search in product tags. Currently it’s done only on the advanced product search page. But you if want to do it on some other pages, then simply pass "true" for "searchProductTags" parameter in "SearchProducts" method of IProductService.
  • Added order review info (billing & shipping addresses, shipping & payment info) to the order confirmation page.
  • Updated all third-party assemblies to the latest versions.
  • Update jQuery Mobile to the latest version (1.1.1).
  • Added several new "installation" language packs.
  • Added a setting ('securitysettings.forcesslforallpages') indicating whether all pages should be forced to use SSL.
  • Made cart/wishlist links clickable on the notification bar.
  • Product export/import should handle product variant name too.
  • Multi-step checkout did not persist entered values such as selected shipping or payment method when customers went back from the confirmation page.
  • Print "print order details" page on load.
  • When you click "Apply coupon" or "Apply gift card" button there should be a warning message if customer left input field blank.
  • Admin area. Localization page. Replaced Telerik combobox with standard HTML dropdownlist.
  • Display a more descriptive error text when an active tax provider cannot be loaded (for example, you did not properly deploy plugins).
  • Developers. Added two more widget zones on the productdetails page - productdetails_top and productdetails_bottom
  • Developers. Improvement on events related to message tokens.
  • Developers. Moved some classes from Nop.Core.Events namespace to Nop.Services.Events.
  • Developers. IPictureService now accepts a parameter indicating whether we should generate URLs with HTTP or HTTPS.
  • Developers. Added Widget() HTML helper.

Bugs

  • Critical issue fixed. nopCommerce did not work when running on a server with .NET 4.5 installed. Actually, this issue is caused by a third-party assembly (FluentValidation).
  • W3C compliance issues fixed.
  • Allow users with "Admin area. Manage Catalog" permission to preview unpublished products, categories and manufacturers.
  • Advanced product search page. Category and manufacturer dropdowns weren't localizable.
  • A "shippable" checkout attribute should not be persisted when a shippable product is removed from the cart.
  • Admin category tree view did not display unpublished subcategories.
  • Checkout attribute text prompt wasn’t displayed localized on the shopping cart page.
  • Checkout attributes with "radio button list" or "checkboxes" weren't properly displayed on some mobile devices.
  • "Copy product" did not copy "Allow back in stock subscriptions" property and product reviews.
  • Upgrade script. Added [dbo] schema to some SQL Server objects (in case your database user does not have [dbo] as a default schema).
  • Exporting newletter subscribers to CSV should not throw any exceptions when no subscribers are exported.
  • When you entered wrong quantity on the product details page (for example, "asdf" instead of "2"), you were getting "The product has been added to the cart" notification although nothing was added.
  • IE10 was detected as a search engine (updated browserCaps.config file).
  • "Public store. Allow navigation" ACL permission caused an issue during customer registration. State/province dropdownlist wasn't populated when country was changed (when these form fields were enabled).
  • Installation process hung if validation errors were returned in IE.
  • We should hide checkout button in the mini-shopping cart block if "min order sub-total amount" isn't met.
  • We should display store theme selector only when we have at least two themes.
  • Admin area. Localization page. Language dropdownlist did not work in virtual directory.
  • Admin area. Currency list page. "Is primary exchange rate currency" and "Is primary store currency" column values always became "false" after clicking "refresh" button.
  • Product images should not be HTTPS secured when generating a product feed.
  • Slimbox2 (used to overlay images on top of the current page) didn't work in IE9 because IE does not support "elem.dataset".
  • ITopicService registration was listed twice in DependencyRegistrar class.
  • Developers. "Recurring" was spelled wrong in GetReccuringCycleInfo method name (\src\Libraries\Nop.Services\Orders\ShoppingCartExtensions.cs).
  • Developers. Renamed CustomeReturnRequestsModel class to CustomerReturnRequestsModel
Release Notes - nopCommerce 2.60 (July 1, 2012)

Highlight features

  • Significant performance optimization.
  • Use AJAX for adding products to the cart.
  • New flyout mini-shopping cart.
  • Auto complete suggestions for product searching.
  • Full-Text support.
  • EU cookie law support.

Improvements

  • Source code refactoring.
  • HTML markup and CSS refactoring.
  • Allow a store owner to limit allowed quantities of a product variant. For example, if you enter "3,7" in the appropriate field a customer will only have a choice of purchasing 3 or 7 at a time. Instead of a quantity textbox that allows him to enter any quantity, he will see a dropdown list of the allowed values.
  • Allow store owner to manage which of the customer form fields are required (as per version 1.90)
  • Phased out Flash (now nopCommerce uses Valum file uploader).
  • Product tags are localizable now.
  • Added new activity log types for public store (such as "Viewed a category details page", "Viewed a manufacturer details page", "Viewed a product details page", "Placed a new order"). They are disabled by default.
  • Added "Public store. Allow navigation" permission to ACL.
  • Now a store owner can create shipments but ship them later (previously newly created shipments were immediately shipped). It'll also allow him to print a packaging slip before going to a post office.
  • Admin area. Added "Shipment list" page.
  • Admin area. Allow a store owner to search categories and manufacturers by name.
  • Admin area. Shipment details page. Display product SKU, product weight, dimensions, and shipment total weight.
  • Admin area. Display product variant SKU on the order details page.
  • Allow customers to view all products tags.
  • Allow a store owner to delete abandoned shopping carts and wishlists.
  • Admin area. Customer details page. Display activity log (a new tab).
  • When a customer shares the link to their wishlist, the person that visits the wishlist should be able to add items from the wishlist directly to the cart.
  • Allow a store owner to configure a "Shipping by Weight" plugin by states and zip.
  • Localized installation page.
  • New widget system implementation.
    • All existing widgets (for versions 2.10-2.50) are not compatible with the new implementation (IPluginWidget interface has been changed.)
    • Update all your custom cshtml files (where widgets are used) according to the new implementation
    • If you had some active widgets before, you have to re-activate and re-configure them (in admin area)
  • Added a lot of new widget zones and renamed several existing ones.
  • Render product SKU in order invoices if "Show product SKU" option is enabled.
  • Added * (required) hints to "customer info" and "edit address" pages.
  • Admin area. Customer details page. Ensure a customer is not assigned to both 'Guests' and 'Registered' customer roles. Ensure that a customer is assigned to at least one role: 'Registered' or 'Guests'.
  • When a customer cancels an order, a store owner should be notified of that cancellation (added a "Recurring payment cancelled" message template).
  • Admin area. Added confirmation boxes for some buttons on the order details page. Did the same for "Change encryption key" and "Change picture storage" buttons.
  • Admin area. Allow a store owner to delete multiple products at the same time (product list page).
  • Mobile device version. Add 'Was this review helpful?' options to product reviews (as per 'desktop' version).
  • We should strip out any white space or dash in the CC number when processing credit card payment methods.
  • Added CAPTCHA support on the news page (comments).
  • Added CAPTCHA support on the blog page (comments).
  • Added CAPTCHA support on the product reviews page.
  • General and Miscellaneous Settings. Display a warning to a store owner if reCAPTCHA is enabled but the appropriate keys are not entered.
  • Allow a store owner to set start and end dates for every news and blog post.
  • Added %Shipment.TrackingNumber% and "%Order.PaymentMethod%" message tokens.
  • Display incompatible plugins on warnigns page (admin area).
  • Discount details page. Display categories and product variants to which a discount is to be applied.
  • Newsletter subscriptions export/import. Use comma instead of tab.
  • Newsletter subscriptions import. Allow a store owner to specify only emails (without "active" field).
  • The build script (deploy.bat) should not generate and deploy PDB files.
  • Some pages (admin area, login, and checkout pages) use HTTPS. Let's force all other pages to use HTTP.
  • Allow guests to email wishlist (configurable).
  • More user-friendly payment method localization (UI). Now you can simply click "Edit" button on the plugin list page (admin area).
  • Added FedEx shipment tracking support.
  • Added options indicating whether to include short and full description in compare products.
  • Added a setting ("commonsettings.displayjavascriptdisabledwarning") indicating whether to display a warning if java-script is disabled.
  • Display customer information on the "Recurring payment list" and "Recurring payment details" pages.
  • SEO improvements. Added product name to "product reviews" and "email a friend" page title.
  • Removed hard-coded "SQL_Latin1_General_CP1_CI_AS" collation during installation. Now a store owner can specify a required collation during nopCommerce installation (optional).
  • Allow a store owner to view a list of all loaded assemblies on the system info page (It can help to debug the application if required).
  • Polls. Allow guests to vote (configurable).
  • We validate write permissions during the installation process. Let's also validate them on the Warnings page (admin area). It can be quite helpful after upgrading to the latest version.
  • Updated third-party assemblies and java-script files to the latest versions.
  • Allow a store owner to change password format settings. But this setting will be applied only to the newly registered customers or customers who would like to change their passwords.
  • Now a store owner can manage a default quality used for image generation ("mediasettings.defaultimagequality" setting).
  • Admin area. Display zip, company, and phone (if enabled) in the grid on the customer list page.
  • Admin area. Added "View" column to the "Bulk edit product variants" page.
  • Admin area. Added "Shipping status" field on the order details page.
  • Allow a store owner to limit the number of manufacturers displayed in "manufacturer navigation" block.
  • Product details and shopping cart pages. Use more user-friendly popup windows instead of window.alert() for customer notifications.
  • Admin area. Customer list page now supports AJAX searching.
  • Admin area. "Edit product variant for product..." title should include variant's name too.
  • Polls. Do not require customers to refresh a page in order to see results. Display them immediately after voting.
  • One-page checkout. Bypass 'select payment method' page if we have only one payment method.
  • Added a tooltip to the password recovery page.
  • Admin page. Product details page. Display small pictures thumbnails on “pictures” tab.
  • "Save" buttons in "Shipping by weight" and "Tax By Country & State & Zip" plugins are AJAX now.
  • Allow filtering of customer uploaded files by extensions (just enter a list of comma-seperated extensions to "catalogsettings.fileuploadallowedextensions" setting).
  • PayPal Direct. When a customer cancels an order for a recurring product, nopCommerce should communicate that cancellation to Pay Pal so that Pay Pal will automatically stop all future charges to that customer. Previously he had to manually cancel a recurring payment in PayPal admin area.
  • Performance optimization. Cache bestsellers displayed on the home page.
  • Performance optmization. Import language packs using a new stored procedure (as per 1.X versions). Now it's much faster.
  • Include PO number in the invoice if "Purchase order" payment method was used.
  • Performance optimization. Faster installation process.
  • Performance optimization. Cache permissions between requests.
  • Performance optimization. Cache more presentation layer models.
  • Performance optimization. Execute less SQL commands when rendering a poll block.
  • Performance optimization. Load all recently viewed products using only one SQL command (previously we loaded each product using separate SQL command).
  • Performance optimization. Faster page loading on the catalog pages (category, manufacturer, products by tag, etc) when you have a lot of products displayed (product page size).
  • Performance optimization. Optimized a procedure of encryption key changing (security settings). Previously we loaded all customers and then filtered the ones with the "Encrypted" password format (application layer). Now we do it on the database layer.
  • Performance optimization. Combined multiple OrderAverageReportLine queries into a single query.
  • Performance optimization. Do not load online shipping rates twice during checkout (first to get all methods to show customer, and then when customer selects a method called again).
  • Performance optimization. Added properties to "NewsItem" entity indicating the total number of comments. So now we do not need to load all comments or make unnecessary database call just to know it.
  • Allow a store owner to manage display order of "Payment" and "Shipping rate computation" plugins on their list pages (previously you could do it only the Plugins page).
  • Removed obsolete Microsoft java-script files (MicrosoftAjax.js, MicrosoftMvcAjax.js, MicrosoftMvcValidation.js). Hence a page size was reduced.
  • Google Product Search plugin. Include shipping_weight attribute if "FroogleSettings.PassShippingInfo" setting is anebled (disabled by default).
  • Performance optimization. Added properties to "BlogPost" entity indicating the total number of comments. So now we do not need to load all comments or make unnecessary database call just to know it.
  • Performance optimization. Added "HasTierPrices" property to "ProductVariant" entity indicating whether a variant has tier prices configured. So now we do not need to load tier prices or make unnecessary database call if it's not required.
  • Performance optimization. Added "HasDiscountsApplied" property to "ProductVariant" and "Category" entities indicating whether it has discounts applied. So now we do not need to load discounts (make unnecessary database call) if it's not required.
  • Performance optimization. Disable sending information about the current request to 51degrees site (mobile device version).
  • Performance optimization. Faster loading of the related products in public store.
  • Performance optimization. Add paging on the "Edit category/manufacturer details" page (admin area).
  • Developers. Renamed name prefix of some inputs and buttons on the product details page ("add to cart", "add to wishlist, "qty", and "customer entered price").
  • Developers. Deleted _ColumnsFluid.cshtml layout.
  • Developers. Use dependency injection for the schedule tasks (ITask interface).
  • Developers. Removed the following methods from "Customer" entity: AddAddress, SetBillingAddress, SetShippingAddress. BTW, these methods caused a Google Checkout callback issue (order could not be saved for guest customers when billing and shipping addresses were identical).
  • Developers. Added generic attribute support (now you can add a new property to any entity without database changes). Previously we could do it only for "Customer" entity (we had "CustomerAttribute" associated entity). Now we have "GenericAttribute" and "IGenericAttributeService".
  • Developers. Now we do not use MvcContrib (grid).
  • Developers. Renamed several java-script file names (accordion.js to public.accordion.js, onepagecheckout.js to public.onepagecheckout.js, public.js to public.common.js, admin.js to admin.common.js)
  • Developers. Divided "ProductModel" class into two new classes: "ProductOverviewModel" and "ProductDetailsModel". Important note for theme designers: do not forget update all your cshtml files related to products (simply replace "ProductModel" model declarations with one of the new classes).
  • Developers. Moved "return request" action methods from OrderController to the new ReturnRequestController.
  • Developers. Replaced some "Url.Action" with "Url.Route" (in views) and "RedirectToAction" with "RedirectToRoute" (in controllers).
  • Developers. More pluggable infrastructure. Added a new event ("AdminTabStripCreated") which allows you to add custom tabs to admin area pages.
  • Developers. Load plugins based on their display order in PluginManager.
  • Developers. Moved Footer.cshtml and Footer.Mobile.cshtml files from /Views/Shared/ to /Views/Common/.
  • Developers. Removed unnecessary "IPromotionFeed" interface and "Promotion feeds" menu item in admin area. Now all feed plugins implement "IMiscPlugin" interface.
  • Developers. Removed unnecessary "ISmsProvider" plugin interface and "SMS Providers" menu item in admin area. Now all SMS plugins implement "IMiscPlugin" interface.
    • You should re-enable SMS providers if you've had them enabled.
  • Developers. Add a new event 'TokensAdded' to allow plugins to manage their own custom tokens. By doing this, plugins can include dynamic content in emails.
  • Developers. Removed order total weight property (we already have it in shipments).
  • Developers. Controllers and model classes as partial now.

Bugs

  • Fixed W3C validation errors.
  • Localized several hard-coded locale resources.
  • ProductLoadAllPaged issue fixed when you have a lot of specification attributes.
  • SSL issue fixed. Sometimes customers could get "Mixed content SSL" warnings.
  • Checkout attributes. If an attribute was required (and not selected/filled), the shopping cart page reloaded but gave no warning message to a customer.
  • Fixed an issue in money converter exchange rate provider plugin. One currency rate could not be parsed.
  • Now we use more user-friendly notification bars instead of jQuery UI dialogs for messages such as "Product added to cart". But you can always move back to jQuery UI dialogs. Simply open Views/Shared/_Root.cshtml file, find AjaxCart.init method and replace the first parameter with "true".
  • Now all admin area pages have titles. Previously all the browser history entries were the same ("NopCommerce Web Administration").
  • Australia Post should return user-friendly shipping option names.
  • Product tag URLs shoud use seo-friendly product tag names instead of standard names (for example, first we should remove wrong chars and extra spaces).
  • Admin area. Product list page. We should hide "Download catalog as PDF" when PDF is disabled.
  • When ACL 'Public store. Enable shopping cart' is disabled, customers shouldn't see 'add to cart' option on the wishlist page.
  • We should disable customer role management on the customer details page if "Manage customer roles" permission is disabled.
  • If a plugin has some settings, they should be deleted when uninstalling this plugin.
  • Blog list page ignored page size setting when filtering posts by tag or dates.
  • Ensure that "MultipleActiveResultSets=True" is specified during installation when a store owner prefers to manually enter a connection string.
  • HTML encoding issue fixed when using product or checkout attributes with "multiline textbox" type.
  • PdfService did not use a passed "language" parameter when generating a document for some rows.
  • Minor issue fixed when using SQL Server CE. “OrderService.GetOrderByAuthorizationTransactionIdAndPaymentMethod" didn't work.
  • External authentication providers didn't work in SQL Server CE.
  • Estimate shipping listed all countries. It should only list those countries where shipping is enabled.
  • Forums could not be deleted (Entity Framework 4.3 issue).
  • "Cannot redirect after HTTP headers have been sent" issue fixed when using RemotePost class in payment methods.
  • Shopping cart totals went off the screen when checking out if you had selected a shipping method name with large length.
  • Cross-sell products should be displayed only on the shopping cart page (not during checkout).
  • Issue fixed. Customers could specify any page size (by modifying a query string) if "Allow customers to select page size" option of a category or manufacturer was disabled.
  • Review helpfulness. Customers should not be allowed to vote for their own product reviews.
  • On the "Shipping Method Restrictions" page, the check box on top of each column toggled all ON, but did not work to toggle all OFF.
  • Pictures were not deleted for categories, manufacturers, and product variants (when updated or removed).
  • Added a couple of missing quotes to HTML code.
  • Fixed an issue with required product variants. We did not took into account required product variants that are not published and thus did not produce a shopping cart warning when an unpublished product variant was required.
  • When applying a discount on the shopping cart page it showed the coupon code as accepted even if it was inactive.
  • Renamed /administration/sitemap.xml file to sitemap.config so it cannot be opened from the outside.
  • UI issue fixed when you have many product pictures (more than 6) displayed on the product detail page.
  • Added a setting indicating whether 'out of stock' products can be added to wishlist.
  • "Notify me when available" should be a button (instead of hyperlink).
  • Enabled the following options by default: "Anonymous checkout", "Use one page checkout", "Display cart after adding product". Disabled the following options by default: "Display wishlist after adding product", "Allow customers to select a theme". Enabled EURO currency by default.
  • Added a missed semicolon in /Administration/Views/ProductVariant/BulkEdit.cshtml file.
  • The validation of the password confirmation happened in reverse. The correct procedure is to validate only after entering the password confirmation.
  • reCAPTCHA issue fixed in RTL theme when using FireFox. The text box was hiding the text.
  • CSS issue fixed in "nopClassic" theme. Login page should be 720px width.
  • Discount minor issue fixed. Associated records from "Discount_AppliedToCategories" and "Discount_AppliedToProductVariants" tables should be deleted when you change a discount type. Actually it's not a real issue because these associated records were not used when calculating a product price.
  • Take into account 'Minimum cart quantity' property when adding a product to the cart from catalog (category, manufacturer, etc) pages.
  • When registering, not checking the newsletter check box should not take an existing email address off of the subscription list.
  • Fixed Fancybox CSS issue with relative paths. Otherwise, you could get a lot of the following log errors when using Internet Explorer: "The controller for path '/fancybox/fancy_shadow_nw.png' was not found or does not implement IController".
  • Tax By Country & State & Zip provider issue fixed. When you use dialog to "Add Tax Rate" and you don't want a specific Zip, you leave Zip blank; the new record above will then appear with "*" in the Zip field. If you then click Edit button on that record, and edit only the Percentage (leaving the Zip as "*"), the record will no longer work, because the underlying field in database table now gets updated with a "*" rather than a null.
  • Glimpse (web debugging tool) didn't work.
  • Made expire month and year required in payment plugins.
  • CSS issue fixed on one-page checkout in DarkOrange theme.
  • Checkout attributes. When a datepicker attribute was selected and we movd back to the cart page, a datepicker control was not pre-filled with a selected datetime.
  • Minor HtmlHelper class issue fixed (typo).
  • 'Edit product variant' activity log should contain full product name (not just product variant name).
  • Payment methods page in admin area. If you clicked the Edit button on any payment method line, the text value in the "Recurring support" column changedto a number. When you then clicked “Update” button, the values in that column for all the other lines also changed.
  • Warnings page (admin area). We should compare the store URL (storeInformationSettings.StoreUrl) with both possible URLs of the current page (HTTP and HTTPS).
  • Password recovery worked even for deleted accounts.
  • "%Order.BillingAddress1%" token was missing from List Of Allowed Tokens - MessageTokenProvider.GetListOfAllowedTokens() method.
  • Javascript and CSS files issue fixed when including from a widget. It was impossible to place them in thetag with the HTML helpers (AddCssParts and AddScriptParts) if the plugin was added to any of the widget zones that were called in the _Root view(AfterBodyStartHtmlTag, BeforeContent, AfterContent, BeforeBodyEndHtmlTag). IMPORTANT NOTE FOR THEME DESIGNERS: Splitted _Root.cshtml layout file to the new two files (_Root.cshtml and _Root.Head.cshtml). We have to do it because of the way how ASP.NET rendering works. For more info see
Release Notes - nopCommerce 2.50 (April 3, 2012)

Highlight features

  • Significant performance optimization.
  • Allow store owners to create several shipments per order. Added a new shipping status: “Partially shipped”.
  • Pre-order support added. Enables your customers to place a Pre-Order and pay for the item in advance. Displays “Pre-order” button instead of “Buy Now” on the appropriate pages. Makes it possible for customer to buy available goods and Pre-Order items during one session. It can be managed on a product variant details page in admin area.
  • Enhanced shipment tracking. Now a customer can see a link to a shipment tracking page on his shipment details page (for example, http://wwwapps.ups.com/WebTracking/track?trackNums=1Z9999999 for UPS). He can also see a list of all shipment events (including status, location, country, date) on the shipment details page. This option (admin area > shipping settings > display shipment events) is disabled by default. Currently shipment tracking is implemented only for UPS now.
  • Google analytics script for e-commerce (a part of the “Google Analytics” widget). Would provide everyone with improved opportunities to analyze sales and drivers of sales.
  • “Upload field” product attribute control type.

Improvements

  • Added new sort options to catalog: “Name: A to Z”, “Name: Z to A”, “Price: Low to High”, “Price: High to Low”.
  • Allow store owner to add products to existing orders.
  • Admin area. Order list page. Display tax, profit and order total summary reports (footer template).
  • “Products never purchased” report added.
  • Admin area. Order details page. Display links to appropriate gift card pages if a customer purchased gift cards.
  • Allow a store owner to search customers by company, phone, and zip code (if enabled).
  • Updated mobile device database to the latest version (51degrees).
  • Payment method friendly name are localizable now. But currently you have to do it manually. Just add an appropriate locale resource in admin area in the following format – “Plugins.FriendlyName.{0}” where {0} is your plugin system name (for example, “Plugins.FriendlyName.Payments.PayPalStandard”).
  • Admin area. Bulk edit product variants. Manage stock quantity.
  • Advanced search page. Allow customers to search including sub categories.
  • Added a setting indicating whether a category details page should also include products from subcategories (“catalogsettings.showproductsfromsubcategories”).
  • Added support for scheduled generation of a Froogle/Google base data feed file. Now a file path of this file is static and can be given to Google.
  • Updated third party assemblies to the latest versions.
  • Allow store owner to export selected orders, products, and customers.
  • Add CAPTCHA to the “Login”, “Email product to a friend”, and “Email wishlist to a friend” pages.
  • Performance optimization. Added more SQL indexes.
  • Performance optimization. New [ProductLoadAllPaged] stored procedure (dynamic SQL).
  • Performance optimization. Filterable specification attributes are loaded much faster now (returned by the “SearchProducts” method of the “IProductService”).
  • Performance optimization. Cache picture models.
  • Performance optimization. Replaced old “CompressAttribute” with native <urlcompression> attribute in web.config. It also compresses static resources. Enabled static content caching in web.config. Important note: These options are supported by IIS 7 (and above).
  • HTML refactoring. Moved to HTML5 (<!DOCTYPE html>). Markup refactoring. Removed a lot of hard-coded CSS styles.
  • Admin area. Allow a store owner to filter product reviews by dates.
  • Added a “New order note” email customer notification (if an order note should be displayed to customer).
  • Allow a store owner to approve/disapprove multiple reviews on the “Product reviews” page (admin area).
  • Added a new “ordersettings.minimumorderplacementinterval” setting which prevents two orders being placed within an X seconds time frame.
  • FedEx plugin. Now a store owner can choose a packing type: “Pack By Dimensions” (the original one), “Pack By One Item Per Package”, and “Pack By Volume”.
  • FedEx plugin. Allow a store owner to select a preferred drop off type (“Business service center”, “Drop box”, “Regular pickup”, “Request courier”, “Station”).
  • Schedule task implementation enhancements. Added event logging in there just to see if a task works fine (store last start time, last end time, and last success time).
  • Do not allow store owner to delete the primary weight and the primary dimension.
  • Added “Display wishlist after adding product” setting (similar to existing “Display cart after adding product”).
  • Extended “Customer has all of these product variants in the cart” and “Customer has one of these product variants in the cart” discount requirement rules. Previously you could specify only the comma-separated list of product variant identifiers (e.g. 77, 123, 156). Now you can also specify the comma-separated list of product variant identifiers with quantities ({Product variant ID}:{Quantity}. for example, 77:1, 123:2, 156:3). And you can also specify the comma-separated list of product variant identifiers with quantity range ({Product variant ID}:{Min quantity}-{Max quantity}. for example, 77:1-3, 123:2-5, 156:3-8).
  • Renamed Froogle to Google Product Search.
  • The order confirmation page should not include a full exception stack if thrown.
  • Admin area. Campaigns. Message tokens were not converted in test messages (use an appropriate newsletter subscription object if a specified test email is found).
  • Admin area. Campaigns. Added support for %Customer.% tokens if an appropriate customer record is found with the specified email.
  • Developers. SearchProducts method of ProductService should not reference SqlParameter. Data access layer (Nop.Data project) should do it.
  • Developers. Allow developers to specify a resource location (header or footer) when adding a custom resources using HTML layout extensions (Html.AddScriptParts or Html.AddCssFileParts).
  • Developers. Moved IsDownloadAllowed and IsLicenseDownloadAllowed methods to IDownloadService from IOrderProcessingService.
  • Developers. BaseNopController classes should be abstract.
  • Developers. Added SuccessNotification and ErrorNotification methods to public store controllers (similar to admin area controllers).
  • Developers. Added a new NewInputForEachValue property to RemotePost class indicating whether we should create a new <input> HTML element for each value (in case if there are more than one) for the same “name” attributes. Also added a new AcceptCharset property to RemotePost class allowing you to set “accept-charset” attribute to the <form> tag.

Bugs

  • Important: critical XSS security issue fixed.
  • The solution could not be compiled when you had ASP.NET MVC 4 installed. Fixed by moving all ASP.NET MVC assemblies to \packages\aspnetmvc\ directory.
  • Localized all hard-coded locale string resources.
  • Fixed several locale resource typos.
  • Login credentials were always remembered (even if “Remember me” checkbox wasn't checked).
  • The specification attribute filtering issue fixed. The list did not restrict available options correctly. You could filter down the list of products down to zero products. For example, you could see 2 products on the list and 8 (mutually exclusive) specification attributes to choose from.
  • Filterable specification options were not properly sorted on a category details page.
  • Issue fixed. Gift cards didn't work with a “Single product variant” product template in case if a product identifier was different to a product variant identifier.
  • Category and manufacturer details pages. Price “From” did not consider tier prices and discounts (when you have two or more product variants).
  • Wrong currency rate could be stored when placing an order in some cases (when your exchange rate currency is set to one currency, your primary store currency is set to another one, and a customer uses the third one).
  • Featured products weren't displayed in the mobile version.
  • Javascript and CSS files referenced using our HTML extension method (LayoutExtensions class) could be added multiple times to the tag.
  • Typing wrong settings could break the site. Admin area > Configuration > Settings > All settings. If you type wrong setting value, then it could break the site. For example, if you type “tru1” instead of “true” for some Boolean setting.
  • “Continue shopping” button issue fixed. If you navigate to a product through search, the “Continue shopping” button should take you to the Search page.
  • Queued email should be sent in ascending order.
  • “Display cart after adding product” option worked only on the product details page. If you added a product from a catalog, it still redirected a customer to the shopping cart page.
  • If a customer belongs to more than one role the tier prices grid (public store) created confusion in the proposed prices (when we have tier prices for distinct roles with the same quantities).
  • Tier prices were displayed without applied discounts on the product details page (if available).
  • TinyMCE HTML editor did not work in IE7.
  • Removed a stylesheet example from TinyMCE configuration (non-existent stylesheet was causing a 404 error).
  • Admin area. Custom “Plugins” menu was hidden when “Hide admin menu items based on permissions” was disabled.
  • Private messages. Customer name should be clickable (if “customer profile page viewing” is enabled).
  • Private messages and forums. HTML encoding issues fixed.
  • Admin area. Clicking “Enter” (keyboard) should make a new search request on customer list page (admin area).
  • Admin area. Log and Queued emails pages. Only records selected (checked) on the current page were passed when “Delete selected” button was clicked.
  • A customer or a store owner could not open a list of existing return requests if an associated order product variant had been deleted.
  • Product details page. Entered textbox and datepicker values should be persisted after posting back (if wrong data has been entered).
  • “Cannot redirect after HTTP headers have been sent” issue fixed.
  • IE6 issue fixed. “My account” page was broken in IE6 when “back in stock subscriptions” link was visible (too long text).
  • Issue fixed when you have two or more shipping rate computation methods and one of them returns errors. nopCommerce should return valid options if there are any (no matter of the errors returned by other shipping rate computation methods). The behavior is controlled by the new “shippingsettings.returnvalidoptionsifthereareany” setting.
  • Exporting orders to Excel. “Vat” column had the data for “CreatedOnUtc”, “CreatedOnUtc” had the value for “Billing First Name”. Everything was shifted.
  • USPS plugin. Wrong primary dimension could be loaded.
  • USPS plugin. Rates were incorrect when you had multiple packages.
  • FedEx plugin. The plugin did not properly handle currency conversion when the store primary currency was not the same as the origin country's currency. Also, when neither the shipping origin’s currency nor the destinations currency is the same as the store primary currency, FedEx would complain that “There are no valid services available. (code: 556)”. But the new solution might be considered a bit of a hack - it only supports the scenario for US / Canada shipping, because nopCommerce does not have a concept of a designated currency for a country.
  • Uploading files (for downloadable products) should not require a user to be an administrator. It should require “Access admin area” permission.
  • Minor issue fixed. When a customer was not logged-in and clicked on the Checkout button, he was redirected to the login page without returnUrl parameter specified. And he was redirected to the home page after logging in.
  • Minor caching issue fixed in SpecificationAttributeService.
  • Developers. AdjustShippingRate method of OrderTotalCalculationService. IsFreeShipping method was called twice without any real need.
  • Developers. WebHelper.GetStoreLocation method did not work when HttpContext wasn't available (for example, when accessing from a schedule task).
  • Developers. WebHelper.IsStaticResource method should return “true” for HTML and HTM pages.
Release Notes - nopCommerce 2.40 (February 1, 2012)

Highlight features

  • Mobile device support (disabled by default).
  • MailChimp plugin (email marketing tool).

Improvements

  • Performance optimization.
  • Source code and HTML markup refactoring.
  • More unit tests added.
  • Updated third party assemblies to the latest versions.
  • Use TinyMCE (3.4.7) as HTML editor instead of the Telerik one.
  • Allow store owners to manage friendly name and display order of plugins (previously he had to manually edit Description.txt file).
  • 'Display cart after adding product' setting.
  • Display visual hints (*) for the required fields on registration page.
  • Added CAPTCHA to the contact us page.
  • Allow store owner to specify page title SEO adjustment. For example, generated page title could be (PAGE NAME | STORENAME.COM) instead of (STORENAME.COM | PAGE NAME).
  • New forum post notification. Jump to last page from email.
  • Bypass 'select payment method' page if we have only one payment method (multistep checkout).
  • CSRF. Added AntiForgeryToken to the most important pages.
  • ACL. Added a new 'UploadPictures' permission.
  • ACL. Added a new 'Allow Customer Impersonation' permission.
  • Allow store owner to change the default view mode ("grid" or "list"). Just update 'catalogsettings.defaultviewmode' setting.
  • Admin area. Show order identifier on customer details page ('Orders' tab).
  • FedEx. Added 'Pass dimensions' option indicating whether package dimensions should be passed when requesting shipping rates.
  • Simplified [ProductLoadAllPaged] stored procedure.
  • Public store. Updated jQuery scripts to the latest version (but admin area still uses older scripts because the Telerik MVC Extensions doesn't work with jQuery 1.7.1).
  • Facebook and OpenID external authentication providers. Request and use the first and the last name (if 'autoregister' option is enabled).
  • Added a 'Keep alive' schedule task.
  • Insert an address during customer registration if possible (as per version 1.90).
  • Set the default rating of product review to 5 (it can be also configured by a store owner - 'catalogsettings.defaultproductratingvalue' setting).
  • Added a configuration page for Web Services plugin. But actually configuration is not required (just some description).
  • Add new return request tokens in message templates ('ReturnRequest.StaffNotes' and 'ReturnRequest.Status').
  • Order message templates now recognize customer tokens.
  • Allow setting picture size in the view. This update allow designer to set image size like this @Html.Action("ProductsAlsoPurchased", "Catalog", new { productId = Model.Id, productThumbPictureSize = 100 })
  • Added an option indicating whether products on category and manufacturer pages should include featured products as well (just set 'catalogsettings.includefeaturedproductsinnormallists' setting to 'true').
  • Admin area > System > Warnings. Ensure that the ratios of the primary exchnage currency and primary weight/dimension are set to 1.
  • Allow developers to add custom scripts or CSS files to admin area (@Html.AddScriptParts and @Html.AddCssFileParts support added).
  • Updated AddThis.com share button code.
  • Deleted obsolete settings (catalogsettings.hidepricesfornonregistered and shoppingcartsettings.wishlistenabled). They were not deleted during upgrade to 2.30.
  • Added a new setting for product thumbnail image size displayed on product details page.
  • Display month names instead of showing numeric 1..12 in the month dropdownlist (datepicker) for 'Register' and 'Customer info' pages.
  • Added 'Nop.Web.Framework.UI' namespace to theme Web.config files (\Themes\{Themes}\Views\Web.config).
  • Fixed all compilation warnings.
  • Froogle plugin. Use product variant picture if available instead of product picture.
  • Use WYSIWUG editor on campaign and message template pages (admin area).
  • Do not require write permission for the root directory (some hosting companies do not allow it).
  • Renamed 'AllowProductFiltering' to 'AllowProductSorting' (CategoryModel, ManufacturerModel, and ProductsByTagModel classes).
  • Deleted jquery.blockUI.js (anyway it wasn't used).
  • Deleted jquery.superfishmenu.js (anyway it wasn't used).
  • Deleted some unused files.
  • 'LoadActivePaymentMethods' method of 'IPaymentService' now accepts a customer as a parameter. That way it would be really easy to extend what payment methods are available for each user.
  • More clean Telerik CSS and JS registration (_AdminLayout.cshtml file).
  • Admin area. Do not throw exceptions if some entity is not found (just redirect a store owner to an appropriate list page).
  • Made the following classes partial: SystemCustomerAttributeNames, SystemCustomerNames, SystemCustomerRoleNames.
  • 'Free shipping over X' option. Added a new setting (Calculate 'X' including tax). It indicates whether 'Free shipping over X' option should be evaluated over 'X' value including tax or not.
  • Admin area dashboard > nopCommerce news. Set request timeout to 5 seconds.
  • Added two new events ('Order placed' and 'Order paid').
  • Renamed 'EmailSubscribed' class to 'EmailSubscribedEvent'. Renamed 'EmailUnsubscribed' class to 'EmailUnubscribedEvent'.
  • Made PrepareModel methods in the Nop.Web Controller classes callable (protected) from third party extensions.

Bugs

  • Medium trust issue fixed. Plugin DLLs were locked in medium trust periodically (now we just don't copy them each time the application is started). Note: If you're running nopCommerce in medium trust, then it's recommended to clear your \Plugins\bin\ directory after a new plugin installation or deployment.
  • One page checkout issue fixed when order total is 0.
  • Fixed Description.txt, Settings.txt, InstalledPlugins.txt parsing issue in some cases after uploading them in ASCII mode (FTP).
  • Customer could not place order or use external authentication providers if ASP.NET session mode was set to "SQLServer" or "Custom".
  • Entered product info (gift cart recipient name, email, product attributes) should be persisted after posting back (if wrong data has been entered).
  • Localized all hard-coded locale string resources.
  • Fixed some locale string resources.
  • Wishlist items should not be deleted after placing an order.
  • “Copy product” option didn’t work after setting picture store location to file system.
  • Information about used payment method was not included in the PDF invoice.
  • Recurring payments could not be processed (after an initial order has been placed).
  • PayPal Standard issue fixed when 'Pass product names and order totals to PayPal' option was enabled.
  • Return descriptive errors to Telerik grid when making AJAX updates (instead of “server returned error”).
  • Admin area. Added validation for NewsLetterSubscription model.
  • VAT issue fixed. Checking VAT number should do ToUpper() before calling VAT service.
  • Inject static cache manager using constructor into CatalogController and TopicController (previously it was hard-coded).
  • Cross-sell products (shopping cart page). At least one product variant of displayed products should be available.
  • One-page checkout. Skip 'select payment method' and 'payment info' pages if it isn't required.
  • PDF invoice generated in admin area did not use the correct currency when 'Display all applied tax rates' was enabled and customer used non primary store currency.
  • 'PrintOrdersToPdf' method of 'PdfService' and 'ProductListToHtmlTable' of 'MessageTokenProvider' should use passed 'language' parameter when formatting prices.
  • The shopping cart and wishlist pages. If a customer enters wrong quantity and press the 'Update' button, an item should not be removed from the cart.
  • Tax and 'Free shipping over X' issue fixed. Tax could become negative in some cases.
  • A lot of other 'Free shipping over X' issues fixed.
  • Clicking the "view order" link on the "Gift card edit" page referred to a wrong order page.
  • 'Dynamic price update' issue fixed. It didn't work with cultures that use a comma to display cents.
  • Minor issue fixed in 'Authorize' method of 'PermissionService' ('customer' parameter wasn't used).
  • Unpublished entities (products, product variants) were not exported (XML, Excel).
  • Updated exchange rate feed URL for Nop.Plugin.ExchangeRate.McExchange.
  • 'AllowBackInStockSubscriptions' property wasn't imported/exported (Excel).
  • Deleting orders should adjust inventory.
  • Checkout and reward points issue fixed. When the user chooses to use rewards on the checkout process when the rewards points are greater than the cart total and then returns back to shipping to go through the steps again, the payment step is skipped. Clicking on the payment step will now redirect to confirm with no way to get back to it except to login/logout.
  • 'Plugins' menu item couldn’t be hidden using ACL (when 'Hide admin menu items based on permissions' setting was enabled).
  • Admin area > Customer Settings. Hide 'State/province' form field if 'Country' form field is disabled.
  • A language or currency could not be deleted if it had an associated customer record.
  • Newsletter minor issue fixed (working currency identifer was used instead of working language).
  • Export orders to Excel should contain address info.
  • Excel export issue fixed. Newline character was returned as _x00D_ (just updated EPPlus.dll assembly to the latest version).
  • USPS shipping plugin 'overwrites' ZipPostalCodeFrom without checking if already set.
  • USPS shipping plugin excluded free shipping items when calculating declared value International rates.
  • 'Shipping by weight' plugin. Added the 'Calculate per weight unit' setting on the configuration page.
  • Customer emails with order details should contain 'Download' link (if we have downloadable products).
  • SeName wasn't used in Export/Import to Excel.
  • 'FullSizeImageUrl' property for some entities wasn’t set in CatalogController.
  • Telerik issue fixed. If you have a manufacturer or a category with quotes, then editing of products stops working because of teleric doesn't understand such name.
  • SMS providers (Clickatell and Verizon) missed closing tag.
  • Locale resources weren't deleted during plugin uninstallation.
  • Deployment file (Deploy.bat) should create \Plugins\bin directory.
Release Notes - nopCommerce 2.30 (November 19, 2011)

Highlight features

  • Performance optimization.
  • Back in stock notifications.
  • Product special price support (price will be valid between specified start and end dates).
  • Catalog mode (based on customer role). Added the following ACL permissions: ‘Display price’, ‘Enable shopping cart’, ‘Enable wishlist’.

Improvements

  • Performance optimization. Presentation layer model caching.
  • Performance optimization. Cache localizable values between requests (when you have more than one language).
  • Country and state localization.
  • Shipping method localization.
  • Currency localization.
  • Added a new GTIN property (Global Trade Item Number) to product variant. GTIN can include UPC (in North America), EAN (in Europe), JAN (in Japan), and ISBN (for books).
  • Added 'Allow customer to select page size on category/manufacturer/product tags pages'.
  • Plugins page (admin area). Added a link to a plugin configuration page (if available). Any specific plugin can have a configuration page now (it should implement 'IMiscPlugin' interface).
  • Allow store owner to manage SSL settings in admin area.
  • Display selected shipping method during checkout.
  • Bulk edit. Allow store owner to search product variants by name, category, and manufacturer.
  • Forums performance optimization.
  • Forums presentation models don't depend on entities anymore (they can be cached now).
  • SEO improvements. Set page title (HTML) for blog and news records.
  • Added username availability check in the registration form and 'My Account' page (when 'Allow customers to change their usernames' is enabled).
  • Added PDF setting to enable Letter page size for PDFs.
  • Added 'Allow an admin to view the closed store' (as per 1.90). Check to allow a user with admin access to view the store while it is set to closed.
  • Allow searching customers by date of birth (as per 1.90).
  • Schedule tasks are stored into database now.
  • Minor address format changes in PDF.
  • Shopping cart page. Use more user-friendly fancybox for showing terms and conditions pop-up window.
  • Added 'CommonSettings.EnableHttpCompression' setting (used to enabled/disable compression).
  • UPS shipping rate computation method. Added 'Insure package' option (if any item's price will exceed a certain value, extra charges will be added).
  • Better formatting for customer entered prices on product details page.
  • Ensure that any consumers of the repositories (IRepository) will only call DbContent.Set when they actually require data.
  • Added 'Clear cache' background task (as per 1.90). Disabled by default.
  • Updated Autofac to the latest version (2.5.2.830).
  • Ignore "favicon.ico" route.
  • Added a setting indicating whether order totals should be displayed on 'Payment info' tab of 'One-page checkout' page Because total cost of order is not calculated until checkout the user does not know the total when they click the "Continue" button after entering card details. Many customers will be nervous of clicking continue when they can't see the total of the order. Set 'ordersettings.onepagecheckoutdisplayordertotalsonpaymentinfotab' setting to 'true' in order to enable this option (disabled by default).
  • Allow store owner to specify minimum password length (6 by default). Just update ‘CustomerSettings. PasswordMinLength’ setting.
  • Display discount coupon code on shopping cart page. Customers should be able to see what discount coupon code was entered (for discounts with coupon code).
  • Added EnableIpn setting in PayPal Standard.
  • Moved ‘HideAdminMenuItemsBasedOnPermissions’ setting on UI.
  • Added a new setting ('customersettings.storelastvisitedpage') indicating we should store last visited page URL (disable to increase performance if you don't need it).
  • Plugins should install their locale resources in appropriate 'Install' method (previously plugin resources were stored into /App_Data/defaultResources.plugins.nopres.xml file).
  • Inject dependencies like HttpContextBase (instead of HttpContext.Current).
  • Removed 'IAutoStart' interface and 'AutofacContrib' library because they were not used (we already have IStartupTask interface).

Bugs

  • Weird characters instead of descriptive error text issue fixed.
  • Plugin issue fixed. The controller for path '/Admin/{0}/{1}' was not found or does not implement IController.
  • Facebook authentication issue fixed (with 'Auto register' option enabled).
  • Generated PDF files did not support non-English characters.
  • NopObjectContext.ExecuteStoredProcedureList() threw "An object with the same key already exists in the ObjectStateManager" exception when attaching an already attached entity.
  • IE 8 fails to load onepagecheckout.js script due to supplemental comma in lines.
  • Cached model validators didn't display messages in correct language (when you had two or more languages).
  • Category details page. Subcategory links and image titles used parent (or top-level) category name.
  • Category navigation block. Highlight category item according to currently viewed product (as per 1.90).
  • Forums didn't work in medium trust.
  • RTL (right-to-left) theme CSS issues fixed.
  • Message tokens used in email subjects should not be HTML encoded, subjects are sent as clear text.
  • Typo fixed renamed 'OpenAuthenticationStatus.RequresRedirect' to 'OpenAuthenticationStatus.RequiresRedirect'.
  • PDF Invoice issue fixed. Incorrect tax label was displayed when 'Display all applied tax rates' setting was enabled.
  • Removed all non-standard view locations (e.g. "~/Views/{not-current-controller}/PartialView.cshtml") so they can be overridden in themes.
  • Minor tier price calculation refactoring.
  • 'Fixed Rate' shipping module issue fixed. Decimal rates could not be saved in some cultures
  • Text should not be decoded when editing forum posts.
  • The text boxes should be cleared after news/blog comment has been posted.
  • Admin dashboard. 'Incomplete orders' report should ignore cancelled orders.
  • Removed duplicated <form> tag for some plugin configuration pages (admin area).
  • Added some hard-coded locale string resources.
  • Added some missing locale string resources.
  • Insert shopping cart item event issue fixed (inside the HandleEvent eventMessage.Entity was null).
  • 'Add to cart' button is disabled when 'Low stock activity' is set to 'Disable buy button'. The same should be done for 'wishlist' button.
  • This text (on the billing address selection screen) should be "Bill to this address".
  • Customer records couldn't be deleted when they had associated log records.
  • Fixed Telerik grid formatting issue on newsletter subscribers page in IE 8.
  • Customer info page. Save forum signature when both forums and signature are enabled.
  • 'Shipping by weight' and 'Tax by country state zip' had issues in IE.
  • Product details page issue fixed. Javascript alert messages with warnings should not be encoded.
  • IBlogService.GetAllBlogPosts should return IPagedList (not PagedList).
Release Notes - nopCommerce 2.20 (October 11, 2011)

Highlight features

  • Significant performance optimization.
  • One page checkout.
  • 'Web service' plugin (Web Services API).
  • RTL (right-to-left) support.
  • Added category and manufacturer templates.
  • Allow store owner to manage address fields on 'Register' and 'My account' page.
  • Added a generic event system.

Improvements

  • Updated jQuery to 1.5.1.
  • Allow customers to complete a payment after order is placed but not completed (for redirection payment methods).
  • PDF now works in medium trust.
  • Installation wizard. Added an option to create database if it doesn't exist.
  • Products can require that other products are added to the cart (Product X requires Product Y).
  • SEO optimization. Filenames of uploaded images are SEO friendly now
  • Canonical URL support added (disabled by default).
  • Product searching. Support searching of the localized values.
  • More advanced product import/export support. Added category/manufacture mappings and images (up to 3 images).
  • Added a setting to hide admin menu items if the access control list limits access to certain functionalities. Just set 'SecuritySettings.HideAdminMenuItemsBasedOnPermissions' setting to 'true'.
  • Added 'Store closed' option.
  • Rich editor. Added image browser.
  • Added a setting to display home page products with prices. Setting name is 'catalogsettings.usesmallproductboxonhomepage'.
  • Performance optimization. Use a stored procedure for loading products.
  • Performance optimization. Minified CSS files.
  • Performance optimization. Compress dynamic requests (if supported).
  • Performance optimization. It allows you to enable static file caching and compression for IIS 6 in web.config file (commented by default). Compressing could reduce their transfer size by about 400Kb (70% reduction).
  • Performance optimization. Added the following settings: ignore tier prices (sitewide), ignore discounts (site-wide), and ignore featured products (site-wide). Tick them in order if you don't use these options on your site.
  • Performance optimization. Don't use slow 'SearchProducts' method for loading related products on product details page.
  • Performance optimization. 'GetSpecificationAttributeOptionFilter' implementation is quite slow. So let's ensure that we have at least one filterable product specification attribute mapping before using it. It's useful when you DO NOT have filterable specification attributes. Just set 'CatalogSettings.EnsureWeHaveFilterableSpecAttributes' setting to 'true'.
  • Performance optimization. Placing order took several minutes using big databases.
  • CSS changes. Removed some hard-coded styles.
  • CSS changes. Added a print.css stylesheet file (used for printing order details).
  • Uploaded browserCaps.config file to prevent adding of guest records for each request made by search engine
  • Log error details when generating a promotion feed.
  • Allow store owner to view current wishlists (similar implementation as sales > current shopping carts)
  • Added a setting to allow Unicode chars in URLs (SeoSetting.AllowUnicodeCharsInUrls).
  • Fixed all compilation warnings.
  • Admin area. Added 'Restart application' button.
  • Moved the 'products by tag' page size into the catalog settings instead of hard coding it.
  • Show product images in admin area. Set 'AdminAreaSettings.DisplayProductPictures' to 'false' in order to disable it.
  • Localized some hard-coded resources.
  • New product templates implementation. Allow developers to set layout in templates.
  • Allow the store owner to set a certain number of days that the Return Request Link will be available in the Customer "My Account" area (365 days by default).
  • Allow store owner to reset the download count for a specific downloadable order product variant. It can be useful when a download has failed multiple times.
  • PayPal Standard. Allow store owner to specify IPN address (override the default one specified in PayPal control panel). It's useful when you have more than one store using same PayPal account.
  • Allow store owner to deleted selected log records (Admin area > System > Log).
  • Added 'Show a share button' settings in Configuration.
  • Optimized the order of styles and scripts. Correctly ordering external style sheets and external and inline scripts enables better parallelization of downloads and speeds up browser rendering time.
  • Load '/Scripts/slimbox2.js' file on product details page only.
  • Reduced the size of Facebook and Twitter images.
  • Admin area. Customers page. Made an 'Email' column clickable because the customer list does not have an 'Edit' column in the grid on some machines.
  • Validation. Ensure that currency exchange rate is greater than 0.
  • Set period of 'DeleteGuestsTask' to 10 minutes.
  • Added several new unit tests.
  • Store relative database file path in Settings.txt when using SQL Compact.
  • Added several new SQL CE database initializers.
  • Register the MemoryCacheManager implementation of ICacheManager as a SingleInstance (DependencyRegistrar).
  • PluginManager class refactoring.
  • Added one more value to 'PaymentMethodType' enum. It's 'Redirection'. Use it when a customer is redirected to a third-party site in order to complete the payment.
  • Allow developers to use admin views from within a plugin.
  • Allow overriding of Layout (master page) in themes.
  • BaseNopController (public store) refactoring.
  • Added RemotePost helper class (can be used by redirection payment methods).

Bugs

  • Deploy.bat file issue fixed (configuration wasn't set).
  • Tier price issue fixed. When there is just one tier (with min qty 1), the "buy more and save" table shouldn't be shown up. Since it only has one tier, with the price for unit 1+, there are no actual savings in the list.
  • Admin area grid issue fixed. Current page number is not reset when doing search.
  • Tax calculation issue fixed for customer roles with 'Tax exempt' flag. Ensure that a role is active.
  • Fixed 'LocalizedRoute' issue when running a site on an aliased domain.
  • Password recovery html issue fixed. Removed an extra div's closing tag.
  • Fixed 'Password recovery' and 'Account activation' email routes (didn’t work on some machines)
  • Customers were logged out after changing email or username (the authentication cookie wasn't updated)
  • Product tag issue fixed (unpublished products should not be considered).
  • Issue fixed. 'Address 1' field should be required.
  • Forum signature fields should not be visible when forums are disabled.
  • Product search issue fixed. Sorting took the first category/manufacturer found for OrderBy, whereas it should take the currently selected category/manufacturer for OrderBy.
  • Fixed 'Copy product' issue when you have attribute combinations.
  • Issue fixed. Don't load deleted product variants in PdfService.PrintProductsToPdf and ProductService.AdjustInventory methods.
  • Ensure that only registered customers can login.
  • "The requested service Nop.Data.IEfDataProvider has not been registered" issue fixed.
  • Reward points minor issue fixed (cancelling not completed order).
  • Vat number validation issue fixed. Call to check vat using the EU-vat service will fail if the country code isn't followed by a whitespace.
  • Russian ruble currency code should be RUB (RUR is outdated).
  • Added missed 'Manage Plugins' permission record.
  • You couldn't delete an email account with associated queued emails.
  • 'languageId' parameter passed to 'ProductListToHtmlTable()' method wasn't used when getting localized product name.
  • CSS. ‘Remove discount’ button was not displaying image in IE8
  • Search Page. Updated search page to not search or displaying search term min length warning message on /search page load, added message for searches with no results (restores 1.90 functionality)
  • Issue fixed. Advanced Search - blank search term - no error, but does not search.
  • Trailing space in setting or localization name should be trimmed.
  • Admin area. It was possible to leave 'Password' field blank when creating a customer.
  • App_Data/GeoIP.dat file wasn't copied after solution deployment.
  • Euro currency character issue fixed (didn’t work on some machines)
  • Updated Australia post shipping rate computation method to use 'GET' instead of 'POST' (HTTP method).
  • Delete address issue fixed (admin area).
Release Notes - nopCommerce 2.10 (September 2, 2011)

Highlight features

  • CMS plugins support (widgets)
  • OpenID, Facebook and Twitter authentication support
  • Added support for multilingual SEO URLs. Now you can have URLs such as 'http://www.yourStore.com/en/' or 'http://www.yourStore.com/ru/' for distinct languages (this option is disabled by default)
  • Performance optimization (added SQL Server indexes, "gradual" approach to load locale resources)
  • Added product templates

Improvements

  • Now plugins can add their own custom scripts and CSS files
  • Discount and gift card boxes should display a message after entering a coupon code
  • Encrypt password which is entered during installation
  • Don't allow entering of the product review text when it's not allowed (e.g., not registered)
  • Added MiniProfiler (disabled by default)
  • DatePicker dropdownlist is localizable now
  • Separated 'Disable add to cart' and 'Disable add to wishlist' options for product variants
  • Added a new setting (ShoppingCartSettings.RoundPricesDuringCalculation) setting which indicates whether calculated prices and totals should be rounded

Bugs

  • Removed 'Show on home page' option on manufacturers details page (it shouldn't be there)
  • Manage Countries and States missing in ACL list
  • Minor StrikeIron tax provider caching issue fixed
  • File permission validation issue fixed (during installation)
  • The variant name should be within the brackets and spaced from the product name (admin area > low stock report)
  • There was a typo in the label tag for the unsubscribe radio button that prevents the automatic selection.
  • Authentication (remember me) issue fixed
  • Store Name did not change footer
  • Return reasons/actions were inverted
  • Switching language returned the store to the main page when "Use images for language selection" option was enabled
  • Fixed 'view HTML source' issue in RichEditor with multiple languages
  • Fixed Froogle (Google Product Base) issues. Prepared it for the important changes to Google Product Search feed specification & policies (starting on September 22, 2011).
  • Low stock report shouldn't include “product attribute combinations”
  • NopResourceDisplayName caching issue fixed (when you have multiple languages)
  • Fixed product review page issue in Mozilla Firefox 6.0
  • Customer email confirmation issue fixed (when usernames are enabled)
  • 'Download file' tooltip has wrong text on product variant page
  • Store owner should not be able to disable system customer roles (such as 'Registered)
  • Manufacturer thumbnail size (media settings) was not used
  • 'No addresses' text was hard-coded (should be localizable)

Some notes

  • You should reconfigure 'Live Person' chat and 'Google Analytics' if you used them before. Now they‟re implemented as widgets
  • Added 'Supported nopCommerce versions' property to plugins. Now you should specify it in 'Description.txt file.
  • Before using the updated „Froogle‟ plugin you have to reinstall it (uninstall and then install it on the plugin list page in admin area)
Release Notes - nopCommerce 2.00 (August 1, 2011)

nopCommerce 2.00 was rewritten from scratch. Our development efforts were focused on moving nopCommerce to ASP.NET MVC 3.0, architecture improvements, further enhancements and fixing bugs. We also decided not to ship nopCommerce with all that payment modules that were included in the previous versions (about 35 modules). Only some of them are available out of the box. All other payment modules will be available as plugins.

Highlight features

  • Architecture improvements
  • Moved to ASP.NET MVC 3.0 (Razor syntax)
  • Really pluggable architecture (just drop a plugin to the /plugins folder in your nopCommerce directory)
  • SQL Server Compact support
  • Code-First Development with Entity Framework 4 (data access)
  • More flexible ACL implementation
  • More user-friendly admin area
  • Added unit tests

Improvements

  • Performance optimization
  • reCAPTCHA integration
  • New tier prices implementation (now can be configured based on customer roles)
  • Several discount requirements can be configured per discount
  • Allow store owner to create a new purchased gift card without placing an order
  • Some of existing discount requirements didn’t work for guests
  • Search for customers by name in administration
  • Merged product reviews and ratings options.
  • Email wishlist to a friend
  • Admin area. Show operation status after it's completed (Save, Delete buttons)
  • New installation wizard (The orchard project contribution)
  • Simplified register page. Removed a lot of fields that were not used at all.
  • Fill the "EstimateShipping" module on load with the country/region/zipcode of the current customer
  • Allow store owner to manage the number of product tags that appear in the tag cloud
  • Removed warehouses and pricelists features because they were useless
  • A lot of refactoring and other improvements

Bugs

  • Tax rounding issue fixed
  • Some shipping issues fixed
  • Download catalog as PDF. Currency values had 4 decimal places
  • Select payment/shipping method radio button text was not clickable
  • Hide prices for non-registered customers didn’t work on tier prices
  • Renamed PayPal PTI to PDT
  • MS Excel importing issue fixed
  • A lot of other bugs fixes
Release Notes - nopCommerce 1.90 (December 7, 2010)

Highlight features

  • Architecture improvements
  • Improved existing themes (usage of three-column master page & increased page width)
  • Allow store owner to manage category access by customer role (a store owner can deny access to any customer role)

Improvements

  • Performance optimization
  • New discount type - 'Applied to order subtotal' (discount applied before tax)
  • New discount requirement - 'Customer must be registered'
  • New discount requirement - 'Customer has all of these product variants in the cart'
  • New discount requirement - 'Customer has one of these product variants in the cart'
  • More user-friendly admin area. Added "Save and Continue Edit" buttons. When editing an item, "Save" returns to continue editing which is great at times. A "Save and return to list" would save the edits and return to the list in one click, rather than 2 clicks.
  • More user-friendly shopping cart page
  • Improved one-page checkout to work without postbacks
  • Canonical URL support for products, categories, and manufacturers (used to eliminate loss of search engine page rank due to duplicate content penalties for multiple URLs linking to same page content)
  • Allow store owner to change 'Pictures are stored into database / file system' option in production environment
  • Negative price adjustment support for product variant attributes
  • Allow customers to email their wish lists (configurable)
  • Minimum order sub-total support
  • Email a store owner when a customer makes a return request
  • Email a customer after return request state change
  • Allow customers to remove applied discounts with coupon code (shopping cart page)
  • USPS Selectable Rates (Services). USPS carrier services selectable in admin area
  • UPS Selectable Rates (Services). UPS carrier services selectable in admin area
  • FedEx Improvements: FedEx carrier services selectable in admin area, additional fee added to each rate (optional), option to use discount or list rates, text names for services (e.g. "FedEx Priority Overnight" instead of "PRIORITY OVERNIGHT")
  • Improved 'Fixed Rate Shipping' shipping rate computation method. Allow store owner to specify rate for each shipping method (NOTE: This method should be reconfigured if it was used)
  • SEO friendly URLs for product tags
  • SEO friendly page title of product tag page
  • SEO changes (use <h1> tag on product details page)
  • Allow store owner to select a Google Analytics script placement (before </head> or </body> tag)
  • Allow store owner to view product variants on products page (admin area > products)
  • Admin Area. Added a 'Warnings' page
  • Allow store owner to view 'System information' in admin area
  • Forums. Relative date format support (option to display 'Today, Yesterday, 1 month ago...')
  • Allow store owner to filter system log by date range, message or log type
  • Allow store owners to view the store while it is set to closed
  • Option to select time zone during registration ('Time zone' form field)
  • Option to display page execution time at the bottom of all pages in public store
  • Allow store owner to manage maximum number of items allowed in cart/wish list
  • Option to show the number of products besides each category (configurable)
  • Option to display manufacturer part number (disabled by default)
  • Option to vote on polls for anonymous users (configurable)
  • PM (private messages) email notifications (configurable)
  • Allow customers to change their username (configurable)
  • 'Search Products' page. Allow store owner to set product page size
  • 'New customer registered' store owner e-mail notification (configurable - disabled by default)
  • Allow store owner to choose whether he wants to export all or only active (confirmed) newsletter subscriptions
  • When clicking 'Use same as shipping address' button (checkout process) automatically select the address for the user and move to next step. Rather than copying values then having to click 'Next' button.
  • Admin area. Advanced search of locale string resources
  • 'Online customers' module. Display total number of registered customers and total number of visitors
  • 'Online Customers' module. Store maximum number of visitors
  • Allow customers to select a store theme (configurable - disabled by default)
  • Improved PDF packaging slips
  • Display tooltip that EU VAT numbers should be entered without country code
  • Improved 'New VAT submitted' message template (include the status of VAT number and name and address of registrant - very useful info when checking validity)
  • Modified 'Products in Lines 2' category template to support price and specification filters
  • Allow store owners to download backups
  • When a customer registers during checkout, after completing registration they should be redirected back to shopping cart page
  • Skip 'select payment method' checkout step if order total equals zero
  • If customers were using reward points and they had more reward point value than the total order value, they were still required to select a payment method
  • PayPal Standard. Validate order total in PaypalPDTHandler.aspx
  • Allow store owner to delete old PDF and excel files (Admin area > System > Maintenance)
  • Added advanced search hyperlink to the main forum page
  • Render order notes in PDF order invoices (disabled by default)
  • Promotion providers. Added input box for product thumbnail size
  • Promotion providers. Allow store owner to generate product feeds in distinct currencies
  • Display entity name during its editing (product/category/manufacturer/customer details pages)
  • Web.config file. Set ValidateRequest to "false"
  • Shipping settings (admin area). Hide 'Value of X' field in case 'Free shipping over X' is unchecked
  • Added a hyperlink to 'Forgot password' page to administration login page
  • Standardized use of color definitions in style sheets to hexadecimal
  • CSS. Removed several hard-coded styles
  • Show 'Password successfully changed' message after changing password in admin area
  • Preselect a shipping method and payment method during checkout
  • 'Impersonate customer' functionality. 'Finish session' link should take administrator back to the 'administration' page a store owner started from
  • Localized 'DuplicateEmailErrorMessage' and 'DuplicateUserNameErrorMessage' properties of CustomerRegister control
  • Admin area. Bigger input box for setting & localization values
  • Ensure that reward points are applied only to registered user
  • Display customer email on 'customer reports' page (admin area)
  • Developers. Source code refactoring
  • Developers. Usage of IoC/DI pattern
  • Developers. Pass entities as parameters to manager methods
  • Developers. Use T4 for generating NopObjectContext
  • Developers. Naming changes (Manager -> Service)
  • Developers. Moved all promotion provider libraries to the new 'PromotionProviders' folder
  • Developers. Removed a lot of stored procedures
  • Developers. Added OrderPaid event to EventContext class
  • Developers. Merged CreditCardTypeManager, PaymentStatusManager, PaymentMethodManager and PaymentManager classes
  • Developers. Merged ShippingMethodManager, ShippingRateComputationMethodManager, ShippingStatusManager and ShippingManager
  • Developers. Merged LocalizationManager and LocaleStringResourceManager classes
  • Developers. Renamed IpBlacklistManager to BlacklistManager
  • Developers. The following tables were deleted: Nop_DiscountLimitation, Nop_DiscountRequirement, Nop_DiscountType, Nop_LogType, Nop_LowStockActivity, Nop_OrderStatus, Nop_PaymentStatus, Nop_ShippingStatus, Nop_ShoppingCartType
  • Developers. Better control over 'Online Customers' module (you can decide which page should or should not be tracked)
  • Developers. Renamed Picture.Extension property to MimeType
  • Developers. Removed Nop.HttpModules.BlacklistModule and Nop.HttpModules.MembershipModule assemblies
  • Developers. Removed BaseNopNestedMasterPage class
  • Developers. Added BaseNopFrontendMasterPage base class for public store master pages
  • Developers. Added BaseNopFrontendPage base class for public store pages
  • Developers. Added BaseNopFrontendUserControl base class for public store user controls

Bugs

  • Medium trust issue fixed (use FCKEditor instead of HTMLEditor)
  • Added ‘MultipleActiveResultSets=True’ to connection string
  • PNG/GIF transparency issue fixed
  • Deleting product variant attribute issue fixed
  • One-page checkout and PayPal Express issue fixed
  • Turned off case sensitivity for discount coupon codes
  • EURO currency format issue fixed
  • Sitemap issue fixed. 'changefreq' property should be lowercase (SiteMapSEO.aspx)
  • Credit card number and trailing spaces issue fixed
  • Free shipping issue fixed. If one product that has free shipping and one product that doesn't require shipping are placed in the basket, a shipping fee is applied here but shouldn't be
  • Added missed 'ManageEmailSettings' customer action (ACL)
  • Category details page. Filtering products by specification attributes with international names issue fixed (Internet Explorer)
  • Shared SSL issue fixed ('SharedSSL' app setting renamed to 'SharedSSLUrl'; new 'NonSharedSSLUrl' app setting)
  • Anonymous checkout discount issue fixed
  • Minor dynamic price update issue fixed
  • 'Customer enters prices' products in distinct currencies minor issue fixed
  • Admin area. Editing guest minor issue fixed
  • Pictures stored on file system minor issue fixed. When you click 'delete' for a product image it does not delete the original image
  • Fixed bug in BBEditor "quote" button functionality (in case we have [code] tag inside [quote] tag)
  • Autocomplete issue fixed for FF and Chrome browsers (replaced AutoCompleteType='Disabled' with autocomplete='off')
  • Continue shipping rate computation on error with multiple providers
  • SagePay payment method issue fixed
  • Svea (hosted) payment gateway issue fixed. 'Success' parameter was not validated on return page
  • PayPal Standard issue fixed when 'Pass product names and order totals to PayPal' option is enabled (shipping fee is missing)
  • Tier pricing/Customer role and product variant discounts issue fixed
  • 'Online customers' module. Last URL query string parameters were not stored
  • Mini shopping cart + 'shopping cart' link displayed incorrect product quantity when there is more than one of an individual product in the cart
  • Currency issue fixed when 'Display all applied tax rates' option was enabled
  • 'Allow anonymous users to write product reviews' and 'Allow anonymous users to set product ratings' issue fixed
  • One-page checkout minor issue fixed
  • Admin area ('affiliates' and ' topics). Generating a link issue fixed
  • LogTypeEnum.Unknown issue fixed
  • Admin area > DashBoard. DateTime (timezone) issue fixed
  • Password protected topics issue fixed when they are used as nested topics (Topic.ascx control)
  • Wrong order date in customer emails issue fixed
  • Exporting orders to excel minor issue fixed
  • Cancelling recurring payments minor issue fixed
  • CSS minor issue fixed (Customer profile > User latest posts)
  • Maximum length of customer email/username was increased to 100
  • Added static lock object to SEOHelper.InitializeSeoCharacterTable method
Release Notes - nopCommerce 1.80 (August 30, 2010)

Highlight features

  • Phone order support (allow store owner to place an order via admin panel)
  • RMA (return management). Customers can submit return requests from your store
  • Display all applied tax rates (e.g. 7%, 15%) on shopping cart and order details pages (configurable - disabled by default)
  • The European Union Value Added Tax (EU VAT) support (Company VAT Number)
  • Partial refund support
  • Multiple email accounts (senders) support
  • Backorder support
  • Cross-sells support
  • 'Customers Online' module
  • Use ASP.NET Chart control for reports
  • New discount requirement - 'Billing country is...'
  • New discount requirement - 'Shipping country is...'
  • New discount requirement - 'Applies if customer has previously spent x.xx amount'
  • New discount limitation - 'N Times Only'
  • New discount limitation - 'N Times Per Customer'
  • CCAvenue (India) payment method
  • Physical gift card support (customer is not asked for sender/recipient emails)

Improvements

  • Performance optimization
  • Source code refactoring
  • Added an 'Estimate shipping' option on shopping cart page (can be disabled)
  • Allow store owner to view all existing shopping carts on a single page
  • Allow store owner to manage newsletter subscription list
  • Allow store owner to import subscriber list from CSV (tab-delimited) file (Line format: email_address \t is_active (e.g. [email protected] \t true))
  • Allow store owner to find customers by date of birth (ability to offer birthday gifts to customers)
  • Allow store owner to find orders by GUID (or part of GUID)
  • 'Call for price' option
  • Enhanced 'Fixed rate' tax provider. Now a store owner can configure fixed rate per tax category (should be reconfigured if this provider was active)
  • Allow store owner to limit shipping methods to configured ones (applied to 'Shipping By Order Total', 'Shipping By Order Weight' and 'Shipping By Country & Order Weight' shipping rate computation providers)
  • More user friendly sitemap page
  • PDF. Packaging slips and invoices include the shipping method now
  • Blog. Added tag support.
  • Blog. Group posts by year/month.
  • Blog. Moved blog page URLs to SEOHelper.
  • Forums. Advanced search support
  • Topics. 'Include in sitemap' option
  • Topics. Allow store owner to create password protected pages
  • Topics. Added 'Topic URL' on topic details page (admin area)
  • Admin area. Added 'Affiliate URL' tooltip on affiliate details page
  • Pass product names to PayPal Standard (configurable - disabled by default)
  • Forums. Added the following message template tokens %Forums.PostAuthor%, %Forums.PostBody%
  • Forums. Latest forum posts paging support on profile page
  • Display detailed payment info (supports capture/refund/void/recurring payments) for each payment method
  • Configurable minimum order amount
  • Display product SKU in public store (configurable)
  • Option to display the quantity of a particular product which is in stock
  • New checkout/product attribute control type – DatePicker
  • Allow users to manage their forum subscriptions
  • Ensure that gift cards could not be applied for recurring orders
  • More user friendly order details page (public store)
  • Localized some of hard-coded locale resources
  • Allow store owner to enter product prices more than 999,999
  • Disabled viewstate on some of user controls (reduced page size)
  • 'Order to subtotal' discounts are applied to order total now ( + renamed to 'Order to total')
  • Allow store owner to submit Froogle feed via FTP
  • Added Preview buttons on category/manufacturer/product pages
  • Added 'select all' checkbox on private message details page (Inbox)
  • Added 'select all' checkbox on 'add product to category', 'add product to manufacturer', 'related products' pages
  • Allow store owner to select preferred exchange rate provider
  • Allow store owner to enable currency rate auto updating (disabled by default)
  • Improved SMS implementation
  • Added email SMS provider (Verizon)
  • More user friendly 'Tax Settings'page (admin area)
  • More user-friendly 'Global Settings' page (new 'Products' tab, changed some options ordering)
  • Allow store owner to search product variants by SKU
  • Moved Google Analytics settings to Global Settings page
  • Option to remove favicon ('Global settings' page)
  • Option to support non-western chars in SEO names (e.g. convert 'é' to 'e')
  • Ensure that gift card activation/deactivation order status and reward points awarded/canceled order status could not be set to Pending
  • Option to enable/disable a 'Newsletter' form field on registration/my account pages
  • Admin area. Allow store owner to hide newsletter subscription box
  • New 'Display cart after adding product' option
  • Option to show/hide 'My Downloadable Products' tab on My Account page
  • Allow store owner to disable URL ReWriting
  • Option to remove of hide the Gift card / Discount options
  • Minor poll changes
  • Admin area. New blog/news comments, product reviews pages
  • Allow store owner to update CC for manual payment method
  • Admin area. Enhanced categories page by 'Published' and 'Display Order'
  • Admin area. Display payment details on order details page (transaction identifiers)
  • Better jQuery binding (header)
  • Added CVV2 validator for Credit Card payments (3-4 digits)
  • Display manufacturer info on product details page
  • Admin area. Minor product details page ('Product Variants' tab) changes (don't display stock when manage stock option is set 'Don't track inventory' or 'Track inventory by product attributes')
  • Minor SEOHelper changes
  • Registered customers can click on their own email/username to access 'My Account' page
  • Simplified ProductBox1.ascx and ProductBox2.ascx controls
  • Product prices were displayed without discount in ProductBox1.ascx and ProductBox2.ascx controls
  • Admin area. More user friendly paging on the following admin area pages: Activity Log, Categories, Customers, Locale string resources, Log, Manufacturers, Message queue, Products, Settings
  • Removed Nop_ProductType table because it was not used
  • Moved DatePicker control to Nop.Controls assembly
  • More user friendly range error messages
  • Added Target='_blank' to 'View address on Google Maps' hyperlink (admin area - order details page)
  • Changed request validation mode on Login.aspx and Register.aspx pages
  • Modified category 'Products in Lines 1' control to display subcategories with images
  • Product with 'customer enters prices'. Allow customer to enter decimal prices.
  • Changed tab ordering on customer details page (admin area)
  • Minor DecimalTextBox enhancements (new decimal format used)
  • Changed admin area tooltip wrapping

Bugs

  • Issue fixed. Gift cards were not created on recurring orders except the first one
  • Increased zip code maximum length to 30 chars
  • USPS minor issue fixed (international requests)
  • Shopping cart page and terms of services issue fixed
  • 'New products' issue fixed
  • 'Related products' issue fixed
  • Copy product issue fixed (product attribute combinations)
  • Topic control minor bug fixed (rendered empty meta keywords and meta description)
  • Total forum post count wasn't updated after deleting a forum post
  • Deleting the first post of forum topic caused an exception
  • Formatting too long customer name issue fixed (configurable maximum length)
  • Zip code was not passed to PayPal Standard
  • Fixed issue with nested quotes on forum
  • Export to Excel. Not all of long description was exported (200 chars maximum)
  • Nop_ProductLoadAllPaged, Nop_ProductAlsoPurchasedLoadByProductID stored procedures small issue fixed
  • Too long Order.CardName issue fixed (caused decryption error)
  • Minor issue in ShoppingCartManager.GetShoppingCartItemWarnings method fixed
  • Added no-wrap style to the header menu
  • LocalizationManager.DefaultAdminLanguage minor issue fixed
  • AddThis.com + SSL issue fixed
  • Fixed some typos (order editing tooltips)
Release Notes - nopCommerce 1.70 (July 7, 2010)

No major features have been introduced with this release as our development efforts were focused on moving to ASP.NET 4.0, further enhancements and fixing bugs, but it does include the following changes:

Highlight features

  • Moving to ASP.NET 4.0 (Visual Studio 2010 is required to edit source code)
  • Simplified data access. Using ORM now (Entity framework 4.0)
  • QuickBooks integration
  • Performance optimization

Improvements

  • USA ePay (integrated) payment module (Thanks, Chris Curtis)
  • Added refund/capture support for QuickPay payment method
  • Google AdSense integration
  • Updated PayPal SOAP API to the latest version (63.0)
  • Global event context (developers)
  • Splitted "Assigned to product variants" discount type to "Assigned to product variants" and "Assigned to categories"
  • New promotion providers management UI
  • PriceGrabber / Yahoo Shopping, become.com promotion providers
  • New themoneyconverter.com exchange rate provider (disabled by default)
  • Gift card activation/deactivation by order status (similar to reward points)
  • Skip/hide "Payment info" page if order total is 0 (configurable for each payment method)
  • More user friendly specification attribute details page
  • More user friendly message template & topic localization
  • Zoom-in capability for main product image
  • Allow store owner to disable PDF/Excel options for the entire store (useful in medium trust)
  • "Check all" for "Payment/Shipping restrictions by country" option
  • Added tooltip resources for RSS buttons
  • Minor admin UI changes
  • Queued email bulk delete option
  • Extended polls with "Show on home page" and "start/end date" properties
  • The option to display the breadcrumb or not
  • Moved MenuControl.ascx from \Modules to \Administration\Modules directory
  • More user friendly weight formatting on order details pages
  • Packaging slips are saved into file/ImportExport folder now

Bugs

  • Copy product feature didn't copy 'prices by customer roles'
  • HTMLEditor caused JS errors on some servers
  • Uploading "image/icon" (not "image/x-icon") favicon issue fixed
  • Typo fixed in function/property names (Weigth > Weight)
  • Fixed design issue on advanced search page in IE 6.0
  • Returning to a wrong page after clicking "Continue shopping" button
  • In Administration\Tax\General\TaxRates.ascx file the HeaderText field should match the Text field
  • Minor language flag images issue fixed
  • Australia Post issues fixed (minimum dimension validation and multiple packages)
  • UPS issue fixed (when shipped from outside US)
  • Tier price and product attributes with price adjustment issue fixed
  • "Assigned to product variant" discount minor issue fixed (when discount amount is more than product price)
  • "Assigned to shipping" discount issue fixed
  • Product bulk edit issue fixed
  • Textboxes didn't feet column width on "Bulk Edit Products" page
  • SEOHelper.RenderMetaTag() function didn't create a new tag
  • Added the language name, as a tool tip (html title) and alternate text, to the image button when images (flags) are used for language selection.
  • We don't need to reset default customer billing/shipping addresses after updating shopping cart (CustomerManager.ResetCheckoutData method)
  • Filenames with spaces were truncated upon download in FireFox
Release Notes - nopCommerce 1.60 (June 1, 2010)

Highlight features

  • Catalog (categories, products etc) localization
  • Reward Points System
  • Product tags
  • Configurable checkout attributes (such as "Gift Wrap" or "Enter custom message")
  • Configurable customer attributes (such as "Date of birth", "Phone number")
  • Individual prices can be specified for individual customer groups
  • Allow customers to enter product price (if enabled)
  • More analytics and reporting
  • Backend order editing

Improvements

  • Social bookmarking
  • Allow store owner to hide prices for non-registered customers
  • Allow store owner to manage whether checkout terms and condition should be accepted before checkout
  • Dynamic price update on product details page when a product has attributes with price adjustments (disabled by default)
  • Gift cards are applied to order total now (not order subtotal)
  • Batch product editing/deleting
  • Batch product image uploading
  • Products sorting (front end)
  • AliPay (China) payment module (beta)
  • Ability to upload images using HTML Editor (admin area)
  • More SEO friendly
  • New shipping status – Delivered
  • New product attribute control type supported - multiline textbox
  • Performance optimization
  • Allow store owner to upload PDF logo
  • Allow store owner to decide whether a message template is active (should be sent)
  • Allow store owner to display certain categories on home page
  • Allow store owner to specify flag image for a language and use a new flag image control for language selection (disabled by default)
  • Allow store owner to send a test SMS
  • Product image thumbnails in admin area (disabled by default)
  • Store IP for news comments, blog comments, product reviews
  • Allow anonymous users to email a friend (configurable)
  • Simplified input of a customer birth date
  • Display recurring product period info on shopping cart page (for recurring products)
  • URL rewriting for forum groups, forums and topics
  • Paging on localization page (admin area)
  • Paging on blog page
  • News archive page
  • Allow store owner to view customer wishlist on a customer details page (admin area)
  • More user friendly %Order.Product(s)% message template token
  • Rename Froogle to Google Base
  • Added select all checkbox for Activity Types grid (admin area)
  • New date time format on product review/news/blog/forums pages
  • Allow store owner to edit customer avatar
  • Allow store owner to create sticky forum topics
  • Forums. Added a confirmation box for "Delete" post/topic buttons
  • More forum subscription validation (a subscribed user should be active and not deleted)
  • Allow a customer to remove applied gift cards during checkout
  • New admin category view
  • Customer notifications when receiving new PM (alert)
  • Show warning if a discount could not be applied during checkout
  • Renamed "apply to order total" discount type to "apply to order subtotal"
  • Source code refactoring

Bugs

  • Import language pack connection timeout issue fixed
  • Minor CSS bug fixes
  • Save Order.PaidDate when order total is zero
  • Product specification attribute filter control issue fixed (with international names)
  • Nop_NewsLetterSubscriptionLoadAll stored procedure bug fixed
  • "When creating an attribute, an 'is pre-selected' value can cause an error" bug fixed
  • "Order totals" report minor bug (admin area > dashboard)
  • SecurePay and one page checkout bug fixed
  • SagePay bug fixed
  • iDeal product names error fixed
  • One-page checkout issue fixed
  • PayPal Direct recurring payment issue. CreditCardTypeSpecified property was not specified.
  • Froogle issue. "Missing Product Type Values"
  • Continue shipping rate computation on error with multiple providers
  • Issue with a creation date for the "product copy" option
  • Renamed "Is sender notified" to "Is recipient notified" (gift cards)
  • Minor discount issue fixed
Release Notes - nopCommerce 1.50 (March 23, 2010)

Highlight features

  • Gift Cards
  • Access Control List
  • Activity Log
  • Recurring Products
  • New Payment Statuses: Refund, Void
  • Stock Management by Product Attributes (such as, color and size)
  • One-page Checkout
  • Do Not Store Credit Card Information (even encrypted). PA DSS Compliance Requirement!
  • Restrict Available Shipping Methods by Country
  • Restrict Available Payment Methods by Country
  • Live Chat Integration
  • SMS Notifications
  • New Discount Type - "Assigned to Shipping"
  • Discount Requirements
    • None
    • Must be assigned to customer role
    • Had purchased all of these product variants
    • Had purchased one of these product variants
  • Discount Limitations
    • Unlimited
    • Can be used one time only
    • Can be used one time per customer
  • Discount Usage History
  • New Shipping Modules:
    • Australia Post
    • Canada Post
  • New Payment Modules:
    • Amazon (SimplePay)
    • Assist (Russia)
    • Beanstream
    • ChronoPay
    • CyberSource
    • Dibs (Sweden)
    • iDeal (Netherlands)
    • Moneris
    • Pay in store
    • PayJunction
    • PayPoint
    • QuickPay (Denmark)
    • SagePay
    • SecurePay (Australia)
    • Sermepa (Spain)
    • Svea (Sweden)
    • USAePay
  • Several Shipping Rate Computation Methods used Simultaneously (such as, FedEx and UPS)
  • System Maintenance (Backup/Restore Database)
  • Weights and Dimensions (Managed by Administrator)


 

Improvements

  • Simplified CSS
  • More user friendly administration area
  • Allowed IP address list (administration area access)
  • Mini shopping cart
  • Copy product option
  • New product template
  • Search Engine Optimization
  • Shipping tracking number
  • Configurable Customer Registration Methods
    • Standard
    • Email Validation
    • Admin Approval
    • Disabled
  • Downloadable Products
    • License file can be attached
    • Can have an user agreement
    • 'Unlimited downloads' or 'Number of days' (when customer has access to product)
    • User friendly file names
    • "Download activation type" option
      • When order payment status is Paid
      • Manual activation
    • More user friendly work (client side)
  • New newsletter implementation
    • Guests can subscribe
    • Ability to export customers (emails) subscribed to newsletters
  • Pictures stored on dard disk (configurable Option)
  • Display Order Notes to Customers
  • ‘Out of Stock’ Orders
  • Display product stock availability option
  • Reorder
  • SiteMap
  • USPS supports international requests
  • FedEx supports residential rates
  • Forums
    • Active topics page
    • "Quote" option
    • Allow guests to create posts (Configurable Option)
  • Language pack export
  • Store owner can send emails to a customer (via Administration Area)
  • Store owner can send private messages to a customer (via Administration Area)
  • Customers can mark private messages as Unread
  • Separate login page for administration Area
  • FCKEditor replaced by HTMLEditor
  • iTextSharp was replaced by PdfSharp
  • PDF capabilities
    • User friendly PDF Invoices
    • Customers can print invoices in PDF Format
    • PDF Catalog
    • Packaging slips (generated in PDF)
  • Improved WorldPay payment module
  • Improved 2Checkout payment module
  • Improved Paypal IPN
  • Administrator can enter additional payment fee for most payment methods
  • User friendly installation process
  • Administrator can reset customer password
  • Product reviews must be approved (configurable option)
  • Allow anonymous users to write product reviews (configurable option)
  • Allow anonymous users to set product ratings (configurable option)
  • Store owner can set number of
    • Recently viewed products
    • Recently added products
    • Best sellers on home page
    • Products also purchased
  • Administrators can specify BCC (Blind Carbon Copy) for each message template
  • Administrators can view shipping address using google maps
  • SEO can be specified for topics
  • New 'Add to cart' button in Wishlist
  • Product cost property
  • Order paid date property is stored now
  • Store owner can update favicon via administration Area
  • Display validation summary on registration and account pages
  • Customer can change email address
  • Manufacturers page
  • Store purchased product attributes in XML
  • Store owner can clear popular search stats
  • Updated jQuery to Version 1.4 (development)
  • Better StoreRoleProvider (development)
  • New pre-defined Countries
  • User friendly import functionality (administration area)
  • Optimized "DeleteExpiresCustomerSessions" task
  • ScriptManager removed from master page (development)
  • CSS adapters removed (development)

Bugs

  • Import / Export bugs
  • Filter by attributes
  • Compare products
  • 'Assigned to whole order' discount (with tax enabled)
  • PayPal Standard return page
  • Order details page localization
  • "Server cannot modify cookies after HTTP headers have been sent" error does not exist
  • Google Checkout and anonymous checkout bug
  • Wrong Meta Description and Meta Keywords (after Postback)
  • DatePicker control - date formatting bug (not US locales)
  • Login page and CAPTCHA bug in IE 6.0
  • Froogle expiration date bug
  • Unicode characters are now supported in PDF
  • PDF invoice includes product attributes
  • Google Checkout image button and SSL issue resolved
  • Does not display deleted and unpublished categories in Bread Crumb
  • Updated product details page (specification tab was displayed with "reviews" tab Only)
  • "Navigation only for registered customers" option restrictions removed
  • Downloadable products could not be downloaded by anonymous customers
  • Email templates missed some shipping information
Release Notes - nopCommerce 1.40 (December 6, 2009)

Highlight features

  • W3C compliance (XHTML)
  • Admin area localization
  • Paypal IPN (Instant Payment Notification)
  • FedEx shipping provider
  • Export/Import customers (Excel) - doesn't work in medium trust
  • Export/Import products (Excel) - doesn't work in medium trust
  • Export orders (Excel) - doesn't work in medium trust
  • Private messaging
  • eWay payment module (hosted solution - UK, NZ, AU)
  • "Fixed rate" shipping provider
  • "Fixed rate" tax provider
  • Product specifications: Multi-Value (pre-defind). Store owner can define multi-value Product specs, such as Processor (AMD 64X2, Intel Core 2 Duo), and not having to repeat them typing again and again for each product
  • Product specifications: Filtering by specification on category/manufacturer pages (e.g. color, size)
  • PDF Order receipts - doesn't work in medium trust
  • Unlimited textbox product attributes
  • "Customers who bought this item also bought" option


 

Improvements

  • Admin area permomance optimization
  • Improved image generation
  • Downloadable products
    • Allow store owners to upload sample files
    • Store owners can specify maximum number of allowed downloads of purchased products.
    • Made storing downloads in database configurable
  • Show best sellers on home page
  • Generic provider model (source code)
  • Refactoring (source code)
  • Admin area requires SSL now (if enabled)
  • Moved "UseSSL" and "SharedSSL" settings to web.config
  • All credit card info is encrypted now
  • Allow store owner to add a custom note to a customer
  • Admin area. Allow store owner to view shopping carts of customers
  • Admin area. Don't show "[email protected]" email for guest customers
  • Admin area. Allow store to filter guest customers (customers page)
  • Admin area. DashBoard enhancements
  • Customers can be tax exempt
  • New product review, news comment, blog comment notifications (email)
  • Google Checkout. Capture support
  • Google Checkout. Authorize callback request
  • Checkour. Navigation back support
  • "Allow navigation only for registered customers" option.
  • Allow store owner to search customers/orders/queued emails using null dates by default
  • Use 4 digits to store currency rate
  • Added resource expression builder that supports nop resourses
  • Forums. Navigate to the latest page of topic after new post is added
  • Confirm new password on password recovery page
  • More user-friendly forum support
  • Extended %Order.Product(s)% email token to display product attributes, text options and order totals
  • Moved ScriptManager to master page
  • Masked credit card numbers
  • Show warning when Captcha code is not entered
  • Allow store owner to delete order notes
  • Allow store owner to specify whether to hide advertisements on admin area dashboard
  • Updated AjaxControlToolkit.dll to the latest version
  • Updated MS Enterprise Library (4.1)
  • Updated jQuery (1.3.2)

Bugs

  • Discounts were not displayed on wishlist page
  • Paypal PDT bug
  • "Contact Us" form (sending emails bug)
  • Real-time shipping rate computation methods bugs (multiply packages)
  • Allow to get fixed shipping rates for non registered customers
  • Use category/manufacturer thumbnail size instead of product thumbnail size
  • CAPTCHA image caching
  • Validate category hierarchy
  • [Nop_OrderProductVariantReport] stored procedure bug fixed
  • Shipping fee, payment fee formatting bug on order details page
  • OrderManager.OrderPlaced() method. Reset customer checkout data only if an order was successfully placed
  • Checkout page. Don't hide "Confirm" button
  • Payment method gateways. Encode all values
  • Product ratings were not display correctly
Release Notes - nopCommerce 1.30 (August 20, 2009)

No major features have been introduced with this release as our development efforts were focused on fixing bugs, but does include the following changes:

Highlight features

  • IP blacklist.
  • Additional shipping charges by product.
  • Support for payment method additional handling fee.
  • "Product active from date and active to date" option.
  • Performance optimization.
  • Allow store owner to create new customer accounts.

NOTE: nopCommerce requires .NET 3.5 SP1.

Improvements

  • "Don't allow registration of new customers" option.
  • More SEO friendly.
  • All prices (totals) are rounded now.
  • PayPal payment methods now support all currencies.
  • PayFlow API depreciated. Updated to v4.31.
  • Updated StrikeIron tax data provider to v5.
  • Upgraded USPS to version 3.
  • Allow store owner to add custom order notes.
  • Allow admin to resend queued emails.
  • Search page is pageable now.
  • Allow admin to specify whether "Recently viewed products", "Recently added products" options are enabled.
  • Anonymous checkout. Checkout as a Guest or Register question.
  • Scheduled task for clearing old sessions.
  • Scheduled task for clearing cache.
  • Google analytics module.
  • Validate maximum customer username/email length.
  • Forums. Strip topic subject if it's too long.
  • Update LastAccess property of CustomerSession entity.
  • Admin area. Allow store owner to specify whether to display full errors with stack.
  • Admin area. Advanced order search.
  • Admin area. Advanced message queue search.
  • Forums. "Move topic" functionality.
  • Admin area. News comments/Blog Comments/Products Reviews pages support paging now.
  • Removed ScriptManager from root master page.
  • Create default billing and shipping address during registration (if possible).
  • If a shopping cart item has several warnings, then all of them are shown to a customer.
  • Store owner can specify whether anonymous customers can leave blog/news comments.
  • Topics can be added to sitemap.
  • Added "ReturnURL" query parameter to login page redirection urls.
  • Added localized titles to all pages.
  • Made configurable whether to show page debug info (page execution time).
  • Admin area. Maintain checkbox state while GridView paging.
  • All entity names are HTML encoded now.

Bugs

  • Fixed e-way payment module.
  • 2Checkout payment method. Pass product list.
  • Google checkout button was not shown on shopping cart page (anonymous checkout).
  • Don't show "Add to cart" buttons on productBox1/ProductBox2 controls if the product doesn't have product variants.
  • Minor CSS bugs.
  • Connection string for asp.net membership/role providers.
  • ForumLastPost.ascx control bind data twice.
  • The list of previously used shipping and billing addresses for a logged in customer was not filtered against the allowed countries for billing and shipping respectively.
  • Several resource string missed.
  • Blog comments, news comment, product reviews could not be empty.
  • Password recovery. Don't show "email has been sent" if customer is not registered.
  • Froogle issue when product variant description is not set.
  • Admin area. Calendar control didn't display all days.
  • Fix user latest posts sort order on profile page.
  • Forums. When an user uses [code] BB code, [code] should not be displayed.
  • Delete pricelist bug.
  • Contact us form bug.
  • Ensure that used payment method is active (during checkout).
Release Notes - nopCommerce 1.20 (June 16, 2009)
Highlight features
  • Volume discounts (Tier prices).
  • Built-in forum.
  • Time zone support.
  • CMS Topics.
  • Flexible tax support.
    • Tax rates can be assigned to different zip codes.
    • VAT support.
    • Allow store owner to specify which tax based on: billing/shipping/default/shipping origin address.
    • Allow store owner to specify whether prices include tax.
    • Allow customer to choose tax display type (incl/excl tax).
    • Allow store owner to specify tax display type (incl/excl tax).
    • Allow store owner to specify whether shipping is taxable.
    • Allow store owner to specify whether shipping prices include tax.
    • Allow store owner to specify whether to hide zero tax.
    • Allow store owner to specify whether to hide tax in order summary when prices are shown tax inclusive.
  • Nested Master Pages.
  • Allow customers to register/login by email or by username.
  • Several account registration/activation types.
    • Automatic registration (no approving)
    • Email validation during registration
Improvements
  • More community-friendly (forums, news, blog, polls).
  • More admin reports.
  • Redesigned, user friendly administration checkout.
  • Allow store owner to select theme.
  • Supports all downloadable products formats (.zip, .rar etc).
  • Perfomance optimization.
  • Allow admin to disable or hide the rating system.
  • Several bug fixes and improvements.
Release Notes - nopCommerce 1.11 (April 17, 2009)

Highlight features

  • New store-front theme.
  • CSS restructured for easier customization of design.
  • Redesigned, user friendly administration.
  • Anonymous checkout.
  • Support for kit products.
  • Partial trust version.
  • Improved stock control management.
  • Pricelists.
  • Language resources import utility.

Improvements

  • New sample data.
  • Minimum/maximum purchase quantity control.
  • Option variants may add to the base product weight.
  • Front-end paging for catalog.
  • Filter by price.
  • Improved product navigation in Administration.
  • Low stock email notification feature.
  • Manage URL rewriting from administration.
  • Several bug fixes and improvements.
Release Notes - nopCommerce 1.10 (February 3, 2009)
Highlight features
  • Web design was reworked. CSS.
  • Real-time shipping rates. UPS.
  • Real-time shipping rates. USPS.
  • Installation wizard.
  • Strike Iron tax provider.
  • Cash On Delivery payment method.
  • Accept Purchase Order.
  • Accept Checks / Money Order.
  • Google Checkout payment gateway (beta).
  • PayFlow Pro payment gateway.
  • Worldpay payment gateway.
  • PSI Gate payment gateway.
  • CDGcommerce payment gateway
  • Capture payments from admin panel.
  • Coupons
  • Discounts can be assigned to products or to whole order.
  • Cardholder data are encrypted now. Sensitive data are not stored in the database anymore.
  • Simple reporting.
Improvements
  • Support for shared SSL.
  • SSL for login/registration.
  • Image capture on login/registration.
  • Language can be selected for news, polls and blog.
  • Localized message templates.
  • Euro currency symbol is proper displayed now.
  • Featured products on home page
  • Categories on home page
  • ubcategories are shown on navigation menu now
  • Featured products on category page and on manufacturer page
  • Out of stock. Minimum stock quantity. Low stock activity.
  • Low stock products page.
  • Manage wishlist enabled/disabled.
  • Manage blog enabled/disabled.
  • Opt-in for mailings ('I would like to receive newsletters').
  • When a user hit 'continue' after updating his cart, he returns to the previous product page and not the main store page.
  • Putting Add to cart button beside Details button on the category/manufacturer page without see the details.
  • SEO. Check box that will include the store name in front of the title.
  • Several bug fixes
Release Notes - nopCommerce 1.05 (November 25, 2008)
  • Product attributes (e.g. color, size)
  • Wish list
  • SSL support
  • Moneybookers payment gateway added (beta version)
  • Froogle (google base) product feed
  • Export customers/orders/categories/manufacturers/products to XML file
  • Marketing manager (campaigns)
  • Calculate shipping by country & total order weight
  • Free shipping over $X
  • Configurable list of allowed countries
    • For registration
    • For billing
    • For shipping
  • Password recovery
  • Email a friend
  • Measure weights, measure dimensions
  • Recently added products RSS. News RSS
  • Product review helpfulness (Was this review helpful for you?)
  • "Store is closed" feature
  • FCKEditor added
  • “Shipping by Weight” computation method has been changed
  • New product template has been added
  • Robots.txt added
  • Several bug fixes and improvements
Release Notes - nopCommerce 1.04 (November 16, 2008)
  • eWay (Australia) payment gateway
  • Real-time currency exchange rates (ECB)
  • Product specifications (e.g. processor, memory, graphic card)
  • Compare product feature (if enabled)
  • Customer groups can be marked as free shipping
  • Customer groups can be marked as tax exempt
  • Several bug fixes and improvements
Release Notes - nopCommerce 1.03 (November 5, 2008)
  • Paypal Express payment gateway (beta version)
  • Google sitemap
  • Disable buy buttons for specific products
  • Customer roles (groups) (e.g. Premium customers, Gold customers)
  • Discounts can be applied to a customer role
  • Discounts can be applied to a category
  • Paging support was added to admin area
  • Several bug fixes and improvements
Release Notes - nopCommerce 1.02 (November 1, 2008)
  • The source code is well commented now
  • Authorize.NET payment gateway
  • Several bug fixes and improvements
Release Notes - nopCommerce 1.01 (October 26, 2008)
  • Blog feature added
  • Poll feature added
  • Several bug fixes and improvements
Release Notes - nopCommerce 1.00 (October 23, 2008)
  • The first version of nopCommerce