Releases: VirtoCommerce/vc-storefront
Releases · VirtoCommerce/vc-storefront
v3.2.10
- Now platform level option to disable anonymous users for specific store (VirtoCommerce/vc-module-store#14) is supported by storefront. (#220)
- Added user/password token based authentication to platform v3 API. (#235)
- User cache optimization was done, which should significantly reduce platform user query count. (#227)
- Swagger doc improvements to have convenient type names: replaced generic API result types with specific ones (#219); used manually created types instead of Autorest generated' ones (#253, #254).
- Improved extensibility for some storefront models. (#239)
ProductProperty.Hidden
is now populated to storefront. (#236)- Extended
IStoreService
for platform v3 support. (#264) - Added product fuzzy search ability. (#250)
- Added security check to
ApiOrderController.GetInvocePdf
method. (#251) - Upgraded Application Insights version to 2.9.1. to avoid memory leaks in 2.8.1. (#259)
- Fixed memory leaks caused by
WorkContext
objects. (#263) - Fixed bug with routing after
SetCompatibilityVersion(CompatibilityVersion.Version_2_2)
. (#252) - Fixed bug with "Featured" products sorting. (#248)
- Fixed bug with numeric subscription period in the cart. (VirtoCommerce/vc-theme-default#67)
- Fixed bug where current user groups weren't passed to the API due to incorrect cache key generation. (6d83b4e)
- Fixed bugs with missing fields mapping in converters (#244, 31bc2a2).
v3.2.9
- Added Swagger document for API controllers available at /docs/v1/docs.json. #202
- Migrated Storefront to NET Core 2.2.1. #205
- Added ability to reset password by SMS. #212
- Fixed 400 Bad Request errors occured sometimes for POST requests due to antiforgery validation. That situation could happen when static resource request enforced new antiforgery token issue, which made previously granted tokens invalid.
- Added response compression to storefront.
- Now proper error page is shown in case of 500 server in production configuration.
- Now properties
Group
,SortOrder
,LanuageCode
are properly filled inCatalog.ImageEntity
. #213 - Fixed the bug with the cache settings were taken from config weren't applied
- Fixed the bug with transient cart invalidation in cache. Before the fix all who used temporary cart shared single cached instance because of empty Id property.
- Fixed bug with
Contact
loosing its organizations on update. #215 - Moved
MemoryCacheExtensions
to Model project and switched Liquid engine to use this extension for cache. - Made
WorkContext.PageSize
configurable limited by configurablePageSizeMaxValue
. #208
appsettings.json
"VirtoCommerce": {
...
"PageSizeMaxValue": 100,
...
}
- Proper naming: pooling replaced with polling #207
v3.2.8
- The major performance bug fix. Changed the MemoryCacheExtensions logic to do not use CacheEntry lifetime for implicit adding cache dependencies. This behavior led to cache malfunction and fast expiration of objects stored in the cache.
- Has replaced the absolute expiration for caching user account with based on change token and polling requests to the platform API.
- Fixed bug in
Money.TruncatedAmount
v3.2.7
- Limit the
PageSize
taken from the query string #186 - Save buyer note in order #180
- Extend
Shopify.Product
withSku
property #174 - Added 'For N in every Y items' promotion rewards in the storefront discount evaluation logic
VirtoCommerce/vc-module-marketing#49 Epic task VirtoCommerce/vc-module-marketing#45 - Fix interval shown in the subscription details page #109
- Copy current user
UserGroups
toDynamicContent
evaluation context. That's fix allows to use user groups in dynamic content publishing conditions VirtoCommerce/vc-module-marketing#51
v3.2.6
- Update ASP.NET Core to 2.1.6 version
- Minor performance improvements:
- fixed regress-bug
ResponseCaching
doesn't work forAssetsController
actions. It was broken by settingX-XSRF-TOKEN
for each response in theAntiforgeryTokenMiddleware
. - do not evaluate price lists for anonymous user.
- calculate taxes on the storefront side if
Fixed tax rate
provider is used
- fixed regress-bug
- Minor bug fixes:
- added possibility to add variation in the bulk order view #172
- added the new property
Product.AvailableQuantity
to the liquidProduct
type - fixed routing ambiguity in error controller #169
- fixed
Reference not set
exception during marketing evaluation for user that doesn't have an associated contact record. #165 - fixed
Null reference exception
when merging an anonymous cart
v3.2.5
- Changed the default HTML encoding options, to not encode non-Latin characters
- Added
IncludeSubDomains
property for HSTS policy - Added possibility to disable cache #56
appsettings.json
"VirtoCommerce": {
...
"CacheEnabled": "true",
"CacheAbsoluteExpiration": "10:00:00"
...
}
- Added to possibility influence to search criteria of lazy loaded data from Liquid templates
params {[search criteria json]}
{% paginate collection.products by 5 params {"ResponseGroup":"ItemLarge"} %}
{% for product in collection.products%}
....
{% endfor %}
{% endpaginate %}
- Switched Product associations to data lazy loading and work with the new API of the platform associations #62
- Eliminated the manual ASP.NET routes registration, now it is done via attributes. #47
- Added support to enter multiple coupons on checkout #155
- Fixed
request too long error
when was trying loading product variations #148
v3.2.4
- Fixed the file system changes watching and cache invalidation
- Used case insensitive equals for find currency symbol from given isoCode
- Do not log out an anonymous user when the cookie expires (#127)
- Fixed bug with ArgumentOutOfRange exception during anonymous user login
- Added missed property mapping in the tax converter. It led to invalid tax calculation for products in the search list
- Added token validation to reset password and registration by invitation forms (#135)
- Feature Limit the reward for relative discount (#137)
- "version" parameter added to liquid context (#134)
- Switched the AsyncLock static type to use AsyncLock from Nito.AsyncEx library
- Moved the cache key generation for ShoppingCart from Controllers to the type ShoopingCart.GetCacheKey()
- Add customer login name into Application Insight events (#145)
- Added snapshot collection for exceptions into Application Insight
#140 - Fixed bug with incorrect authorization work for static pages
- Added check for user rejection (#146)
- Descriptions without language used as fallback https://github.com/Vir… (#139)
- Redirect to log in when cookie expired (#128)
v3.2.3
v3.2.2
v3.2.1
- Use of the
[ValidateAntiforegeryToken]
attribute for each API method individually, because using this attribute for the entire class extends its effect even on GET methods and it is invalid behavior. #123 - Added new
OnlyRegisteredUserAuthorizationHandler
policy to restrict access to some views for non registered users. - Added infrastructure to work with platform API by using OAuth2 access token authentification.
- Fixed the bug with the out-of-sync of cached security data between the storefront and the platform #111 #112
- Fixed bug with wrong product availability evaluation due to that fact that the store default fulfillment center wasn't taken into account
- The replaced use of the
ValueObject.GetHashCode
method in the construction of the cache key to string because of the high probability of duplication of hash values - Removed cart totals calculation from model properties. There must be only one place for this, cart module API.
#122 - Fixed bug with user impersonation