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 user+special@gmail.com)
- 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 (<sup>&trade;</sup>), 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).
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.
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.
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
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
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
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).