SmartStoreNET v2.1.0 Release Notes
-
๐ New Features
- ๐ (Developer) Overhauled plugin architecture:
- Plugins are regular MVC areas now
- No embedded views anymore. Views get copied to the deployment folder
- No cumbersome return View("Very.Long.View.Identifier") anymore
- Views in plugin source folders can be edited during debug. The changes are reflected without plugin recompilation.
- (Developer) Theme inheritance: create derived child themes with minimum effort by overriding only small parts (static files and even variables).
- Preview Mode: virtually test themes and stores more easily
- New payment plugin Pay with Amazon
- ๐ Support for hierarchical SEO slugs, e.g.: samsung/galaxy/s5/16gb/white
- ๐ (Developer) Model binding for plugin tab views: models from plugin tabs get automatically materialized and bound to TabbableModel.CustomProperties[MyKey]. Extended the SmartModelBinder for this.
- (Developer) New event ModelBoundEvent. Consume this in plugins to persist plugin specific models.
- (Admin) Added GMC tab to product edit view. This is more a coding example for the above stuff rather than a new feature.
- (Developer) Implemented AdminThemedAttribute: instructs the view engine to additionally search in the admin area for views. Very useful in larger plugin projects.
- (Developer) Enhanced IMenuProvider: menu items can now be injected to the public catalog menu
- (Developer) Implemented IWidgetProvider. Allows request scoped registration of action routes to be injectable into widget zones. Perfect for custom action filters.
- (Developer) Simple widgets: the model of the parent action view context now gets passed to a widget.
- (Developer) New IoC method ContainerManager.InjectProperties()
- ๐ Implemented support for EU VAT regulation for digital goods (2008/8/EG directive)
- Implemented Media Manager for HTML editor (including file upload)
- Added CDN setting to store configuration. Allows static files to be served through a content delivery network, e.g. cloudfront. (contributed by 'normalc')
- ๐ #393 Web API: Implement OData actions for simpler working with product attributes
- ๐ #431 Web API: Add support for localized properties
- ๐ง ShippingByWeight: new settings to configure a small quantity surcharge
- ๐ #216 Better return request support
- #90 Directly set order status to completed
- #413 Orders: Add a PDF export\download of selected orders
- #69 Award reward points for product reviews
- ๐ #164 Add multistore support for polls
- ๐ #170 Multistore support for Newsletters
- โก๏ธ #266 Update Pending Order in Admin Panel
- #331 Show CommentBox in checkout (optional)
- Option to turn off the filter for products in categories
- Export/Import was enabeled to work with localized values for name, short description and long description
- โ Added two new themes 'Alpha Blue' and 'Alpha Black'
๐ Improvements
- ๐ New backend design and cleaner frontend theme
- Replaced TinyMCE HTML editor with CKeditor
- Simplified checkout process by combining payment method and info pages
- (Perf) Lower memory consumption
- โก๏ธ (Perf) (Developer) Client Dependency updates
- jQuery 1.8.3 > 2.1.1 (although the backend is still using v1.8.3 because of the Telerik components)
- FontAwesome 3 > 4.1
- Modernizr 2.5 > 2.7.2
- jQuery UI to 1.11
- SearchBox uses Typeahead now instead of jQuery UI AutoComplete
- Got rid of obsolete jQuery UI files (will remove this later completely)
- ๐ป (UI) AJAXified product edit tab: all tabs other than the first one load on demand per AJAX
- ๐ (Developer) Plugins can provide custom tabs more easily (now with on demand AJAX loading)
- โฑ Task Scheduler:
- Can run tasks manually now (async)
- Better UI
- Shows last error
- (Developer) Breaking change: New parameter TaskExecutionContext for ITask.Execute()
- ๐ UI: TabStrips remember their last selected tab across page requests in an unobtrusive way (removed old selection code)
- Price formatting: the DisplayLocale's FormatProvider was not applied when CustomFormatting was specified for Currency
- Admin: Specification attributes are now sorted by DisplayOrder, THEN BY Name
- Admin: Replaced DatePicker with DateTimePicker control
- ๐ (Perf) significantly increased excel import performance... again ;-)
- ๐ (Perf) significantly increased excel export performance and optimized memory usage
- ๐ (Perf) SEO sitemap is being cached now, resulting in fast reponse times with larger catalogs
- โก๏ธ (UI) optimized and reorganized product edit view a bit
- (Developer) MVC filter attributes are now Autofac injectable
- โ (Developer) Implemented RunSync extension methods for Func and Func>. A reliable way to execute async operations synchronously.
- (Developer) Refactored model creation for category navigation: it now incorporates TreeNode, which enables plugin developers to alter the main menu with the event hook NavigationModelBuilt.
- ๐ (Developer) Added user.less to Alpha theme for user defined css overrides and tweaks
- (Developer) Moved PublicControllerBase to SmartStore.Web.Framework
- ๐ (Developer) Moved 'AdminControllerBase' to SmartStore.Web.Framework
- โก๏ธ (Developer) Optimized Bundle handling
- Html.Add[Script|CssFile]Parts() now can handle already bundled resources correctly (no attempt is made to bundle them, the bundle's virtual url is returned instead)
- Made extra bundles for frequently used resources (like sequence js, fileupload, image gallery etc.). This way they always come compressed.
- ๐ #384 Web API: Inserting sluged recources like products require an URL record
- ๐ #382 Promotion feed plugins: Asynchronous feed creation, more options and improvements
- #433 GMC feed: Option to filter config records that have not been edited
- #362 Display 'from {0}' for products with variant attributes
- #239 Categories: Ask merchant if he want a cascading or a non cascading deletion
- HTML text collapser: Make it usable for all long texts
- #375 Implement SKU search for 'related products picker'
- #391 Admin: allow searching/filtering for specification attributes
- Removed OpenID plugin from core
- Specification attribute values that are assigned to a product can be edited
๐ Bugfixes
- Twitter Auth: fixed SecurityTransparent error
- Facebook Auth: fixed SecurityTransparent error
- OpenID Auth: fixed SecurityTransparent error
- #376 Product filtering: Category price range filter not working anymore
- Return requests: Products to return won't be listed
- #372 Biz-Importer sometimes shows inactive tier prices
- PayPal Standard: Sending more localized values. Adjustment of net prices to avoid wrong PayPal total amount calculation.
- ๐ Globalization fix in plugin data grids: inline editing for decimal values did not take current culture into account
- #391 Show delivery time if out-of-stock orders are allowed by attribute combination
- CustomerRole > TaxDisplayType Including VAT could not be saved
- โก๏ธ Product.DisableBuyButton was never updated when the stock quantity has been increased (e.g. as a result of order canceling)
- ๐ Shipping.ByTotal: Fixed matching of rates by choosing the more specific over the common rate
- A grouped product only shows up to 12 associated products
- #405 Billiger feed: Wrong base price exported
- #437 Mobile devices: Cannot add a product to the cart when it is grouped
- PayPal Standard: Costs for checkout attributes were double charged
- Paging of return request grid did not work
- #428 Multiline checkout attributes aren't rendered correctly
- #434 Shipping.ByTotal: Make grid pageable
- #419 email account password hidden
- #424 Localize return reasons & return actions
- #479 Product filter: Wrong count of manufacturers if products of sub-categories are included
- #492 Ipayment credit card: Order notes are only created when the order exists
- ๐ #493 Postfinance plugin does not work if shopname includes a "umlaut"
- #237 Mobile theme: inactive attribute combinations should not be added to cart
- #178 Mobile theme doesn't display base price
- ๐ Ipayment: Capturing did not work because the security was not transmitted
- #405 "Reset Password" Link in Emails is wrong with SSL secured sites
- #471 Checkout: Redirecting to external payment page could take a while. Clicking "Buy" button again might cancel the redirecting.
- Pricing not considered attribute combination prices for bundles with per item pricing
- ๐ (Developer) Overhauled plugin architecture: