Posted by Aaron on October 31, 2019
Comments (1)
Here is the complete list of new features, enhancements, and bug fixes in BV Commerce 2020. This list is relative to the previous release, BV Commerce 2018 SP1.
New Features
- Redesigned admin
- Bootstrap 4 theme with CSS buttons
- Export reports
- Sales by Region report (helpful in assessing sales tax nexus by state)
- Sales by Price Group report
- MultiSelect Type Property -- works like Multiple Choice but with the ability to assign multiple values to a product
- Additional Images import/export
- Volume Discounts import/export
- Google Product Reviews feed
- Option to display inventory levels on product pages
- Option to send user account creation email
- Google Optimize testing integration
- Customers can check the balance of gift certificates
Enhancements
- Google Analytics global site tag (gtag) update
- Google Customer Reviews integration now passes purchased products to allow customers to review individual products
- Updated UPS integration
- USPS commercial rate support
- USPS Parcel Select Ground support
- More flexibility with whether commercial or residential rates are used for FedEx Ground based on whether a company name is entered in the shipping address
- Ability to set contact form fields as optional or required
- Ability to set user account creation fields as optional or required
- Volume Discounts can be set as a percentage off Site Price and a percentage above Site Cost (in addition to being set as a fixed price as before)
- Ability to convert a one-off, product-specific Modifier, Choice, or Input to a shared one
- Ability to clone Sales
- Product Modifier price and weight adjustments can now be done by a fixed amount or a percentage
- Admin order discount (post-order adjustment) is now shown in applicable reports
- New "Last 7 Days" date range option in admin date picker
- Inventory out-of-stock report email reformatted and now includes kits
- Ability to exclude inactive products from the inventory out-of-stock report email
- Password Reset page improvements: hide reset button after reset (so users don't reset multiple times), logout user after reset, Enter key resets password rather than performing a site search, resetting password updates password expiration date for admins
- Added product filtering to Up-Sell and Cross-Sell exports to allow more granular exports
- Custom Pages can now be hidden
- Ability to redirect disabled (inactive) products
- File Upload product input now allows users to remove uploaded files
- Ability to set default date range for Order Manager
- Improved file type handling of purchased downloads for better browser and device support
- Contact form email now uses customer's email address as reply-to address
- Gift certificates admin enhancements
Security
- Remove operating system, IIS, and .NET Framework version information from response headers for PCI Compliance
- Updated standard themes to jQuery 3.4.1 for PCI Compliance due to security vulnerability in older versions--custom themes will require a manual update
- Stronger authentication for admin and customer accounts
- More stringent credit card retention policy
- Prevented open redirects
- Receipt page visibility restricted
- Checkout was accessible without logging in even if it was configured to require authentication
- Implemented SameSite cookie security to meet Chrome and other browsers' coming security requirements
Kit Enhancements and Fixes
- Sales did not discount kits
- Kits now support Up-Sells and Cross-Sells
- Kits can now be saved to the Wish List
- Kits now support tax exemption--if all kit components are marked tax exempt the kit will be tax exempt, otherwise the kit will be taxable
- Kits are now included in the inventory out-of-stock report
- Persist kit component data for orders so it can be displayed in the admin even if the associated product(s) have been deleted--this change is NOT retroactive
- Prevent kits that have been altered after a customer has added them to their cart from being purchased
- When every kit component product was out-of-stock and its out-of-stock mode was set to "do not allow orders" an error would occur
- Added Kit cost calculation
- Kits can now be cloned
- Kit templates could not be overridden in a theme when URL rewriting of products was disabled AND the kit had a manually-specified rewrite URL
Performance
- Lazy XML deserialization for Custom Properties and Addresses
- Eliminated redundant product lookups--most significant for products with choices/variants and kits
- Faster loading of suggested items (i.e. 'people who bought this also bought that') on product pages
- Significantly faster loading of Groups/Roles edit page in admin
- Faster loading of Gift Certificates page in admin
- Cache credit card types (e.g. MasterCard, Visa, AMEX, etc) to eliminate redundant lookups, particularly in Order Manager
- Removed redundant product lookup on product page
- RSS Feed Viewer content block now has a timeout limit of 5 seconds to prevent remote sites from taking down a site/page
- Option to pre-JIT (compile) key site pages on application startup/restart for faster initial page load times
- Extended admin timeouts for long-running operations like import/export and reporting
Bug Fixes
- UPS negotiated rates work again after updating the integration
- FedEx never returned residential rates, always commercial/business, even when configured to 'force residential rates'
- Estimate Shipping cart pop-up and inline cart shipping calculator set shipping state/region using the full name (e.g. "California") rather than the abbrevation (e.g. "CA") which prevented some shipping methods from returning rates (e.g. FedEx)
- Inline cart shipping calculator could cause mixed state/region bvin and name values which could cause some shipping methods to not return rates
- Changes to orders such as refunds, admin discounts, and tax exempt status did not update Avalara
- In some cases taxes could be submitted to Avalara multiple times for the same order
- If an order was placed that was taxable but later edited to use an address that is not taxable, Avalara was not updated
- Cancelling an order did not return inventory to stock
- ShipStation order export data now more thoroughly cleaned to prevent the posibility of bad data breaking the XML
- Feed Engine XML text cleaner updated to better strip HTML for feeds like Google Sitemap
- Update Google Remarketing integration to handle newer non-integer conversion_id values
- Disable Facebook tacking pixel auto configuration which can cause issues by preventing click events from firing
- Tracking numbers were not included in emails when using a non-realtime shipping method (e.g. Order Rules rather than UPS)
- Offer restriction of X uses per customer only worked if the user had an account and was logged into it
- Orders could sometimes be placed without an email address
- On very high traffic sites duplicate order numbers could occassionally occur
- Volume Discounts did not correctly calculate for variant products
- Orders placed when impersonating a customer account did not set the sales person as the impersonator (if their user was configured as a sales person)
- Free Promo item offer items in abandoned carts caused the cart cleanup process to fail and BVC to restart
- Redirect to primary domain feature did not work when BVC was running in a sub-folder
- Custom Page import did not update rewrite URL when changing templates
- Sale setting to allow price to go below cost did not work in some configurations
- Moving (reordering) the Assign Order Number workflow step within the Process New Order workflow could result in the order number not being saved in the event that a subsequent workflow step failed
- HTML entities (e.g. ™) were not being cleaned up in feeds which caused problems with XML feeds, like the Google sitemap
- Custom Pages list in site footer was cached and did not update until cache was purged
- Deleted Orders did not have loyalty points voided if the store used inventory tracking
- Google Customer Reviews badge no longer displays in pop-up windows
- Radio Button List and Image Radio Button List Choices did not hide disabled/invalid combination
- [[Product]] replacement tags failed to be replaced, which could prevent the email from being sent, for order line items where the associated product has been deleted
- Address.IsEmpty didn't always return the correct value depending on the data
- Default values and validation for product inserts and updates could be circumvented by directly calling Mapper class
- Un-rewritten product URLs with additional query string parameters (e.g. LineItemId from cart links) would see the additional parameters duplicated in the URL
- Un-rewritten product, category, and custom page URLs could not be redirected
- SqlDataHelper.ExecuteReader would throw an invalid cast error with certain parameter data types (e.g. Guid)
- Product review request emails were attempted to be sent even if there was no email address associated with the order
- Redirector did not support newer top-level domains (TLD)
- Prevent entering of Gift Certificate code patterns with leading or trailing spaces -- this causes unexpected problems
- Out-of-Stock choice selection caused JavaScript error due to quantity field validator
- Product downloads did not display for overpaid orders
- Hide BackInStockNotification control/markup when disabled--gets rid of empty
placeholder on page
- Orders with gift wrap line items throw exception if the line item has been deleted
- User account address book addresses did not always meet the field requirements set in the admin nor did the UI display the proper requirements
- [[Order]] replacement tags did not replace in Html Content Blocks when a user was not logged into their account
- Dropdown Choice caused "invalid choice combination" message to show on product page if no default choice was set and the first choice was a disabled/invalid combination
- Facebook tracking pixel improperly handled variant products
- Category Grid content block cached category data did not update when categories were modified
Developers
- .NET Framework 4.8
- Converted all columns in the database that store XML (e.g. addresses, Custom Properties, etc) to XML data type columns
- Converted all ntext database columns to nvarchar(max) to ensure compatibility with future versions of SQL Server
- Type Property database structure (bvc_ProductPropertyValue) updated to better handle Multiple Choice and the new MultiSelect Choice property
- Redirected old /m URLs to prevent crawling and removed all other files from folder
- Added fn_bvc_GetAddressField SQL function to simplify querying address field data
- Added fn_bvc_GetCustomProperty SQL function to simplify querying Custom Property data
- Moved Google Tag Manager into the head section of the page
- Ability to override SiteStandardRoot and SiteSecureRoot from Web.config without having to modify database settings
- Admin order discount (post-order adjustment) is now a separate field in the Order table, rather than a Custom Property, to allow easier querying
- Added Order object FindByBvinLight and FindByOrderNumberLight functions
- Custom Pages now support Custom Properties
- Added CustomProperty GetValue generic functions with default value
- Option to log full stack traces to Audit Log for unhandled exceptions
- SQL timeout errors are captured in the Audit Log
- Template preview images in admin are now overridable in themes
- WebAppSettings.Mapper.Save method did not update cache--this method was unused in stock codebase
- Removed CredEx integration since the service no longer exists