All Versions
49
Latest Version
Avg Release Cycle
34 days
Latest Release
549 days ago

Changelog History
Page 1

  • v1.12.2 Changes

    July 29, 2020

    ➕ Added

    • IMPORTANT for security reasons we added new config users.allowModification.
      This can help to dissallow modifying fields that shouldn't be changed by user.
    • ➕ Add helmet - enabled by default, you can pass configuration by adding config.server.helmet.config.
      🔧 More info about helmet configuration https://helmetjs.github.io/docs/
    • ➕ Add config users.tokenInHeader which allows to send token in header instead in query. Require to set on true same config in vsf-api.
    • 👉 Make calculation of bundled products price by options optional - @cewald (#4556)

    🛠 Fixed

    • ✂ remove deprecated value from attributesListQuery query - @gibkigonzo (#4572)
    • 🛠 Fixed dutch translations - @1070rik (#4587)
    • 🛠 localForage memory overload fixed. localForage.preserveCollections keeps names of collections to be preserved from being cleared. - @prakowski
    • 🛠 Fixed bug in restoreQuantity - getItem never returns cart item - @gibkigonzo (#4619)
    • Separate variant in findProductOption to get parent sku - @gibkigonzo (#4641)
    • 🛠 Fix wrong value in Cache-Control header for max-age - boehsermoe (#4657)
  • v1.12.1 Changes

    June 22, 2020

    ➕ Added

    • ➕ Add purgeConfig to default.json and purge-config loader - @gibkigonzo (#4540)
    • Load attributes data of attribute-meta for bundled and grouped products - @cewald (#4551)
    • Separate theme installation and add it as yarn init:theme or as a step in yarn installer. - @gibkigonzo (4534, #4552)

    🛠 Fixed

  • v1.12.0 Changes

    June 02, 2020

    ➕ Added

    • ➕ Add vsf-capybara support as a dependency and extend CLI to support customization - @psmyrek (#4209)
    • 👌 Support theme configuration via CLI - @psmyrek (#4395)
    • 👍 Allow parent_ids field on product as an alternative to urlpath based breadcrumb navigation (#4219)
    • ⚡️ Pass the original item_id when updating/deleting a cart entry @carlokok (#4218)
    • Separating endpoints for CSR/SSR - @Fifciu (#2861)
    • ➕ Added short hands for version and help flags - @jamesgeorge007 (#3946)
    • ➕ Add or operator for Elasticsearch filters in quickSearchByQuery and use exists if value is null - @cewald (#3960)
    • ➕ Add unified fetch in mappingFallback for all searched entities - @gibkigonzo (#3942)
    • ➕ add npm-run-all for parallel build - @gibkigonzo (#3819)
    • ➕ Add OutputCaching support for x-vs-store-code - @benjick (#3979)
    • The new search adapter api-search-query has been added. When you switch to it, by setting the config.server.api = "api-search-query" the ElasticSearch query is being built in the vue-storefront-api which saves around 400kB in the bundle size as bodybuilder is no longer needed in the frontend - @pkarw - #2167
    • 👍 This new api-search-query adapter supports the response_format query parameter which now is sent to the /api/catalog endpoint. Currently there is just one additional format supported: response_format=compact. When used, the response format got optimized by: a) remapping the results, removing the _source from the hits.hits; b) compressing the JSON fields names according to the config.products.fieldsToCompact; c) removing the JSON fields from the product.configurable_children when their values === parent product values; overall response size reduced over -70% - @pkarw
    • 0️⃣ The amp-renderer module has been disabled by default to save the bundle size; If you'd like to enable it uncomment the module from the src/modules and uncomment the product-amp and category-amp links that are added to the <head> section in the src/themes/default/Product.vue and src/themes/default/Category.vue
    • Reset Password confirmation page - @Fifciu (#2576)
    • ➕ Add Intl.NumberFormat()/toLocaleString() via polyfill support in NodeJs - @cewald (#3836, #4040)
    • ➕ Added saveBandwidthOverCache parameter for skipping caching for products data - @andrzejewsky (#3706)
    • 🆕 New zoom effect for product gallery images - @Michal-Dziedzinski (#2755)
    • ➕ Add custom currency separators and amount of fraction digits - @EndPositive (#3553)
    • Product Page Schema implementation as JSON-LD - @Michal-Dziedzinski (#3704)
    • ➕ Add /cache-version.json route to get current cache version
    • 👍 Built-in module for detecting device type based on UserAgent with SSR support - @Fifciu
    • ⚡️ Update to storefront-query-builder version 1.0.0 - @cewald (#4234)
    • 🚚 Move generating files from webpack config to script @gibkigonzo (#4236)
    • ➕ Add correct type matching to getConfigurationMatchLevel - @cewald (#4241)
    • 👌 Support useSpecificImagePaths with useExactUrlsNoProxy - @cewald (#4243)
    • ➕ Adds module which handles cache invalidation for Fastly. - @gibkigonzo (#4096)
    • ➕ Add vsf-cache-nginx and vsf-cache-varnish modules - @gibkigonzo (#4096)
    • ➕ Added meta info for CMS pages from Magento @mdanilowicz (#4392)
    • ➕ Add useful core events to server & logger - @cewald (#4419)

    🛠 Fixed

    • 🛠 Fixed resultPorcessor typo - @psmyrek
    • Negative price has doubled minus sign - @psmyrek (#4353)
    • 🛠 Fixed Search product fails for category filter when categoryId is string - @adityasharma7 (#3929)
    • ⏪ Revert init filters in Vue app - @gibkigonzo (#3929)
    • All categories disappearing if you add the child category name to includeFields - @1070rik (#4015)
    • 🛠 Fix overlapping text in PersonalDetails component - @jakubmakielkowski (#4024)
    • Redirect from checkout to home with a proper store code - @Fifciu
    • ➕ Added back error notification when user selects invalid configuration - @1070rik (#4033)
    • 🔧 findConfigurableChildAsync - return best match for configurable variant - @gibkigonzo, @cewald (#4042, #4216)
    • 👉 use storeCode for mappingFallback url - @gibkigonzo (#4050)
    • getVariantWithLowestPrice uses inexistent final_price property - @cewald (#4091)
    • 👍 Fixed NOT_ALLOWED_SSR_EXTENSIONS_REGEX to only match with file extensions having a dot - @haelbichalex (#4100)
    • 🛠 Fixed problem with not showing error message when placing an order fails - @qiqqq
    • Invoking afterCacheInvalidated server hook in a proper moment - @Fifciu (#4176)
    • 🛠 Fixed cart/isVirtualCart to return false when cart is empty - @haelbichalex(#4182)
    • 👉 Use setProductGallery in product/setCurrent to use logic of the action - @cewald (#4153)
    • 👉 Use same data format in getConfigurationMatchLevel - @gibkigonzo (#4208)
    • ✂ removed possible memory leak in ssr - @ResuBaka (#4247)
    • 🛠 Bugfix for reactivity of current_configuration in populateProductConfigurationAsync - @cewald (#4258)
    • 🛠 Bugfix for build exception in Node v13.13+ - @cewald (#4249)
    • Convert option ids to string while comparing them in getProductConfiguration - @gibkigonzo (#4484)
    • 🔄 change value to number in price filter - @gibkigonzo (#4478)

    🔄 Changed / Improved

  • v1.11.4 Changes

    May 26, 2020

    🔄 Changed / Improved

    • 👉 use yarn in cli installer - @gibkigonzo (#4292)
    • disable out of stock notification when config.stock.allowOutOfStockInCart is true - @gibigonzo (#4340)

    🛠 Fixed

    • 👉 Use LRU as object contructor based on newest changes in module - @gibkigonzo (#4242)
    • 🛠 Fixed ESC button action (minicart, wishlist) - @mdanilowicz (#4393)
    • 🛠 Fixes problems related to tax calculation and price filter in multistore setup - @juho-jaakkola (#4376)
    • Blank order details page - @mdanilowicz (#4382)
    • 🔀 upadate cart hash after sync with backend - @gibkigonzo (#4387)
    • exit from errorHandler after redirection - @gibkigonzo (#4246)
    • ➕ add redirection in component for simple product related to configurable product - @gibkigonzo (#4359)
    • disable sending carrier_code or method_code for virtual products,
      adjust vue-carousel and vuelidate to newest versions api,
      ➕ add aplha validators for register fields - @gibkigonzo (#4455, #4461)
  • v1.11.3 Changes

    April 27, 2020

    🔄 Changed / Improved

    🛠 Fixed

    • Fixes when having multiple custom options with overlapping option_type_id values, selecting 1 changes the others - @carlokok (#4196)
    • 💅 Update eslint and fix code style. - @gibkigonzo (#4179 #4181)
    • 🛠 Fixes bug that caused addToCart action not to display messages to user - @juho-jaakkola (#4185)
    • ➕ add missing cache tags for category and product - @gibkigonzo (#4173)
    • ➕ add ssrAppId to avoid second meta render on csr - @gibkigonzo (#4203)
    • 0️⃣ take control over default broswer behavior and use saved category page size to load prev products - @gibkigonzo (#4201)
    • ⚡️ update getCurrentCartHash after add/remove coupon - @gibkigonzo (#4220)
    • ⚡️ update replaceNumberToString, so it will change ONLY numbers to string - @gibkigonzo (#4217)
    • 👍 allow empty shipping methods in checkout - @gibkigozno (#4192)
    • ⚡️ configure products before price update - this is needed to have variant sku as product sku - @gibkigonzo (#4053)
    • omit stock and totals when creating cart hash, it is not needed to compare products - @gibkigozno (#4235, #4273)
  • v1.11.2 Changes

    March 10, 2020

    ➕ Added

    • ➕ Add isBackRoute that informs if user returns to route, skip loading products for category if he does - @gibkigonzo (#4066)
    • ➕ Add server context to async data loader - @gibkigonzo (#4113)
    • ➕ Add preload and preconnect for google font - @gibkigonzo (#4121)

    🔄 Changed / Improved

    🛠 Fixed

    • ➕ add disconnect and sync options for cart/clear - @gibkigonzo (#4062)
    • 👉 add '1' as searched value for 'is_user_defined' and 'is_visible' (createAttributesListQuery) - @gibkigonzo (#4075)
    • 🛠 Fix possibility to add same SKU with different custom options to the cart - @Michal-Dziedzinski (#3595)
    • 🛠 Fix calculateProductTax to find matching tax rules from ES for current product - @DylannCordel (#4056)
    • Set totals in products in cart always in reactive way - @psmyrek (#4079)
    • 🛠 Fix sync cart between tabs - @Michal-Dziedzinski (#3838)
    • ➕ Add currentRoute to url module and return cached requests - @gibkigonzo (#4077, #4066)
    • Hide original radio button behind built label - @EndPositive (#4098)
    • 🎉 Disable overriding route state in INITIAL_STATE - @gibkigonzo (#4095)
    • 🛠 Fix gtm order placement event when user was guest - @Michal-Dziedzinski (#4064)
    • 🛠 Fix gtm event switched properties - @Michal-Dziedzinski (#4106)
    • 🚚 Group 'productChecksum' and 'productsEquals' logic for all supported products types. Remove 'checksum' when editing product.
      ✂ Remove and add coupon when user login Remove 'NA' as default company. Show qty in microcart for all types of product.
      ✂ Remove preload font - it gives good performance, but vue-meta refresh page, because there is script onload. - @gibkigonzo (#4128)
    • Keep old category before route is resolved - @gibkigonzo (#4124)
    • ➕ Added comments in 'productsEqual' and change logic for different types of products. Remove login user after order in Checkout. Allow changing qty for 'group' and 'bundle'.products - @gibkigonzo (#4144)
    • 🛠 Fix incorrect root categories when extending includeFields - @Michal-Dziedzinski (#4090)
    • ➕ Add onlyPositive prop to BaseInputNumber to not allow user type negative value - @Michal-Dziedzinski (#4136)
    • Await for cart/authorize while login user - @gibkigonzo (#4133)
    • 👍 Fixed NOT_ALLOWED_SSR_EXTENSIONS_REGEX to only match with file extensions having a dot - @haelbichalex (#4100)
    • ➕ Add lazy load for vue-carousel - @gibkigonzo (#4157)
  • v1.11.1 Changes

    February 05, 2020

    ➕ Added

    🔄 Changed / Improved

    • Set cache tag when loading a category - @haelbichalex (#3940)
    • 🏗 In development build webpack.config.js in theme folder is now called without the default key

    🛠 Fixed

    • ➕ Added Finnish translations - @mattiteraslahti and @alphpkeemik
    • ⚡️ Updated Estonian translations to match 1.11 - @alphpkeemik
    • 🛠 CookieNotification CSR&SSR mismatch fixed - @Fifciu (#3922)
    • The attribute filter in attribute/list was not filtering the already loaded attributes properly - @pkarw (#3964)
    • ⚡️ Update hasProductErrors in Product component and support additional sku in custom options - @gibkigonzo (#3976)
    • 🛠 Fixed logic for generating ${lang}.json files in multi-store setup - @jpkempf
    • 🛠 Fixed logic for collecting valid locales in single-store, multi-lang setup - @jpkempf
    • 👉 Make initial custom option value reactive - @gibkigonzo
    • 🛠 Fixed No image thumbnails leaded on 404 page - @andrzejewsky (#3955)
    • 🛠 Fixed Stock logic not working with manage_stock set to false - @andrzejewsky - (#3957)
    • 👌 Support old price format in ProductPrice - @gibkigonzo (#3978)
    • 🛠 Fixed product bundle comparison condition - @gk-daniel (#4004)
    • ➕ Add event callback for checkout load initial data - @gibkigonzo(#3985)
    • 🛠 Fixed Processing order... modal closing too early - @grimasod (#4021)
    • 🔀 Keep registered payment methods after syncTotals - @grimasod (#4020)
    • ➕ Added status code to the cache content and use it in cache response - @ResuBaka (#4014)
    • 🛠 Fixed sku attribute is missing on compare page - @gibkigonzo (#4036)
    • 🛠 Fixed z-index for aside in compare list - @gibkigonzo (#4037)
    • Disable checking max quantity when manage stock is set to false - @gibkigonzo (#4038)
    • ➕ Add products quantity only when token is created - @gibkigonzo (#4017)
    • ⏪ Revert init filters in Vue app - add storeView to global/store and pass it to filters - @gibkigonzo (#3929)
    • 🛠 Fix v-model not working in BaseRadioButton - @lukeromanowicz (#4035)
    • always keep filters values as array of object - @gibkigonzo (#4045)
    • 🛠 Fix ecosystem config to work with ts-node - @andrzejewsky (#3981)
  • v1.11.0 Changes

    December 20, 2019

    ➕ Added

    • ➕ Add unit tests for core/modules/url - @dz3n (#3469)
    • ➕ Add unit test for core/modules/checkout - @psmyrek (#3460)
    • ➕ Add defense against incomplete config in ssr renderer - @oskar1233 (#3774)
    • ➕ Add unit tests for core/modules/order - @dz3n (#3466)
    • ➕ Add unit tests for core/modules/user - @dz3n (#3470)
    • ➕ Add to cart from Wishlist and Product listing for simple products - @Dnd-Dboy, @dz3n (#2637)
    • ➕ Add global Category and Breadcrumb filters, defined in local.json - @grimasod (#3691)
    • ➕ Add constant which conditions the number of products loading per page - @AdKamil (#3630)
    • ➕ Added price filtering key as config - @Roywcm

    🛠 Fixed

    🔄 Changed / Improved

    • 🔄 Changed pre commit hook to use NODE_ENV production to check for debugger statements - @ResuBaka (#3686)
    • 👌 Improve the readability of 'getShippingDetails()' and 'updateDetails()' method of UserShippingDetails component - @adityasharma7 (#3770)
    • 🐳 Keep git after yarn install in dockerfile - @ddanier (#3826)
    • ⚡️ Update the Storage Manager shipping details cache immediately when then Vuex checkout store is updated - @grimasod (#3894)
  • v1.11.0-rc.2 Changes

    ➕ Added

    • ➕ Add defense for incomplete config in preferchCachedAttributes helper
    • ➕ Add unit test for `core/modules/cms` - @krskibin (#3738)

    🛠 Fixed

    • 🛠 Fixed deprecated getter in cmsBlock store - @resubaka (#3683)
    • 🛠 Fixed problem around dynamic urls when default storeView is set with appendStoreCode false and url set to / . @resubaka (#3685)
    • 🛠 Fixed three problems you can run into when you have bundle products - @resubaka (#3692)
    • Reset nested menu after logout - @gibkigonzo (#3680)
    • 🛠 Fixed handling checkbox custom option - @gibkigonzo (#2781)
    • 🛠 Fixed typos in docs - @afozbek (#3709)
    • 🛠 Fixed VSF build fails for some people due to lack of dependencies in the container - @krskibin (#3699)
    • 🛠 Fixed two graphql problems, one with cms_blocks and the other with default sort order - @resubaka (#3718)
    • 👍 Allow falsy value for parent_id when searching category - @gibkigonzo (#3732)
    • ✂ Remove including .map files in service worker cache - @gibkigonzo (#3734)
    • 🔄 Changed notification message object to factory fn - @gibkigozno (#3716)
    • Load recently viewed module in my account page - @gibkigonzo (#3722)
    • ➕ Added validation message for city field on checkout page - @dz3n (#3723)
    • 👉 Make price calculation based on saved original prices - @gibkigonzo (#3740)
    • Improving is_comparable to work with booleans and digits - @dz3n (#3697)
    • 🛠 Fixed displaying categories on search menu - @andrzejewsky (#3758)
    • 🛠 Fixed broken link for store locator - @andrzejewsky (#3754)
    • 🛠 Fixed instant checkout functionality - @andrzejewsky (#3765)
    • 🛠 Fixed links to the promoted banners - @andrzejewsky (#3753)
    • 🛠 Fixed missing parameter in the compare list - @andrzejewsky (#3757)
    • 🛠 Fixed product link on mobile - @andrzejewsky (#3772)
    • Custom module ConfigProvider aren't called anymore - @cewald (#3797)

    ➕ Added

    • ➕ Added Estonian translations - @alphpkeemik
    • ➕ Added support for ES7 - @andrzejewsky (#3690)
    • ➕ Added unit tests for core/modules/mailer - @krskibin (#3710)
    • Get payment methods with billing address data - @rain2o (#2878)
    • ➕ Added custom page-size parameter for category-next/loadCategoryProducts action - @cewald (#3713, #3714)
    • ✂ Remove unused dayjs locales - @gibkigonzo (#3498)
    • check max quantity in microcart - @gibkigonzo (#3314)
    • ➕ Add unit tests for core/modules/newsletter - @psmyrek (#3464)
    • ➕ Add unit test for core/modules/wishlist - @psmyrek (#3471)

    🔄 Changed / Improved

    • 👉 Use encodeURIComponent to encode get parameters in multimatch.js - @adityasharma7 (#3736)
  • v1.11.0-rc.1 Changes

    ➕ Added

    • ➕ Add unit testing to Husky on pre-push hook - @mattheo-geoffray (#3475)
    • ➕ Add unit testing on breadcrumbs feature - @mattheo-geoffray (#3457)
    • HTML Minifier has been added, to enable it please switch the config.server.useHtmlMinifier - @pkarw (#2182)
    • 🏗 Output compression module has been added; it's enabled by default on production builds; to disable it please switch the src/modules/serrver.ts configuration - @pkarw (#2182)
    • Sort CSV i18n files alphabetically in pre-commit Git hook - @defudef (#2657)
    • 👍 Cache invalidate requests forwarding support - @pkarw (#3367)
    • Extend storeview config after another storeview in multistore mode - @lukeromanowicz (#3057, #3270)
    • 0️⃣ Default storeview settings are now overridden by specific storeview settings - @lukeromanowicz (#3057)
    • 👍 Apache2 proxy header support for store based on host - @resubaka (#3143)
    • Items count badges for Compare products and wishlist icons at header - @vishal-7037 (#3047)
    • ➕ Added product image in order summary - @obsceniczny (#2544)
    • ➕ Add icons on the product tiles that allow to add to the wish list and to the list to compare products from the list of products - @Michal-Dziedzinski (#2773)
    • Get also none product image thumbnails via API - @cewald, @resubaka (#3207)
    • ➕ Added a config option optimizeShoppingCartOmitFields - @EmilsM (#3222)
    • ➕ Added information on the number of available products - @Michal-Dziedzinski (#2733)
    • ➕ Added possibility to change color or size of the product that is already in the cart - @andrzejewsky (#2346)
    • Experimental static files generator - @pkarw (#3246)
    • ➕ Added price formatting based on locales in multistore - @andrzejewsky (#3060)
    • Added support for tax calculation where the values from customer_tax_class_ids is used - @resubaka (#3245)
    • ➕ Added loading product attributes (entities.productListWithChildren.includeFields) on category page - @andrzejewsky (#3220)
    • ➕ Added config to set Cache-Control header for static assets based on mime type - @phoenix-bjoern (#3268)
    • 👌 Improve category-next/getCategoryFrom and category-next/getCurrentCategory to be more flexible - @cewald (#3295)
    • ➕ Added test:unit:watch with a workaround of a jest problem with template strings - @resubaka (#3351)
    • ➕ Added test to multistore.ts so it is nearly fully unit tested - @resubaka (#3352)
    • ➕ Added test:unit:watch with a workaround of a jest problem with template strings - @resubaka (#3351, #3354)
    • ➕ Added test to helpers/index.ts so it is partly tested - @resubaka (#3376, 3377)
    • ➕ Added hooks in cart module - @andrzejewsky (#3388)
    • ➕ Added config for the defaultTitle compitable with multistore - @cnviradiya (#3282)
    • ➕ Added husky package to manage lint check only for staged files in git @lorenaramonda (#3444)
    • 🔄 Change text from "is out of the stock" to "is out of stock" - @indiebytes (#3452)
    • ➕ Added general purpose hooks - @andrzejewsky (#3389)
    • ➕ Added loading of your own searchAdaptor - @resubaka (#3405K)
    • ➕ Added lazy hydration for home page - @filrak (#3496, #3565)
    • ➕ Added i18n support for modules - @dz3n (#3369)
    • ➕ Added support for creating localized child routes - @gibkigonzo (#3489)
    • ➕ Added tests for actions and mutations in 'core/modules/recently-viewed' - @gibkigonzo (#3467)
    • ➕ Added tests for actions, mutations and components in 'core/modules/compare' - @gibkigonzo (#3467)
    • ➕ Added support to load tracing libs at the start of the app - @resubaka (#3514, #3566)
    • ➕ Added tests for actions and mutations in 'core/modules/notification' - @gibkigonzo (#3465)
    • ➕ Added tests for actions, mutations and helpers in 'core/modules/review' - @gibkigonzo (#3468)
    • ➕ Add new Google-Tag-Manager module using new module registration - @cewald (#3524, #3509)
    • Exclude GTM product attributes setup into config json - @dlandmann, @cewald (#3509, #3524)
    • ➕ Add configuration option to format currency sign placement and space in price - @cewald (#3574)
    • ➕ Add ability to pass pageSize and currentPage to order history API call for pagination - @rain2o
    • ➕ Added italian translations - @lorenaramonda (3076)
    • Route Manager Queue for adding routes efficiently and with an optional priority - @grimasod (#3540)
    • ➕ Added tests for cart module actions - @andrzejewsky (#3023)
    • 🛠 Fixed a problem with type changes in the state when extending a store - @resubaka (#3618)

    🛠 Fixed

    • 🛠 Attributes loader, breadcrumbs loader fixes - @pkarw (#3636)
    • 🛠 Fix for the product attribute labels displayedd on the PDP - @pkarw (#3530)
    • 🛠 Fix the mix of informal and polite personal pronouns for German translations - @nhp (#3533)
    • 🛠 Fix for comparison list being not preserved between page reloads - @vue-kacper (#3508)
    • 🛠 Fix 'fist' typos - @jakubmakielkowski (#3491)
    • 🛠 Fix for wrong breadcrumb urls in the multistore mode - @pkarw (#3359)
    • 🛠 Fix for displaying gallery images for unavaialble product variants - @pkarw (#3436)
    • 🛠 Fix for null in search query input - @pkarw (#3474)
    • 🛠 Unable to place order has been fixed; the entities module was wrongly imported - @pkarw (#3453)
    • 🛠 Fixed product link in wishlist and microcart - @michasik (#2987)
    • Fixed naming strategy for product prices - special_priceInclTax -> special_price_incl_tax, priceInclTax -> price_incl_tax, priceTax -> price_tax; old names have been kept as @deprecated - @pkarw (#2918)
    • The final_price field is now being used for setting the special_price or price of the product (depending on the value); final_price might been used along with special_price with Magento for the products with activated catalog pricing rules - @pkarw (#3099)
    • Resolve problem with getting CMS block from cache - @qiqqq (#2499)
    • 👉 Make image proxy url work with relative base url - @cewald (#3158)
    • 🛠 Fixed memory leak with enabled dynamicConfigReload - @dimasch (#3075)
    • 🛠 Fixed error for the orderhistory null for google-tag-manager extension - @cnviradiya (#3195)
    • 🛠 Fixed swatches not rendering properly at product detail page issue - @vishal-7037 (#3206)
    • 🛠 Fixed label of configurable options in cart after product just added - @cheeerd (#3164)
    • 🛠 Fixed eslint warning in Product Page, removed v-if from v-for node - @przspa (#3181)
    • 🛠 Fixed aspect ratio in ProductImage component - @przspa (#3187)
    • 🛠 Fixed AMP Product page - @przspa (#3227)
    • 🛠 Fixed when store has updated, but plugin didn't called - @serzilo (#3238)
    • 🛠 Fixed first call of prepareStoreView when SSR - @resubaka (#3244)
    • ➕ Add ./packages as volume to docker-compose.yml - @cewald (#3251)
    • 🛠 Fixed mail sending and add error logger - @Michal-Dziedzinski (#3265)
    • 🛠 Fixed page not found http status code - @phoenix-bjoern (#3243)
    • 🛠 Fixed missing coupon code after user logged in - @andrzejewsky (#3153)
    • 🛠 Fixed bug around appendStoreCode in formatCategoryLink. - @resubaka (#3306)
    • 🛠 Fixed static category links in cms contents on homepage and MinimalFooter - @MariaKern (#3292)
    • 🛠 Fixed tax calulaction where products was send as parameter but products.items where the right paramater - @resubaka (#3308)
    • 🛠 Fixed module extendStore for array property inside store - @przspa (#3311)
    • 🛠 Fixed ordering of the categories and subcategories in sidebar - @andrzejewsky (#2665)
    • Some SSR problems with urlDispatcher during multireloading page - @patzick (#3323)
    • 🛠 Fixed two bugs in category-next/getCategoryFrom (#3286) and category-next/getCurrentCategory (#3332) - @cewald (#3295)
    • 🛠 Fixed login popup close icon position - @przspa (#3393)
    • 🛠 Fixed styles for original price on Wishlist sidebar - @przspa (#3392)
    • Redirect loop on dispatching dynamic routes in CSR running multistore mode - @cewald, @lukeromanowicz, @resubaka (#3396)
    • Adjusted ProductVideo props to right names - @przspa (#3263)
    • 🛠 Fixed Doubled SKU row in compare tab - @manvendra-singh1506 (#3447)
    • 🛠 Fixed warning in product details because of duplicate product property in AddToCompare mixin - @cewald (#3428)
    • 🛠 Fixed adding unconfigured product to cart from homepage - @lukeromanowicz (#3512)
    • 🛠 Fixed "Clear Wishlist" Button - @dz3n (#3522)
    • 🛠 Fixed hash in dynamically resolved urls causing resolving issues - @lukeromanowicz (#3515)
    • 🛠 Fix invalid routes in ButtonOutline and ButtonFull - @lukeromanowicz (#3541, #3545)
    • 🛠 Fix adding notification with 'hasNoTimeout' after normal notification - @gibkigonzo (#3465)
    • Logged-in user's shipping address on checkout page - @przspa (#2636)
    • 🛠 Fix for the "add to cart" test
    • 🛠 Fixed error with dayjs when locale is 2-digit (without a '-') @rain2o (#3581)
    • 🛠 Fix applying coupon - @andrzejewsky (#3578)
    • 🔌 Prevent caching storage instance in plugin module scope - @gibkigonzo (#3571)
    • 🛠 Fixed incorrect image sizes in related section on product page - @andrzejewsky (#3590)
    • 🛠 Fix typo on default language - @lorenaramonda (#3076)
    • ✂ Remove race condition while loading locale messages - @gibkigonzo (#3602)
    • 🛠 Fix displaying same country twice in the in the country switcher - @andrzejewsky (#3587)
    • 🛠 Fixed resolving store code on SSR - @andrzejewsky (#3576)
    • Clear user data if error occurs while login - @gibkigonzo (#3588)
    • 🛠 Fix loading bestsellers on 404 error page - @andrzejewsky (#3540)
    • ✂ Remove modifying config by reference in multistore - @gibkigonzo (#3617)
    • ➕ Add translation key for add review - @gibkigonzo (#3611)
    • ➕ Add product name prop to reviews component - @gibkigonzo (#3607)
    • 0️⃣ Show default cms pages when current store code is not equals to default - @andrzejewsky (#3579)
    • 🛠 Fix login errors with mailchimp - @gibkigonzo (#3612)
    • Hydration error on homepage - @patzick (#3609)
    • 🛠 Fix adding products with custom options - @andrzejewsky (#3597)
    • check silentMode in errors on the same level as task.silent - @gibkigonzo (#3621)
    • ➕ Add missing parameters (size,start) to quickSearchByQuery() in attribute/list action - @cewald (#3627)
    • 🛠 Fix breadcrumb homepage link in cms static pages - @andrzejewsky (#3631)
    • 🛠 Fixed special price that can break when you change pages (browser navigation for/back) or just go from category to product page - @resubaka (#3638)
    • 🛠 Fixed problem with losing browser history - @andrzejewsky (#3642)
    • 🛠 Fixed wrong links on the static pages - @andrzejewsky (#3659)
    • 🛠 Fixed problem with changing quantity in offline mode on product page - @andrzejewsky (#3662)
    • 🛠 Fixed problem with extending storeView configuration - @andrzejewsky (#3655)
    • ✂ Removed infinite loop when changing checkbox in shipping details - @gibkigonzo (#3656)
    • 🛠 Fixed displaying single order in the profile - @andrzejewsky (#3663)
    • 💻 Make microcart ui consistent for all types of products - @gibkigonzo (#3673)
    • 🛠 Fixed missing storeCode in metaInfo - @andrzejewsky (#3674)
    • ✂ Removed showing popup when you have just logged out - @andrzejewsky (#3680)

    🔄 Changed / Improved

    • 🔄 Change Product quantity field validation - @jakubmakielkowski (#3560)
    • ⚡️ Update confirmation page in offline mode - @jakubmakielkowski (#3100)
    • ✂ Removed server order id from ThankYouPage - @federivo (#3480)
    • 0️⃣ Shipping address is saved as default when not logged in user chooses to create account during checkout - @iwonapiotrowska (#2636)
    • The attribute.list_by_id and attribute.list_by_code from the window.__INITIAL_STATE__ which could be even up to 50% of the product page size. - @pkarw (#3281)
    • 💅 Can set transition style for Modal content - @grimasod (#3146)
    • ➕ Added stock to cart items - @cheeerd (#3166)
    • 🚚 Moves theme specific stores and components into themes - @michasik (#3139)
    • ⬇ Decreased the localStorage quota usage + error handling by introducing new config variables: config.products.disablePersistentProductsCache to not store products by SKU (by default it's on). Products are cached in ServiceWorker cache anyway so the product/list will populate the in-memory cache (cache.setItem(..., memoryOnly = true)); config.seo.disableUrlRoutesPersistentCache - to not store the url mappings; they're stored in in-memory cache anyway so no additional requests will be made to the backend for url mapping; however it might cause some issues with url routing in the offline mode (when the offline mode PWA installed on homescreen got reloaded, the in-memory cache will be cleared so there won't potentially be the url mappings; however the same like with product/list the ServiceWorker cache SHOULD populate url mappings anyway); config.syncTasks.disablePersistentTaskQueue to not store the network requests queue in service worker. Currently only the stock-check and user-data changes were using this queue. The only downside it introuces can be related to the offline mode and these tasks will not be re-executed after connectivity established, but just in a case when the page got reloaded while offline (yeah it might happen using ServiceWorker; syncTasks can't be re-populated in cache from SW) - @pkarw (#3180)
    • 🌐 Translation file improvements - @vishal-7037 (#3198)
    • ➕ Added configuration for max attempt task & cart by pass - @cnviradiya (#3193)
    • ➕ Added catching of errors when ES is down - @qiqqq
    • ➕ Added debounce for updating quantity method in the cart - @andrzejewsky (#3191)
    • 🆕 New modules API and rewrite - @filrak, @JCown (#3144)
    • ♻️ Refactored the vuex user module - @andrzejewsky (#3095)
    • 🌐 Brazilian Portuguese (pt_BR) translation improved - @pxfm (#3288)
    • 🚚 Moved store/lib to /lib - @pxfm (#3253)
    • ♻️ Corrected usage of "configurableChildrenStockPrefetchStatic" setting, refactored logic to tested helper - @philippsander (#859)
    • 👌 Improved some of the german translations in spelling and wording - @MariaKern (#3297)
    • ➕ Added lazy-hydrate for category products - @andrzejewsky (#3327)
    • ♻️ Refactored vuex order module - @andrzejewsky (#3337)
    • 🔄 Changed body no-scroll behavior for overlapped element - @przspa (#3363)
    • config.dynamicConfigReload option should use deep copy for Object.assign() - @cewald (#3372)
    • ➕ Add translation for the defaultTitle - @cnviradiya (#3282)
    • ♻️ Refactored vuex tax module - @andrzejewsky (#3337)
    • ♻️ Refactored vuex stock module - @andrzejewsky (#3337)
    • ✂ Removed extra unnecessary code from BaseInputNumber - @cnviradiya (#3410)
    • ♻️ Refactored vuex checkout module - @andrzejewsky (#3337)
    • 🚚 Moved my-account authentication guard to MyAccount core page - @przspa (#3325)
    • ♻️ Refactored vuex compare module - @andrzejewsky (#3337)
    • ♻️ Refactored vuex whishlist module - @andrzejewsky (#3337)
    • ♻️ Refactored vuex cms module - @andrzejewsky (#3337)
    • ♻️ Refactored vuex review module - @andrzejewsky (#3337)
    • ♻️ Refactored vuex newsletter module - @andrzejewsky (#3337)
    • 🔄 Changed type of Id fields related to product, category and attribute to support numeric as well as string - @adityasharma7 (#3456)
    • ⚡️ Optimized fetching product data on homepage - @lukeromanowicz (#3512)
    • 👍 localizedRoute() now supports path (and prefers over fullPath) in LocalizedRoute objects - @lukeromanowicz (#3515)
    • 🚚 Move setting review_status from VSF to VSF-API - @afirlejczyk
    • localizedRoute() doesn't return urlDispatcher routes anymore. Use localizedDispatcherRoute instead - @lukeromanowicz (#3548)
    • 👌 Improved scrolling in Safari on iOS devices (sidebars) - @phoenixdev-kl (#3551)
    • 👌 Improved cookie and offline badges (z-index, overflow) - @phoenixdev-kl (#3552)
    • 👌 Improved translations: Replaced concatenations with "named formatting" (see http://kazupon.github.io/vue-i18n/guide/formatting.html#named-formatting) - @phoenixdev-kl (#3550)
    • ➕ Added filterMinimumShouldMatch to ES queries in order to support ES7 - @pkarw (#1692)
    • Pass RouteManager as proxy for router.addRoutes - @gibkigonzo (#3479)
    • ➕ Added generic types to hooks - @gibkigonzo
    • 🔄 Change sku to string when checking products equality - @gibkigonzo (#3606)
    • Pass to registerModule all parameters as one object - @gibkigonzo (#3634)
    • Include shipping address data in request for shipping methods for more accurate filtering - @rain2o (#2515)
    • ✂ remove 'disabled' flag in storeViews config - @gibkigonzo (#3659)