Posted by Aaron on May 06, 2026
Comments (0)
Here is the complete list of new features, enhancements, security improvements, and bug fixes in BV Commerce 2026. This list is relative to the previous release, BV Commerce 2020.
New Features
- Redesigned checkout using a faster, more mobile-friendly multi-page design
- Apple Pay integration
- Google Pay integration
- Streamlined PayPal checkout process
- Universal shopping carts—carts are now tied to user accounts so they can be accessed from any device by logging in
- Site authentication now uses email addresses instead of usernames (with backward compatibility for existing accounts with usernames)
- Bootstrap 4 Turbo theme (faster page speeds and improved accessibility)
- PictureTag control to render <picture> tag with resized images based on breakpoints set in the theme.xml file
- Faceted search filtering on category pages
- Product Comparison feature on category pages
- Quick Look feature to preview product pages from category pages
- Dynamic image resizing—use a single high-res product image and all smaller images are dynamically generated
- Magic Zoom image viewer on product page
- Product file attachments for adding documents (e.g. PDF, Word, etc) to product pages for things like product manuals
- Ability to restrict PO/APO/FPO addresses on a per-shipping method basis
- Conditional If/Else logic in email and print templates
- Cookie consent functionality for GDPR and CCPA compliance
- Password reset process now sends an email with an expiring link to reset the password
- Cloudflare Turnstile CAPTCHA
- Added 'honeypot' to contact form to cut down on SPAM
- Application startup page so users see something while BVC is loading during initial startup/restart/server reboot/etc
- Redeveloped, modern integrations for:
- Authorize.Net
- PayPal PPCP
- UPS
- FedEx
- USPS
- Delivery Fee tax support (for Colorado, Minnesota, and other future locations)
Enhancements
- Added support for newer Visa, Discover, Diner's Club, and JCB credit card numbers
- Make application more resilient to database not being available on application startup
- Cart cleanup process now uses LastUpdated date rather than CreationDate for smarter cart retention
- Customer's Loyalty Points balance shown on My Account page
- Redirect products to manually-specified Rewrite URL when an auto-rewritten URL is requested—prevents two URLs for the same product
- Updated Google sitemap ping endpoint
- Log orders from ShipStation export with missing or invalid ShippingAddress.CountryBvin values as these will stop the importing of this and subsequent orders—makes troubleshooting MUCH easier
- Reporting overhaul:
- Full-width layout to display more report data
- All reports now include filters for payment, shipping, and overall order status
- All reports now use the same date range filtering UI
- All reports now have export capability
- Improved performance for several reports
- Standardized fields, headings, etc where applicable
- Customer List report can now be filtered by products customers purchased and/or didn't purchase
- Analytics
- Enhanced Conversion Tracking implemented for Google Ads and Microsoft Ads
- Microsoft Ads UET tracking integration
- Microsoft Ads tracking now reports SubTotal - OrderDiscounts rather than GrandTotal for the order amount, just like Google Analytics tracking
- Google Analytics and Google Ads tracking updated to support other, non-US currencies
- Store Google Ads gclid and Facebook fbclid with carts/orders for future use and expose via [[Order.GCLID]] and [[Order.FBCLID]] replacement tag for use in email templates
- Admin
- Order Manager searches are more accurate and now understand abbreviations (e.g. Street = St)
- Redesigned Image Browser interface
- Simplified product image management & storage—only one size image is needed and variant images are selected from the list of product images
- Enable/disable products from main Products page (without going to the edit page)
- Added 'clear' option for product filtering on the Catalog page (Simple Product Filter control)
- Sales page design updated to display status of Sales like Offers page
- Offers page now displays promo codes and whether an offer cannot be combined
- Order Manager dates now have a hover that displays the full timestamp (including the time)
- Added "Year to Date" and "Last 90 Days" date range options for date picker
- Shipping Methods can now be hidden (eliminating the need for the Wrapper method) and hidden methods can still be used for orders placed through the admin
- Ability to add Product Types to Type Properties (rather than just the other way around)
- Roles edit page only returns users when some search criteria is specified rather than returning the first 50 users
- Improved Affiliates page UI
- Added SVG and WebP support to admin Image Browser
- Added confirmation popup when deleting Content Blocks
- Inserting a replacement tag in email and print templates now inserts it at the cursor location rather than the end of the field
- Added [[Site.PhoneNumber]], [[Site.FaxNumber]], [[Site.Date]], [[Site.Time]], and [[Site.Year]] replacement tags for templates
- Added [[User.PricingGroupId]] and [[User.PricingGroupName]] replacement tags for templates
- Added sender display name field for email templates
- Added "does not contain" equality test to Order and Package Rules shipping methods
- Ability to clone rules in Order and Package Rule shipping methods
- Feed Engine can now compress (Gzip) feed files
- Product Reviews
- Product review ratings now calculate with half stars (e.g. 4.5 stars instead of just 4 or 5 stars)
- Ability to publicly respond to customer product reviews
- Ability to sort product reviews on product page
- Display Email and User Name in Product Reviews list in admin
- Avalara
- Added Delivery Fee tax support for Colorado and Minnesota
- Ability to define freight code line item
- Send product name, rather than short description, to Avalara for nicer data on their end
- Integration updates
Security & Privacy
- Tokenized credit card gateway integrations for Authorize.Net and PayPal ACDC (replacement for Payflow Pro and PayPal Advanced Website Payments) for better security and happier PCI Compliance audits
- Added additional URL validation to prevent possible exploits
- Set BVC cookies' max expiration to 12 months for GDPR compliance
- Cross-site request forgery prevention
- Clickjacking attack prevention measures
- Reduce server and application disclosure information to reduce attacker visibility
- Added support for Content Security Policy (CSP)
- Added support for HTTP Strict Transport (HSTS) Security Policy
- Denial of Service (DoS) prevention
- Updated jQuery version
Performance
- Order Manager searches are now significantly faster
- Added more caching throughout application to further reduce SQL queries
- Optimized database indexes for better performance across the application
- Bootstrap 4 Turbo theme incorporates many optimizations for faster page speed
- Significantly faster page loads on admin pages that use ObjectDataSource to retrieve data (e.g. Order Manager, Users, Categories, etc)
- Cart shipping estimator only retrieves rates if we have all the necessary address information
- Cache shipping methods to reduce API calls
- Increased static file (CSS, JS, images, etc) cache policy from 30 to 365 days to meet Google PageSpeed Insight's minimum
- Audit Log page loads significantly faster
- Improved speed of fn_bvc_GetCustomProperty and fn_bvc_GetAddressField SQL functions
Bug Fixes
- PayPal transactions were sometimes declined because address line 1 (Street1) wasn't being sent for the billing address
- Sales tax was not applied to Handling fees
- Fixed infrequent OutOfMemoryException in Utilities.UrlRewriter.RedirectToCustomUrl
- Google Analytics was not tracking the "checkout_progress" event for when a customer enters the checkout page
- URL rewriter incorrectly parsed SKU from product URL when a query string was present
- Bvc5ChoiceGrid and Choice List product page templates did not work properly when editing a line item from the cart
- HTML Rotator Content Block, when randomized, will not load last item in the list
- Price Groups did not allow zero margin prices (e.g. discount SitePrice by 100% resulted in divide by zero error)
- A product whose Price Group price was below the minimum margin AND the minimum margin was set to 100% would fail (divide by zero)
- Incorrect out-of-stock inventory behavior on cart page if global inventory was disabled or if product-level inventory was disabled
- Inventory available/not available filter for bvc_Product_ByCriteria_s stored procedure (e.g. used on Products admin page) did not properly account for inventory qty on hand
- Kit product page didn't show any messaging when a kit component was disabled
- Kit product page did not properly validate required kit component selections
- Kits did not properly support non-shipping products
- Product reviews always displayed "Anonymous" instead of the reviewer's name (if one had been entered)
- Update Product Review UserName field for reviews that have a UserID and no UserName value
- IndexOutOfRangeException could be occur on ReturnUrl querystring was "/"
- Bootstrap 4 theme did not remember user's grid/list category view preference
- Product feeds included inactive/disabled variant products
- Admin order discounts set prior to BVC 2020 did not display properly
- Product variants were inheriting values from parent fields that they shouldn't be (e.g. RewriteUrl)
- Products with only null choices caused an error when creating the variants
- Fingerprinting in HtmlLink and HtmlScript controls did not work with file paths containing a space
- Search page with keyword querystring would perform search for a blank term even if "Disable Blank Search Terms" setting was enabled
- Custom Pages without a custom URL (manually-specified URL) did not load specified template and instead loaded the default page
- Affiliate tracking error thrown if a large "Referral Days" value has been set
- Dowloadable products offered Gift wrap option in cart
- Deleting a Region failed if the region was excluded from any shipping methods
- Google Merchant Center (Shopping) query string parameter "srsltid" prevented URL redirects from working properly
- Offers:
- Limiting Offer promo code use by customer didn't work with 'anonymous' orders placed without being logged into an account
- Free Shipping Offer did not always work as expected with Order Rules shipping methods
- Free Promo Item offer did not properly display the discount in Bootstrap 4 theme
- Free Shipping offer with promo code was still treated as valid after offer was disabled
- BOGO offer issues when items set to auto-add to cart
- Data Imports:
- Import for additional images, volume discounts, cross-sells, and up-sells did not clear in-memory cache of products which could cause erroneous validation errors if products were added or removed from the catalog between imports.
- Product import cleared additional images for a product if the Additional_Images field was not included in the import
- Product import allowed assigning additional images and categories to child (variant) products
- Product import allowed assigning Type Properties to products that didn't have a Product Type assigned
- Exclude RatingAverage, RatingCount, and SaleCount from product import since those values are automatically generated
- Admin:
- Sales by Price Group report displayed incorrect totals
- Deleting a User did not remove them from back-in-stock email notifications
- Changing an existing product choice option from a null choice to a selectable choice did not work
- Gift Certificates admin page did not properly page results
- Product edit pages header information—product name, SKU, and thumbnail image—did not update immediately when any of those fields were changed
- Cloning a Kit did not retain user-specified name or SKU
- Sale end date always used today's date when cloning a sale regardless of what date was entered
- Admin product filter control did not load/display current filter
- Admin tax edit page did not validate rate field
- Rule import/export for Order Rules and Packaging Rules shipping methods did not work
- Admin Categories page did not show "Type" for Custom Page categories.
- Product Input's "DisplayName" field not editable after initial creation
- Modifier pricing display can change after an order is placed if a shared modifier's price changes
- Adding a new Price Group rule can throw Object Reference error when creating a new rule
Developers
- Allow C# code in App_Code
- All new projects/assemblies written in C#
- Javascript error logging to Audit Log
- SiteStandardRoot/SiteSecureRoot override URL settings in the Web.config for attaching development environment to a database that uses a different site URL than localhost
- New SQL functions: fn_bvc_SetCustomProperty, fn_bvc_RemoveCustomProperty, and fn_bvc_SetAddressField
- Updated fn_bvc_GetCustomProperty SQL function to support both "bvsoftware" and "bvcommerce" Custom Property lookups
- Added CustomProperties support to ShippingMethod class
- Converted bvc_ComponentSetting.SettingValue column from text to nvarchar(max)
- Added 'defer' and 'async' support to HtmlScript control
- Added 'onload' and 'as' support to HtmlLink control
- Added Manufacturer and Vendor FindByName functions
- Disabled caching of feed folder via HTTP headers to ensure the latest version is always downloaded
- Adding "Shipping" filter to Audit Log page in admin
- BusinessEntityBaseExtension class adds helpful methods (e.g. HasBvin)
- BVEnumExtension class adds helpful methods (e.g. ToStringValue)
- Option to log mail server errors to the Audit Log
- Added CAPTCHA provider model for easier customizations
- Updated date picker to allow/prevent Past Dates/Future Dates/ Weekend being selected
- Added support for .avif image file format