Posted by Aaron on February 24, 2015
Comments (0)
Here is the complete list of new features, enhancements, performance improvements, and bug fixes in BV Commerce 2015. This list is relative to the last release, BV Commerce 2013.
New Features
- Responsive (mobile-compatible) theme using Foundation 4
- Theme architecture now supports overriding Pages, Category/Product/Custom Page/Kit templates, Controls, Content Blocks, and Checkouts--completely customize the front end without altering code outside of the theme
- Shopping Cart abandonment remarketing - sort & filter carts; email customers using included template and track how many emails you've sent; customer information is now captured sooner on the site
- Import/export: Inventory and Product/Category assignment
- Smarter package dimension calculator for more accurate real-time rates that use dimensional weight
- DHL real-time rates
- Google Universal Analytics update w/display features & enhanced link attribution settings
- Google Tag Manager integration
- Google Shopping feed updates -- implemented new field length requirements; added shipping dimensions and support for numerous special fields (for use with hidden Type Properties)
- Updated Google Trusted Stores integration
- PayPal
- Updated integration using newer API, new buttons, and guest checkout enabled
- Customer email address pre-populates on PayPal login page, cart contents with shipping, tax, and discount details now shown on PayPal site
- PayPal Checkout page (BV-side) displays order items and allows customers to enter special instructions
- PayPal eCheck orders can now be 'processed' in the admin
- ability to edit Receive PayPal Express Payments workflow step options -- decide how to handle failures
- SEO
- SEO settings page to aggregate all SEO-related settings in one place
- Site-wide canonical URL implementation
- Added rel="next" and rel="prev" tags to pager for SEO
- Added Google Sitelinks Search Box meta data
- Manage homepage meta data from the admin and separate from the rest of the site
- Enable/disable appending store name to meta title
- Updated Microsoft AdCenter tracking integration
- Admin
- Ability to move categories anywhere in the category structure
- Admin header editable message
- New Order button added to customer account page in admin for easy order entry
- Reset customer password and send password reset email by clicking a single button
- Sales Person functionality: make users sales people, tag admin orders with sales people, run reports on performance
- Impersonate customer accounts from admin
- Convert shopping carts to orders
- Next/Previous product page browsing using responsive theme
- Toggle between grid/list views on category pages using responsive theme
- Automatically fix issues caused by a dirty application start or restart, such as when the database server is unavailable--issues include missing payment methods, black Bvc5 theme used instead of the correct one
- Automatically detect carrier based on tracking number and use appropriate tracking number URL
- QuickBooks Merchant Services (QBMS) payment gateway support
- Added Sale Price to Bvc2013 product template so customers can see list price, regular price, and sale price (instead of just list price and sale price)
- Category templates: Grid Full Width and Sub-Sub Category Menu
- Category Grid content block
- Searches that only return one product automatically load product page
- New fresh install
Enhancements
- New carts are pre-populated with a customer's email, billing, and shipping addresses (if possible) -- streamlines shipping estimation and checkout
- One Page Checkout Plus populates previously entered address information for customers without an account
- Image Radio Button List choice now performs an AJAX page update instead of a full page reload
- Customers can now get their product downloads from the order status page (/ViewOrder.aspx)
- Don't display empty/null inputs and modifiers in cart & wishlist
- Save unnecessary Avalara API calls
- Updated USPS tracking number URL
- BOGO offers now automatically add promo items
- Redirect non-rewritten Custom Page requests to their rewritten URL (if applicable)
- Added title text to Image Radio Button Lit choices and modifiers so you get text when you hover over the image (since browsers ignore alt text these days)
- Admin
- New & Edit Order page enhancements: more AJAX, ability to set tax exemption, customer Address Book selector
- Standardize admin pagers to use next/prev + numbers
- Sales By Date report now links to order details page rather than Daily Sales report
- Changed product import key from Sku to bvin to allow changing SKUs through the import
- Improved admin order printing display
- Display Shared Choices alphabetically, grouped by type in admin
- Inventory edit page UI and performance enhancements--can now enable/disable inventory from this page
- Unable to create new shared choice options if shared choice is used by products
- Extra Ship Fee and Price Text can now be set for choice combination products (child products)
- Opening/closing store now requires confirmation (to prevent accidental clicks) and the action is now logged to the Audit Log; users must also have the SettingsEdit permission
- Ability to edit Product Type and product ship mode from Product Batch Edit page
- show hidden categories in various places in the admin (reverted to pre-2013 behavior)
- Retain credit card data for 30 days rather than 7 to allow for easier refunds
- added date picker to Top Customers report
- Additional Images edit page now displays filename and caption fields
- Product feeds now support choice combination products (child products)
- Set default kit template
- Added timestamp to order notes in admin
- Add/remove multiple Type Properties to a Product Type at once in the admin
- Import tool use now logged to Audit Log
- Update Payflow Pro gateway currencies and clarify settings fields
- Category list displayed in dropdown menu now displays indents for easier reading
- Replacement Tags
- [[LineItem.ProductName]] replacement tag
- [[RMA]] and [[RMAItem]] replacement tags; RMA email templates can now use [[Order]] replacement tags
- [[LineItem.AdditionalDiscount]] & [[LineItem.DiscountsTotal]] (sum of Discounts and AdditionalDiscount) replacement tags
- [[Order.OrderAndAdminDiscounts]] replacement tag so admin discounts could be accounted for in templates (sum of order & admin discounts)
- [[GiftCertificate.DateIssued]] and [[GiftCertificate.OrderNumber]] replacement tags
Performance Improvement
- URL Rewriter performance improvements--very significant for stores with many categories
- Displaying count of products in a category on nav menus no longer incurs a performance penalty
- use lazy-loading for product pricing data and global product
- set default http cache header for static resources to 24 hours
- Product inventory edit page only updates changed records
- Save unnecessary inventory lookups across application
- Save unnecessary affiliate lookups on each request
- Save unnecessary product lookups on cart page
- Improved performance for all 'by criteria' stored procedures--has biggest impact on admin Catalog and Orders areas
Developer
- Category.LatestProductCount field is now automatically populated
- SessionManager.CurrentCategoryId now looks for CustomUrls with and without a query string to support changing query string URLs
- Added ReturnUrl support to all admin pages
- Added support for URLs with query strings in ReturnUrl parameter
- Added FullName convenience property to UserAccount and Address objects
- Added Category.FindAllLight method with per-request caching, primarily for use by the URL rewriter
- Feed Types can now have their own settings
- InternalProduct.Categories property now returns data
- Added SqlCommandTimeout WebAppSetting to allow flexibility for sites where queries need to run longer than the default 30 seconds timeout
- Added kit inventory availability properties
- Added LineItem.DiscountsTotal property (sum of Discounts and AdditionalDiscount)
- Show .NET errors in admin rather than redirecting to the custom error page -- helps merchant troubleshoot and request support more easily
- Added: web service function for CaptureOrChargeAllPayments
- Removed Google Checkout
- Added Wishlist web service functions
- Improve validation model for choices/inputs/modifiers
- Added Authentication Token cleanup process
- Replace all applicable "And" and "Or" operators with "AndAlso" and "OrElse" to allow short circuiting
- Added Kit web service functions
- Added StoreSearch web service function
- Google Remarketing control
- Added RMAItem.Delete method
- Added ProcessPreImport hook for import process
- HtmlScript control to ensure proper JavaScript pathing regardless of where application is installed
Bug Fixes
- Kits - numerous
- Prevent HTML editors from breaking admin page layout
- Prevent large images from breaking admin page layout
- Drag 'n drop sorting of products works in the page UI but does not actually update the data
- BVC 2013 database upgrade scripts throw "subqueries not allowed in this context" error with SQL Server 2005
- Remove user account link in Audit Log for SYSTEM account (since it's not a real user account)
- First Data GGe4 gateway was unusable; enhanced error message handling
- Bvc5ChoiceGrid product template did not show interstitial page for up-sells/cross-sells
- Category list in admin did not page correctly
- Exclude kits and gift certificates from product feeds and product exports
- After updating an additional product image the Update & Delete buttons throw an error (and are no longer images)
- Unable to edit product variations on New and Edit Order pages in admin
- InternalProduct.CountOfAll() cannot be run inside a transaction which caused problems
- SQL Server 2008 can still need to have full text enabled for a database
- Firefox was unable to determine the file extension of product downloads
- Error occured when editing an order where one of the products has been deleted from the catalog
- Hitting 'Enter' key on change password page performed a site search
- Gracefully handle empty values for CustomProperties without relying on Try/Catch and also set default values in database
- Google Trusted Stores integration did not work properly due to a JavaScript error
- Blank payment methods, in addition to the real payment method, were added to orders placed in the admin
- New Order page was calculating loyalty points for the admin user not the customer
- New Order page was saving customer instructions to a public note rather than the instructions field
- Coupon codes enter on One Page Checkout Plus were not reflected until page was reloaded again
- Prevent adding of choice combination products (child products) via the product import
- Prevent "Free Promo Item" and "Free Promo Item By Amount" offers from re-adding removed promo items
- Bvc2013 product template displayed non-moderated product reviews
- Cart shipping calculator did not update shipping total and rates when adding a shipping coupon code until page was reloaded
- Product offers did not work when editing an order in the admin
- Google Shopping feed generation fails on second attempt (and all subsequent attempts until application is restarted)
- Some environments experienced an error in the Feed Engine when it called UrlEncode on application start
- Daily Sales report had SubTotal and Discounts column total fields swapped
- One Page Checkout Plus did not always calculate tax when shipping to the billing address
- User ID removed from order when Process New Order workflow failed
- Customer name in their address was being overwritten using customer's name from PayPal
- One Page Checkout plus credit card show/hide behavior did not work properly after an AJAX update
- Loyalty points were not credited when 'charge full amount at checkout' set because Payment Changed workflow is not run
- UpdateLoyaltyPoints causes workflow to fail if it returns false--changed to always return true and added logic to skip processing if order is not tied to a user account
- Ensures that FTS is enabled for database
- global gift wrap charge did not work
- Authorize.Net fixes: disallow duplicate captures for a single payment, don't lose transaction reference number when such is attempted, fix test mode
- Increase product Short Description character limit from 255 to 512 characters to match database field limit
- prevent adding custom URLs and making needless updates when updating choice combination products via the Import
- copying an order to the cart (from the order history page) verifies that items are still in stock and available
- PayPal Checkout -- store region abbreviation for RegionName field to be consistent with the rest of the app. This fixes an integration problem with Web2Market's Shipper software.
- Choice Combination fixes -- needlessly regenerating combinations, not regenerating choice combinations when it should, prematurely removing variants, throwing .net error for choices with no options
- prevent Add to Cart button from showing for kits that require selections
- hitting 'Enter' key in Qty box on product page templates performs search rather than adding item to cart
- ProductFile.FindByFileNameAndDescription function sometimes crashed application
- Deleting products or categories assigned to offers caused edit page to throw error
- Adding new address to user edit page overwrites first address in address book
- Bill to Same address checkbox does not always work correctly on One Page Checkout and One Page Checkout Plus
- Changed "U.A.E." country name to "United Arab Emirates" to fix USPS real-time rates
- Empty bullet points no longer display in cart for HTML inputs
- Duplicate drop shipper emails sent when order payment status changed
- Product price on placed orders updated to current product price when editing an order
- One Page Checkout Plus only validate account creation password fields when required
- NewOrder & EditOrder pages show empty dropdown instead of a textbox for countries without defined states/regions
- prevents errors when upgrading from pre-2013 versions related to loading user data from the database before it has been upgraded
- prevent editing choice combination products as regular products in the admin
- Top Selling products displayed child products--now aggregated with parent
- Product could be added to the cart without meeting the minimum order qty
- Unavailable products could be added to the cart from the wish list
- User account email address was displayed on order edit page rather than the actual email address on the order
- Avalara integration now adds freight as a line item
- Return fixes: prevent un-submitted returns from being saved to database; remove un-submitted returns from database; validate return quantities; product name did not display if item was removed from catalog
- [[Product.SitePrice]] replacement tag did not work properly for kits
- Free Promo Item and Free Promo Item By Amount fixes
- URL Redirector was encoding RegEx URLs which caused them to not work properly
- UrlRedirect FindByType and FindByRequestedUrl web service calls did not use the correct functions internally
- URL Redirector allowed duplicate RegEx URLs; import/export now uses bvin for key
- User name disappeared from Logout link on postback
- IsBackordered property returned incorrect result; added same property to Kit object
- Payment action of "Void" was always used in Audit Log regardless of actual payment action
- Prevent inventory from being set on products that don't have inventory enabled
- Product feeds were using wrong inventory field
- Unable to determine current category when running application in a sub-folder
- Prevent invalid Category.ParentId values from entering the database through the import
- PayPal phone number was being overwritten on checkout page
- Inputs and modifiers now display in [[LineItem.InputsAndModifiers]] replacement tag
- Prevent products with variants from being added to a kit (since they're not supported)
- Prevent adding a choice without any options
- Saving the product categories page caused product to be moved to the bottom of categories where it already was assigned
- Validate choices/modifiers/inputs before entering PayPal Express Checkout
- North Korea had South Korea's country info which prevented South Korea real-time rates from working in some cases
- Free shipping offers caused real-time rates to not work
- Product Batch Edit pages throws error when 1-10 products are previewed/to-be-edited.
- Corrected web service API functions for custom properties; added missing ones
- Disabled offers weren't being rejected when their coupon codes were entered
- Paypal Express checkout bug: doesn't copy address information returned to PayPal to order; also, company name gets written over on final checkout page
- SRRP MultipleChoiceField type property values were being compared using their bvin rather than their value
- Assigning user to new and edit order pages in admin did not update pricing if user belonged to a price group
- Prevent assigning Category's parent as itself via import tool
- Parent product's inventory record wasn't always created or updated with the current status or quantities--missing inventory record created issues like product not appearing on category pages
- Kit validation did not work in all scenarios
- Inactive (but in-stock) items could be added to cart when copying a past order to the cart
- Error page still used the Redirector even when the Redirector was disabled
- Facebook OpenGraph price property would display -1 when not on a product page
- USPS First Class rate would not calculate for packages under 3.5 ounces
- One Page Checkout Plus sometimes did not charge tax properly
- Fresh installs sometimes had issues generating encryptions keys
- Inventory tracking wasn't always disabled for gift certificates
- Gift Certificate templates could be incorrectly altered by the default template settings or the import tool
- Advanced site search did not use the CategoryId parameter (e.g. selecting a category on the search page had no effects)--also added processing of ExcludedSpecialProductType, SpecialProductType, and NotCategoryId parameters]
- Fixed-price Gift Certificates did not display their price on the product page
- Prevent Gift Certificates from being gift wrapped
- Category import can now use newly inserted categories in subsequent rows rather than having to run a second import to use these new categories
- Increase number of credit card expiration date years to support cards with more future expiration dates (like those in Europe)
- One Page Checkout Plus shipping rates did not always update, especially when using FedEx real-time rates
- Redirecting from non-standard domain to a rewritten URL used the un-rewritten URL
- Don't prompt to create redirects for deleted CustomLink and CustomPage categories
- Category import throws a string format error when validation finds that the RewriteUrl already exists
- Added validation to Bvc5ChoiceGrid product template to force user to enter a quantity--previously the page would just refresh and do nothing
- Bulk Order List and Bulk Order Quantity List category templates allowed adding items with choices/inputs/modifiers to cart without entering them (instead of display the Details button), did not require the user to enter a quantity, and did not display kits
- Additional Images edit page--editing an image and then clicking the Edit button on a different image caused the first row Edit and Delete buttons to be replaced with Update and Cancel text buttons
- Estimate Shipping page--Region textbox not displayed when no regions are defined for a country
- Cybersource payment gateway--included required CybsSecurity.dll in /bin folder
- Buy X Get Y Category offer did not work properly when qualifying and promo categories were the same
- Include keyword query string parameter in paging URLs so that the search still works after the session has expired (or if the URL is copy/pasted)
- Import tool template validation did not update with newest list of available templates
- Product Grid content block displayed inactive products
- Incorrect Maldives culture code -- fixes error on Languages admin page when Maldives country is enabled
- Image browser pop-up sometimes stops popping up in Firefox