The open-source frontend for any eCommerce. Built with a PWA and headless approach, using a modern JS stack. We have custom integrations with Magento, commercetools, Shopware and Shopify and total coverage is just a matter of time. The API approach also allows you to merge VSF with any third-party tool like CMS, payment gateways or analytics. Newest updates: https://blog.vuestorefront.io. Always Open Source, MIT license.

Overview

Vue Storefront - Headless PWA for any eCommerce

build:passed version Branch stable Branch Develop Branch Develop

Vue Storefront is a standalone PWA storefront for your eCommerce, possible to connect with any eCommerce backends, for example:

Vue Storefront is and always will be open source (MIT Licence). Anyone can use and support the project, we want it to be a tool for the improvement of the shopping experience. The project is in the production ready phase.

Links

How to start?

Which Vue Storefront should I choose for my next project?

  • If you’re on Magento 1 or Magento 2 choose Vue Storefront 1.x with vsf-capybara theme, Install it using CLI

  • If you’re on commercetools / About You Cloud choose Vue Storefront Next clone it from next

  • If you’re on Shopware 6 go to shopware-pwa sub-project and use the Shopware PWA powered by Vue Storefront

Check our Rodmap -> link do https://github.com/DivanteLtd/vue-storefront#roadmap

About Vue Storefront Next

We're developing a next version of Vue Storefront on the next branch.

We're building the following integrations within Next architecture:

  • Shopware 6 (developer preview)
  • Commercetools (developer preview)
  • AboutYou Cloud
  • Shopify
  • Salesforce Commerce Cloud

You can learn more about Vue Storefront Next from the README on the next branch and this video

If you want to learn more about Vue Storefront Next, contribute or build an integration reach to Filip Rakowski on our Slack

About Vue Storefront 1.x

Important note to developers: From 1.0RC we started using develop branch for nightly builds (contains all new features) and master branch for stable. Please make sure you're working on right branch. Please take a look at Contributing guidelines.

If you're new and need some guidance feel free to visit out forum or reach to Filip Jędrasik (@Fifciuu) from the core team on our Slack

Want to invest some time in building the future of eCommerce? we are looking for agencies and developers willing to help us make VS even more awesome. Interested - contact @Filip Rakowski on slack

We are looking for Contributors and Designer willing to help us in the solution development.

Read contribution rules before making any pull request. Pull request that doesn't meet these requirements will not be merged

PS: Check Storefront UI - our UI library for eCommerce.

See it in action

B2C Theme demo Try out our open demo and if you like it first give us some star on Github ★ and then contact us on Slack or via [email protected].

This demo site is connected to Magento 2.2 with shopping carts and users synchronization so You can make an order (which unfortunately won't be shipped ;P).

If You like to see Magento 1 integration demo please do contact us.

🆕 Capybara Theme

Starting new project on Vue Storefront? Try out the new Capybara Theme. Based on StorefrontUI Design System

B2C Theme demo Try out our open demo and if you like it first give us some star on Github ★ and then contact us on Vue Storefront Official Slack or via [email protected].

This demo site is connected to Magento2.

Be up to date with the news

We're trying to be very open regarding our development plans, news, roadmap and in general: sharing a lot. Please do bookmark our Official blog to be always up to date!

Foundations | Vue Storefront 1.x

See how it works!

How to install Vue Storefront on Windows?

Demo and the architecture of Vue Storefront

Is it production ready?

Yes! There are more than 140 implementations happening right now and many live shops (check awesome live projects on Vue Storefront).

Browser Compatibility

  • last 2 Chrome versions
  • last 2 Firefox versions
  • last 2 Edge versions
  • modern browsers

For an up-to-date list of supported browsers please see "browserslist" in package.json

Join the community on Slack

If you have any questions or ideas feel free to join our slack via invitation link: https://slack.vuestorefront.io/

Roadmap

Here you can find the accepted roadmap for current milestone and what you can expect with next release.

Roadmap planning

Here you can vote for feature requests and see which ones were accepted. The most upvoted ones will be added to the next milestones. You can also join the slack channel #roadmap-planning where we discuss the next milestones.

The process of adding new features to the roadmap looks like this:

  1. You create an issue and label it as feature request.
  2. One of VS Core team verifies the feature request and if the explanation is clear, it is added to the Roadmap project so it's visible in the board.
  3. Now people can vote for this feature to be added into next milestone with thumb up emoji.
  4. Feature requests with the biggest popularity will be added into next milestones.

We are planning 1-2 milestones ahead. Our milestones are based on requirements from community, partners and production implementations.

Please note that bugfixes are treated separately and in most cases added to the milestones immediately.

Check the feature list of 1.0.

If youd like to take part in roadmap planning feel free to join #roadmap-planning channel on our slack

Documentation + table of contents

The documentation is always THE HARDEST PART of each open source project! But we're trying hard.

Please find out what we've already managed to prepare: available on Github Pages. Please note that new docs are still Work In Progress and will be successfully updated. You can find them also under the docs folder.

You can find some tutorials and explanations on our YouTube channel

Installation

Cookbooks

Awesome projects on Vue Storefront

Check Vue Storefront Live Projects

Vue Storefront Live Projects

The business challenges

Vue Storefront was created to solve a set of key business challenges from the world of the shopping experience. Our goal for the application is to provide the solution with:

  • The ultrafast front-end for the store - with the PWA approach we can now render the catalog of products within milliseconds;
  • The endurance for traffic overloads on the store;
  • The off-line shopping capabilities;
  • The smooth shopping experience close to the user experience from the native mobile applications;
  • The all-in-one front-end for desktop and mobile screens with no necessity for maintaining 3 or more applications for different touchpoints (web browser, Android, iOS etc.).
  • Rapid development without architecture limitations.

The technology

Vue Storefront was built as an all-in-one front-end for eCommerce. For providing the best performance we decided to use Vue.js as a front-end library, Node.js + Express (and maybe GraphQL support) as a server-API, Elastic Search as a database of products and full PWA/off-line support. Here you can read more about the proof of concept for Vue Storefront connected with Magento2.

Besides a big improvement for the shopping experience, we also want to create a great code base for every developer who needs to work on a front-end application for the eCommerce.

The headless architecture

Vue Storefront - Headless Architecture

Design

Vue Storefront supports by default two different themes:

  1. Capybara Theme based on Storefront UI

Vue Storefront - Capybara Theme

  1. Classic/Default

The application is prepared to be fully customized in design through the theming system. With the current version we work on raw, basic template of typical eCommerce for a fashion industry. In the project we used Material Icons.

Vue Storefront - Annimations in sidebar menu

Here you can read more about the process of designing PWA for eCommerce.

The design is available in open source in the Figma file format under the URL https://www.figma.com/file/VKyqbHFI55TKIKcQlFLiVpVF/Vue-Storefront-Open-Source.

Concerns when hosting

When hosting NodeJS applications there are some differences compared to, for example, hosting PHP or Java applications. Server Side Rendering via NodeJS can have memory leaks because of suboptimal code. Although core code is optimized, project specific features or misaligned hosting configuration can introduce this. More on how to avoid these for VueJS can be ready in this article. We also recommend reading about VueJS best practices.

On the server we advice to run PM2 which offers features to keep your NodeJS application stable. When hosting on Kubernetes the checks and memory limits can be leveraged to kill unhealthy containers. More on hosting can be found in the documentation.

Other platforms

Vue Storefront is platform agnostic which means it can be connected to virtually any CMS. Please take a look at Pimcore bridge to give you an idea of how other platforms can be connected. Any support for integrating Prestashop, Shopify ... - much appreciated.

Contributing

If you like the idea behind Vue Storefront and want to become a contributor - do not hesitate and check our list of the active issues or contact us directly via [email protected].

If you have discovered a 🐜 or have a feature suggestion, feel free to create an issue on Github.

Workshops

If you like our project and would like to learn more on how to create Progressive Web Apps you can ask us for a dedicated workshop at your office! Conducted by Vue Storefront core contributors! All the profits are used for supporting Vue Storefront development. Learn more

Support us!

Vue Storefront is and always will be Open Source, released under MIT Licence.

Most of the core team members, VS contributors and contributors in the ecosystem do this open source work in their free time. If you use Vue Storefront for a serious task, and you'd like us to invest more time on it, you can donate the project! You can support us in various ways:

  • Contribute - this is how the Core Team is supporting the project!
  • Evangelize - tweet about us, take some speaking slot at tech conference etc.
  • Sponsor - if you're doing serious business on VS maybe You would like to donate the project and put your logo in here?

This is how we will use the donations:

  • Allow the core team to work on VS
  • Thank contributors if they invested a large amount of time in contributing
  • Support projects in the ecosystem that are of great value for users
  • Infrastructure cost
  • Fees for money handling

If you would like to support us please just let us know: [email protected]

Partners

Vue Storefront is a Community effort brought to You by our great Core Team and supported by the following companies.

See Vue Storefront partners directory

enter image description here

Partners are encouraged to support the project in various ways - mostly by contributing the source code, marketing activities, evangelizing and of course - implementing the production projects. We do support our partners by dedicated contact channels, workshops and by sharing the leads from merchants interested in implementations.

If you like to become our Partner just let us know via [email protected].

The screenshots

Vue Storefront - Annimations in the sidebar cart

The license

Vue Storefront source code is completely free and released under the MIT License.

analytics

Comments
  • Change product color or size when product is in the cart

    Change product color or size when product is in the cart

    Related issues

    closes #2346

    Short description and why it's useful

    Hello VS team! I've been learning Vue.js recently and this PR is my very first contact of it (besides some small things). I introduced possibility to change the color or size of the product that is in the cart. I spent some time with acquainting of this product and how it works and... I hope i've done everything correctly because I had many doubts about API, what should I use etc. Please have look at it.

    Cheers 🎉

    Screenshots

    Screenshot 2019-06-20 at 22 12 37

    Which environment this relates to

    • [x] Test version (https://test.storefrontcloud.io)
    • [ ] RC version (https://next.storefrontcloud.io)
    • [ ] Stable version (https://demo.storefrontcloud.io)

    Upgrade Notes and Changelog

    • [x] No upgrade steps required (100% backward compatibility and no breaking changes)
    • [x] I've updated the Upgrade notes and Changelog on how to port existing VS sites with this new feature

    Contribution and currently important rules acceptance

    QA approved on branch 
    opened by andrzejewsky 49
  • New modules API (final)

    New modules API (final)

    New, simplified modules API

    Broader explaination still needs to be written but in short words this change will enable;

    Inspiration is taken from new Vue's functional API and nuxt modules.

    1. Less abstraction with direct access to store, router so better learning curve and sticking to native Vue APIs to not limit customization posibilities with our limited wrappers on it. Also less code to maintain ;)
    2. Much simplier API based on single function
    3. Ability to hook into various points of application lifecycle
    4. Separation of module APIs and ones that can be used inside modules from the core package.
    • @vue-storefront/module can now be a separate npm package used in VS modules packages as dependency.
    • Having this will allow us to enable packaging fo VS modules as npm packages that doesn't require tyepscript.
    • We have control over what can be used in modules = no need to worry about changing APIs in core that could break modules
    1. Ability to register modules lazily which will gain huge performance boost. If module is registered lazily it can't access some of the hooks like onAppInit.
    2. Current Vuex extending API is rough and not intuitive so it needed to be rewritten anyway
    3. Ability to codesplit VS modules config and pass config to module
    4. Ability to define extension points in module thanks to config

    New API

    import { extendStore, isServer } from '@vue-storefront/module/helpers' // helpers that can be sued inside module
    import { afterAppInitHook  } from '@vue-storefront/module/hooks' // List of events  and hooks
    import { cartVuexModule } from './store/cart.js' // Vuex module that will extend cart module
    import { newVuexModule } from './store/newModule.js'// new Vuex module to be registered
    import { newRoutes } from './routes/newRoutes.js'
    
    export default function (app, router, store, config, appConfig) => {
    
      // This is how you extend the router, native Vue API
      router.addRoutes(newRoutes)
      router.beforeEach((to, from, next) => { next() })
    
      // This is how you extend the Vuex store, native Vue API
      store.registerModule('newModule', newVuexModule)
    
      // This is how you extend currently existing Vuex module, much simpler API, just pass Vuex module and it will be merged with module that has same name
      extendStore('cart', cartVuexModule)
    
      // This is how you can access Vue Storefront hooks
      afterAppInitHook(() => {
        console.log('App has just been initialized')
      })
    }
    

    Inside module's init function we have acces to:

    • app instance (Vue instance)
    • router insatnce
    • Vuex store instance
    • module config passed during registration
    • VS config

    What else:

    • You can call module helper functions outside of modules. This will let you to do simple modifications in your theme without a need to wrap it into VS module. For instance if you want to just extend Vuex module from your theme instead of creating a lot of boilerplate you can simply do this
    // theme/index.js
    import { extendStore } from '@vue-storefront/module/helpers' 
    import { newCart } from './cart.js'
    
    extendStore('cart', newCart)
    

    Much more elegant isn't it?

    -Thanks to config you can define extension points in your module, i.e. let people override your hooks

    // module
    export default function (app, store, router, config, appConfig) {
      onAppInit(() => {
        if (config.onAppInit) {
          config.onAppInit()
        } else {
          // regular hook
        }
      })
    }
    // registration
    registerModule(someModule, {
      onAppInit: () => { console.log('Hello') }
    })
    

    Registration

    Whenever you want to register VS module you can do it by using registerModule function and passing optional config. This will let us to codesplit module configs.

    import { registerModule } from '@vue-storefront/module'
    import { RecentlyViewedModule } from './modules/recently-viewed'
    
    registerModule(RecentlyViewedModule, {
        productsCount: 10
    })
    

    What about backward compatibility

    Porting old Vue Storefront modules to new ones will be available only through changing index file of any module. There will be also a method to port old module to new one via helper function as simple as

    import { legacyModuleWrapper } from '@vue-storefrpnt/module/helpers'
    import { registerModule } from '@vue-storefrpnt/module/helpers'
    import { legacyModule } from './legacyModule'
    
    registerModule(legacyModuleWrapper(legacyModule))
    

    What will happen with old api

    Old way of Vue Storefront modules registration will still be possible and won't be depreciated until Vue Storefront 2.0. After this there will still be a legacyModuleWrapper function so old modules still can be used (but they can't benefit from new features)

    In plans

    Ability to extend express server and webpack config.

    Each module could have a server.js file in a root that will export webpack config object and express server. For webpack it will work exactly the same as current extension model from themes. For server it will work as current extension model in src/server

    // module/server.js
    exports.webpack = function (config) {
      // do modifications
      return config
    }
    
    exports.server = function (app) { 
      // do sth with express instance
    }
    

    If you'd like to make use of server utilities of a given module you just need to register server side part of the module in VS config.

    // config/local.json
    "modules": {
      "serverSideModules": ['absolute/path', 'package-name']
    }
    

    Please note that no matter if client part fo the module is async or not server side part will be registered during app initialization so we have 2 entry points for every module - index.ts for client (can be loaded lazily) and server.js for webpack/express

    RFC 
    opened by filrak 36
  • [WIP] PoC - multipart, dynamic URL rewrite

    [WIP] PoC - multipart, dynamic URL rewrite

    Related issues

    #2010

    Short description and why it's useful

    This is proof of the concept of dynamic URL mapper. The challenge is that we need to support the fully customizable URLs - that don't have any specific elements pointing out if that's the Product, Category either CMS page.

    Unfortunately, we CAN NOT use the vue-router guards as there is no way to rewrite URL (display different route/different component under the same URL). The only option was to create a page which is including the proper subcomponents.

    We should decide if that's the way we would like to go. If so, we should then decide if this module should be placed in core or rather src - to let the users modify it when needed. After all - I think it should be src. The Dispatcher can vary from project to project - mostly because some custom page types added.

    If we decided that this is the way to go -> I'll add the rest of the business logic.

    Other options for URL dispatching mechanism:

    • kind of refactor Product, Category, CmsPage pages - but in the end it comes up to kind of "multipurpose" component which is breaking the SR Principle
    • Express.js level routing - but it doesn't solve the CSR routing isses (the URLs will differ CSR/SSR which is not good).
    • ??

    To test this out - please enter the http://localhost:3000/fake/product/url.html in the browser - and You'll get the Gwyn Endurance product page.

    I've got an idea that the url/registerMapping will be called inside the category/list and product/list matching the products and categories with their custom URLs (product.url_path + product.url_key and category.url_path + category.url_key). If some random URL will be called (that's been not yet mapped) then the url/mappingFallback action will be called.

    This action will be a subject to override by user - but be default it will be calling first product/single and then category/single to check if specified URL is a product or category URL. Once mapped URL will be stored in localStorage + url.state (because we'll be getting the prefetched mappings from SSR renderer within this initial state)

    Screenshots of visual changes before/after (if there are any)

    screenshot 2019-02-08 23 58 23

    Screenshot of passed e2e tests (if you are using our standard setup as a backend)

    (run yarn test:e2e and paste the results. If you are not using our standard backend setup or demo.vuestorefront.io you can ommit this step)

    Upgrade Notes and Changelog

    • [x] No upgrade steps required (100% backward compatibility)
    • [ ] I've updated the Upgrade notes and Changelog on how to port existing VS sites with this new feature

    Contribution and currently important rules acceptance

    opened by pkarw 27
  • Possible to use woo commerce as backend?

    Possible to use woo commerce as backend?

    Hi, First of, Really appreciate the effort put into building this project!

    Since vue-storefront is platform agnostic, has anyone tried using woo commerce as a backend ?

    I have a bunch of stores on woo and would like to see how vue-storefront can be integrated to the same..

    Thanks, Any help in the direction is appreciated!

    opened by negati-ve 27
  • Product image does not show on reload (mobile browser)

    Product image does not show on reload (mobile browser)

    When viewing the demo app on a mobile browser (I tried Chrome, on Android 7), open up any product page, all good, now reload the page (pull-to-refresh), the product image does not load (just shows the placeholder), and the product description remains partially hidden unresponsive to touch.

    bug P1: Urgent 
    opened by envodev 26
  • As a user I want to choose number of columns of products I see on the category view

    As a user I want to choose number of columns of products I see on the category view

    What is the motivation for adding / enhancing this feature?

    [not for mobile]

    The number of columns determine two aspects:

    • Size of product image thumbnails on the category page. Less columns - bigger images.
    • Amount of products displayed. More columns - more products visible.

    Could different column layout affect site ROI? It must affect. But there cannot be a generic rule for this, each e-commerce belongs to different markets, different users, different products, this should be adaptative to each business model.

    How can we enhance this to develop an intelligent solution that maximizes clicks on products?

    v1 - As I user I want to select the number of columns. (this could be a good start) v1- As I user I want my selection to be remembered

    v2- As a product owner I would like to get data on which column configuration got more sells (by cart total), which was the most selected among users, and decide default columns and available numbers.

    v3- As a product owner I dream that we could use Tensorflow to bring some machine learning to this and other components.

    Captura de pantalla 2019-05-22 a las 10 39 30

    Which Release Cycle state this refers to? Info for developer.

    Pick one option.

    • [x] This is a normal feature request. This should be available on https://test.storefrontcloud.io and then after tests this can be added to next Vue Storefront version. In this case Developer should create branch from develop branch and create Pull Request 2. Feature / Improvement back to develop.
    • [ ] (Pick this option only if you're sure) This is an important improvement request for current Release Candidate version on https://next.storefrontcloud.io and should be placed in next RC version. In this case Developer should create branch from release branch and create Pull Request 3. Stabilisation fix back to release.
    • [ ] (Pick this option only if you're sure) This is a critical improvement request for current Stable version on https://demo.storefrontcloud.io and should be placed in next stable version. In this case Developer should create branch from hotfix or master branch and create Pull Request 4. Hotfix back to hotfix.

    ### What do you think?

    QA approved after merge feature request QA approved on branch P4: Nice to have 3: Medium complexity 
    opened by pmaojo 23
  • Payment methods for billing address

    Payment methods for billing address

    Related issues

    closes #2878

    Short description and why it's useful

    Started this at the Paris hackathon but had to finish it up today.

    In Magento at least, not sure about other backend platforms, you have the ability to restrict payment methods per country, not just per store view. There was already an API call being made to /shipping-information which returns the allowed payment methods for the data given. This PR utilized this existing integration to do a few things.

    1. Add billing address data to request data if it's available.
    2. When it's called for updating cart price, go ahead and save the results if there are any since we have them.
    3. Update syncPaymentMethods to check if we have billing address data and use this endpoint for more accurate results.
    4. Call syncPaymentMethods when the billing address country is changed.

    Which environment this relates to

    Check your case. In case of any doubts please read about Release Cycle

    • [x] Test version (https://test.storefrontcloud.io) - this is a new feature or improvement for Vue Storefront. I've created branch from develop branch and want to merge it back to develop
    • [ ] RC version (https://next.storefrontcloud.io) - this is a stabilisation fix for Release Candidate of Vue Storefront. I've created branch from release branch and want to merge it back to release
    • [ ] Stable version (https://demo.storefrontcloud.io) - this is an important fix for current stable version. I've created branch from hotfix or master branch and want to merge it back to hotfix

    Upgrade Notes and Changelog

    • [x] No upgrade steps required (100% backward compatibility and no breaking changes)
    • [ ] I've updated the Upgrade notes and Changelog on how to port existing VS sites with this new feature

    IMPORTANT NOTICE - Remember to update CHANGELOG.md with description of your change

    Contribution and currently important rules acceptance

    QA approved after merge 
    opened by rain2o 22
  • Router manager queue

    Router manager queue

    Related issues

    closes #3454

    Short description and why it's useful

    Efficiently add routes to Vue Router, with optional priority for theme routes

    Screenshots of visual changes before/after (if there are any)

    Which environment this relates to

    Check your case. In case of any doubts please read about Release Cycle

    • [x] Test version (https://test.storefrontcloud.io) - this is a new feature or improvement for Vue Storefront. I've created branch from develop branch and want to merge it back to develop
    • [ ] RC version (https://next.storefrontcloud.io) - this is a stabilisation fix for Release Candidate of Vue Storefront. I've created branch from release branch and want to merge it back to release
    • [ ] Stable version (https://demo.storefrontcloud.io) - this is an important fix for current stable version. I've created branch from hotfix or master branch and want to merge it back to hotfix

    Upgrade Notes and Changelog

    • [x] No upgrade steps required (100% backward compatibility and no breaking changes)
    • [x] I've updated the Upgrade notes and Changelog on how to port existing VS sites with this new feature

    IMPORTANT NOTICE - Remember to update CHANGELOG.md with description of your change

    Contribution and currently important rules acceptance

    QA approved after merge not ready for merge 
    opened by grimasod 22
  • Category sort = 'position:asc' does not reflect the order set within magento categories

    Category sort = 'position:asc' does not reflect the order set within magento categories

    Current behavior

    Currently it does not seem possible to display products within categories using the order specified in the Magento admin.

    I am able to see the position number in the elastic data using Kibana. When using the new magento2-vsbridge-indexer you can see this in the categories attribute against a product.

    When using the mage2vuestorefront to import data, the position number is set on extension_attributes.category_links

    In either case, setting sort = 'position:asc' or 'position:desc' makes no difference to the sorting of products.

    Expected behavior

    When sort = 'position:asc' products within categories should be ordered as per the order field within magento admin

    Steps to reproduce the issue

    Either using postman to hit the api directly or by configuring the storefront to sort products by position:asc products will not sort by the position number. And position:desc returns products in same position as position:asc.

    Can you handle fixing this bug by yourself?

    • [ ] YES
    • [x] NO

    Which [Release Cycle]

    • [ ] This is a bug report for test version on https://test.storefrontcloud.io - In this case Developer should create branch from develop branch and create Pull Request 2. Feature / Improvement back to develop.
    • [ ] This is a bug report for current Release Candidate version on https://next.storefrontcloud.io - In this case Developer should create branch from release branch and create Pull Request 3. Stabilisation fix back to release.
    • [x] This is a bug report for current Stable version on https://demo.storefrontcloud.io and should be placed in next stable version hotfix - In this case Developer should create branch from hotfix or master branch and create Pull Request 4. Hotfix back to hotfix.
    feature request vs-hackathon P4: Nice to have VSF1 
    opened by stevenoddy 22
  • Error can be repeated

    Error can be repeated

    After run api and migrate data docker-compose up vue-storefront visit localhost:3000
    I got error on homepage , "Something went wrong ... We've noticed Internal Server Error while rendering this request" Then I press home page button (icon button at centre ) can load all products successfully.
    this error can be repeated . I check log is

    app_1 | Error during render : / app_1 | Error: request to http://localhost:8080/api/catalog/vue_storefront_catalog/category/_search?size=4000&from=0&sort=position%3Aasc&_source_include=children_data%2Cid%2Cchildren_count%2Csku%2Cname%2Cis_active%2Cparent_id%2Clevel%2Curl_key%2Cproduct_count%2Cpath failed, reason: connect ECONNREFUSED 127.0.0.1:8080 app_1 | at _commonErrorHandler (core/server-entry.ts:14:11) app_1 | at server-bundle.js:8843:25 app_1 | at app_1 | at process._tickCallback (internal/process/next_tick.js:189:7)

    But if I run curl to access the same url

    curl -i http://localhost:8080/api/catalog/vue_storefront_catalog/category/_search?size=4000&from=0&sort=position%3Aasc&_source_include=children_data%2Cid%2Cchildren_count%2Csku%2Cname%2Cis_active%2Cparent_id%2Clevel%2Curl_key%2Cproduct_count%2Cpath

    I can get data list successfully. that means

    opened by goodforever 22
  • No products found!

    No products found!

    Current behavior

    I’ve been trying to sync data from magneto (CE version 2.3) to VS (release 1.7.0) and for some reasons the Products are not showing up on the screen

    Categories are visible in the UI but not Products

    I’ve tried both the “Fast integration” and “Manual integration” described in @ [(https://docs.vuestorefront.io/guide/installation/magento.html#integrating-magento2-with-your-local-instance)]

    I did not get any errors and checking my ES, I get see that “category” and “product” are in ES curl -XPOST 'localhost:9200/vue_storefront_catalog/category/_search' curl -XPOST 'localhost:9200/vue_storefront_catalog/product/_search'

    Any pointers as to why the Products are not showing up when I click on the appropriate Category in VS frontend. BTW, It works ok on the default Magento frontend. Ruled out product setup issue in Magento

    curl -XPOST 'localhost:9200/vue_storefront_catalog/product/_search'

    {"took":1,"timed_out":false,"_shards":{"total":5,"successful":5,"skipped":0,"failed":0},"hits":{"total":4,"max_score":1.0,"hits":[{"_index":"vue_storefront_catalog_1548591100","_type":"product","_id":"12","_score":1.0,"_source":{"id":12,"sku":"cavendish_banana","name":"Cavendish Banana","attribute_set_id":4,"price":20,"status":1,"visibility":4,"type_id":"simple","created_at":"2019-01-25 18:26:53","updated_at":"2019-01-27 13:16:58","extension_attributes":{"website_ids":[1],"category_links":[{"category_id":"7","position":10}]},"product_links":[],"options":[],"media_gallery_entries":[{"types":["image","small_image","thumbnail","swatch_image"],"file":"/c/a/cavendish_bananas.jpeg","media_type":"image","disabled":false,"id":5,"label":null,"position":1}],"tier_prices":[],"custom_attributes":null,"final_price":20,"max_price":20,"max_regular_price":20,"minimal_regular_price":20,"special_price":null,"minimal_price":20,"regular_price":20,"image":"/c/a/cavendish_bananas.jpeg","small_image":"/c/a/cavendish_bananas.jpeg","thumbnail":"/c/a/cavendish_bananas.jpeg","swatch_image":"/c/a/cavendish_bananas.jpeg","options_container":"container2","url_key":"cavendish-banana","gift_message_available":"2","required_options":"0","has_options":"0","meta_title":"Cavendish Banana","meta_keyword":"Cavendish Banana","meta_description":"Cavendish Banana This one is good 1","tax_class_id":"0","category_ids":["7"],"description":"<p>This one is good 1</p>","short_description":"<p>This one is good 2</p>","country_of_manufacture":"SC","size":"4","links":{},"stock":{"item_id":20,"product_id":12,"stock_id":1,"qty":0,"is_in_stock":false,"is_qty_decimal":false,"show_default_notification_message":false,"use_config_min_qty":true,"min_qty":0,"use_config_min_sale_qty":1,"min_sale_qty":1,"use_config_max_sale_qty":true,"max_sale_qty":10000,"use_config_backorders":true,"backorders":0,"use_config_notify_stock_qty":true,"notify_stock_qty":1,"use_config_qty_increments":true,"qty_increments":0,"use_config_enable_qty_inc":true,"enable_qty_increments":false,"use_config_manage_stock":true,"manage_stock":true,"low_stock_date":"2019-01-27 13:16:58","is_decimal_divided":false,"stock_status_changed_auto":1},"media_gallery":[{"image":"/c/a/cavendish_bananas.jpeg","pos":1,"typ":"image","lab":null}],"category":[{"category_id":7,"name":"Bananas"}],"tsk":1548623855015}},{"_index":"vue_storefront_catalog_1548591100","_type":"product","_id":"15","_score":1.0,"_source":{"id":15,"sku":"danvers_carrots_jojo","name":"Danvers Carrots","attribute_set_id":4,"price":12,"status":1,"visibility":4,"type_id":"simple","created_at":"2019-01-27 11:29:36","updated_at":"2019-01-27 11:43:40","extension_attributes":{"website_ids":[1],"category_links":[{"category_id":"9","position":0}]},"product_links":[],"options":[],"media_gallery_entries":[],"tier_prices":[],"custom_attributes":null,"final_price":12,"max_price":12,"max_regular_price":12,"minimal_regular_price":12,"special_price":null,"minimal_price":12,"regular_price":12,"options_container":"container2","url_key":"danvers-carrots","gift_message_available":"2","required_options":"0","has_options":"0","meta_title":"Danvers Carrots","meta_keyword":"Danvers Carrots","meta_description":"Danvers Carrots ","tax_class_id":"0","category_ids":["9"],"links":{},"stock":{"item_id":23,"product_id":15,"stock_id":1,"qty":0,"is_in_stock":false,"is_qty_decimal":false,"show_default_notification_message":false,"use_config_min_qty":true,"min_qty":0,"use_config_min_sale_qty":1,"min_sale_qty":1,"use_config_max_sale_qty":true,"max_sale_qty":10000,"use_config_backorders":true,"backorders":0,"use_config_notify_stock_qty":true,"notify_stock_qty":1,"use_config_qty_increments":true,"qty_increments":0,"use_config_enable_qty_inc":true,"enable_qty_increments":false,"use_config_manage_stock":true,"manage_stock":true,"low_stock_date":"2019-01-27 11:43:40","is_decimal_divided":false,"stock_status_changed_auto":1},"media_gallery":[],"category":[{"category_id":9,"name":"Carrots"}],"tsk":1548623855015}},{"_index":"vue_storefront_catalog_1548591100","_type":"product","_id":"16","_score":1.0,"_source":{"id":16,"sku":"Simple Banana","name":"Simple Banana","attribute_set_id":4,"price":121,"status":1,"visibility":4,"type_id":"simple","created_at":"2019-01-27 20:40:40","updated_at":"2019-01-27 20:41:02","extension_attributes":{"website_ids":[1],"category_links":[{"category_id":"7","position":0}]},"product_links":[],"options":[],"media_gallery_entries":[],"tier_prices":[],"custom_attributes":null,"options_container":"container2","url_key":"simple-banana","gift_message_available":"2","required_options":"0","has_options":"0","meta_title":"Simple Banana","meta_keyword":"Simple Banana","meta_description":"Simple Banana ","tax_class_id":"0","category_ids":["7"],"country_of_manufacture":"SC","size":"4","links":{},"stock":{"item_id":24,"product_id":16,"stock_id":1,"qty":0,"is_in_stock":false,"is_qty_decimal":false,"show_default_notification_message":false,"use_config_min_qty":true,"min_qty":0,"use_config_min_sale_qty":1,"min_sale_qty":1,"use_config_max_sale_qty":true,"max_sale_qty":10000,"use_config_backorders":true,"backorders":0,"use_config_notify_stock_qty":true,"notify_stock_qty":1,"use_config_qty_increments":true,"qty_increments":0,"use_config_enable_qty_inc":true,"enable_qty_increments":false,"use_config_manage_stock":true,"manage_stock":true,"low_stock_date":"2019-01-27 20:41:02","is_decimal_divided":false,"stock_status_changed_auto":1},"media_gallery":[],"category":[{"category_id":7,"name":"Bananas"}],"tsk":1548623855015}},{"_index":"vue_storefront_catalog_1548591100","_type":"product","_id":"13","_score":1.0,"_source":{"id":13,"sku":"burro_banana","name":"Burro Banana","attribute_set_id":4,"price":10,"status":1,"visibility":4,"type_id":"simple","created_at":"2019-01-25 18:39:33","updated_at":"2019-01-27 11:42:41","extension_attributes":{"website_ids":[1],"category_links":[{"category_id":"7","position":0}]},"product_links":[],"options":[],"media_gallery_entries":[{"types":["image","small_image","thumbnail","swatch_image"],"file":"/b/u/burro_bananas-1.jpg","media_type":"image","disabled":false,"id":6,"label":null,"position":1}],"tier_prices":[],"custom_attributes":null,"final_price":10,"max_price":10,"max_regular_price":10,"minimal_regular_price":10,"special_price":null,"minimal_price":10,"regular_price":10,"image":"/b/u/burro_bananas-1.jpg","small_image":"/b/u/burro_bananas-1.jpg","thumbnail":"/b/u/burro_bananas-1.jpg","swatch_image":"/b/u/burro_bananas-1.jpg","options_container":"container2","url_key":"burro-banana","gift_message_available":"2","required_options":"0","has_options":"0","meta_title":"Burro Banana","meta_keyword":"Burro Banana","meta_description":"Burro Banana ddddddd","tax_class_id":"0","category_ids":["7"],"description":"<p>ddddddd</p>","short_description":"<p>eeeeeeeeeeee</p>","links":{},"stock":{"item_id":21,"product_id":13,"stock_id":1,"qty":0,"is_in_stock":false,"is_qty_decimal":false,"show_default_notification_message":false,"use_config_min_qty":true,"min_qty":0,"use_config_min_sale_qty":1,"min_sale_qty":1,"use_config_max_sale_qty":true,"max_sale_qty":10000,"use_config_backorders":true,"backorders":0,"use_config_notify_stock_qty":true,"notify_stock_qty":1,"use_config_qty_increments":true,"qty_increments":0,"use_config_enable_qty_inc":true,"enable_qty_increments":false,"use_config_manage_stock":true,"manage_stock":true,"low_stock_date":"2019-01-27 11:42:41","is_decimal_divided":false,"stock_status_changed_auto":1},"media_gallery":[{"image":"/b/u/burro_bananas-1.jpg","pos":1,"typ":"image","lab":null}],"category":[{"category_id":7,"name":"Bananas"}],"tsk":1548623855015}}]}} vagrant@vuestorefront:~/storefront-api$

    Environment details

    • Browser: Chrome 71
    • OS: Ubuntu 18.04 (running in vagrant vsbox)
    • Node: 8.10.0
    • Magento: 2.3 CE
    opened by laportem 21
  • how to setup vuex in v2?

    how to setup vuex in v2?

    opened by askie 0
  • docs: add hygraph + kentico

    docs: add hygraph + kentico

    Adds hygraph and kentico links to the integrations list Adds integration labels to Stripe integrations

    image

    image

    Description

    Related Issue

    Motivation and Context

    How Has This Been Tested?

    Screenshots:

    Types of changes

    • [ ] Bug fix (non-breaking change which fixes an issue)
    • [ ] New feature (non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to change)

    Checklist:

    • [ ] I have read the CONTRIBUTING document.

    Changelog

    • [ ] I have updated the Changelog (V1) v2 and mentioned all breaking changes in the public API.
    • [ ] I have documented all new public APIs and made changes to existing docs mentioning the parts I've changed so they're up to date.

    Tests

    • [ ] I have written test cases for my code
    • [ ] I have tested my Pull Request on production build and (to my knowledge) it works without any issues
    • [ ] I have added tests to cover my changes.
    • [ ] All new and existing tests passed.

    I tested manually my code, and it works well with both:

    • [ ] Default Theme
    • [ ] Capybara Theme

    Code standards

    • [ ] My code follows the code style of this project.

    Docs

    • [ ] My change requires a change to the documentation.
    • [ ] I have updated the documentation accordingly.
    docs 
    opened by mattmaribojoc 0
  • [Bug]:  npx generate Error: command generate:vue-store not found

    [Bug]: npx generate Error: command generate:vue-store not found

    Describe the Bug

    On project creation using "npx" error occurs (see details below) and then exists.

    node version - v14.20.0 npm version - 6.14.17

    Installation details from - https://docs.vuestorefront.io/v2/getting-started/installation.html

    • on execution of "npx @vue-storefront/cli generate vue-store"
    • error - Error: command generate:vue-store not found

    Current behavior

    Install starts then aborts

    Expected behavior

    created project

    Steps to reproduce

    Followed instructions from - https://docs.vuestorefront.io/v2/getting-started/installation.html

    npx @vue-storefront/cli generate vue-store

    What version of Vue Storefront are you using?

    npx version

    What version of Node.js are you using?

    v14.20.0

    What browser (and version) are you using?

    don't get that far

    What operating system (and version) are you using?

    mac os m1

    Relevant log output

    Error: command generate:vue-store not found
    

    Able to fix / change the documentation?

    • [ ] Yes
    • [X] No

    Code of Conduct

    • [X] I agree to follow this project's Code of Conduct
    bug 
    opened by rrubio 1
  • All public / opensource integration repos have versioning issues

    All public / opensource integration repos have versioning issues

    What is your question / Please describe your issue

    I am evaluating to use VSF community edition together with a headless CMS (like Strapi) and a opensource commerce service (like Spree or Vendure) for our small-company family project. And have I tried to use the Spree template as well as the Vendure template and with both I am struggling with versioning issues - I have to research and fix quite a few problems that relate to mismatch with packages. After having fixed one I am running into the next. With the last issue - resulting from trying out a custom integration as the video tutorial on YT shows - i updated the references to Vue Storefront to 2.7.3 and again things are breaking, now on the Vendure template. And it seems I have to start my research on versions all over.

    What I am taking from this is that these templates are poorly maintained, they are not working as cloned and if you upgrade VSF they stop working again. I am very experienced in software and e-commerce in general (30 years), but not (yet) too deep into Nuxt.js etc. - but I think the start should be a bit more smooth...

    What version of Vue Storefront are you using?

    Vendure template 1.2, using VSF 2.4.1

    Code of Conduct

    • [X] I agree to follow this project's Code of Conduct
    opened by connyg 0
  • build(deps): bump decode-uri-component from 0.2.0 to 0.2.2

    build(deps): bump decode-uri-component from 0.2.0 to 0.2.2

    Bumps decode-uri-component from 0.2.0 to 0.2.2.

    Release notes

    Sourced from decode-uri-component's releases.

    v0.2.2

    • Prevent overwriting previously decoded tokens 980e0bf

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.1...v0.2.2

    v0.2.1

    • Switch to GitHub workflows 76abc93
    • Fix issue where decode throws - fixes #6 746ca5d
    • Update license (#1) 486d7e2
    • Tidelift tasks a650457
    • Meta tweaks 66e1c28

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.1

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
Releases(v1.12.3)
  • v1.12.3(Jun 24, 2021)

    New fields in the config

    Added

    • Added states.json in core/i18n/resource (#4531)
    • Added phone validation helper (#4980)
    • Configurable enabling min & max price aggregations
    • Storing totals in localStorage to sync it between tabs (#4733)
    • Support for trailing slashes in the route paths - @tdugue @gibkigonzo @Fifciu (#5372)

    Fixed

    • Remove redundant user token invalidation code - TerrorSquad (#4533)
    • configurableChildrenImages helper function incorrect loading images - @RakowskiPrzem (#4575)
    • Fix user/register call by adding storeId - @haelbichalex (#4697)
    • refresh categoryMappedFilters after loading attributes in PLP - @gibkigonzo (#4695)
    • Check module registration for wishlist and compare list - gibkigonzo (#4764)
    • Fix gallery image generation by checking if image exists - simonmaass (#4908)
    • Fix getSelectedOption based on attribute_code check - simonmaass (#4851)
    • add new resetUserInvalidation action to clear invalidation state before login, clear order history and refresh token after logout, add redirection when user is logged out and sees myaccount page - gibkigonzo (#4882)
    • Fix config.products.filterUnavailableVariants feature - Ogek (#4923)
    • added 'afterUserProfileUpdated' hook which allows us to take control over update address flow (send notification if something failed) move pick allowed modification just before sending data to task managment add 'beforeUserProfileUpdate' which allows to modify user object before update - gibkigonzo (#4427)
    • replace lodash with lodash-es for client files - gibkigonzo (#5019)
    • add default personal detail loading on shipment step in checkout when user is logged - (#5040)
    • Got rid of inifnity redirect or page-not-found on refresh category/product view
    • Got rid of memory leak related to dynamic config - tomasz-duda (#4768)
    • servercart-after-diff event payload - Fifciu (#5365)
    • Fix Original Price Calculation typo - @akucharczyk / @lukaszjedrasik (#5472)
    • Purge loader works properly with dynamic config reload - @Fifciu
    • Multi-tab cart-sync in multi-store environment - @cewald (#5711, #5732)
    • Incorrect load of default address in checkout - @lukaszjedrasik (#4682)
    • Error with unknown theme/index.js alias - @Fifciuu (https://github.com/vuestorefront/vue-storefront/pull/5813)
    • ESLint warnings caused by the double import - @lukaszjedrasik
    • Fix Order History Pagination - @AishwaryShrivastav / @lukaszjedrasik (#4599)
    • Fix: Updating URL's params/query params with proper child SKU if options changes - @lukaszjedrasik (#5981)
    • Fix: Passing newToken: null as a payload inside clearCurrentUser action - @lukaszjedrasik (#5565)

    Changed / Improved

    • Moved hardcoded fields from omitSelectedVariantFields.ts to config (#4679)
    • Bump dependencies versions (#4715, #4696, #4951)
    • Using dayjs for dates in taxCalc.ts to make it work properly in Safari (#5364)
    • Awaiting addItem action call inside mergeServerItem action (#5165)
    • Moved phoneNum to proper branch - @lukaszjedrasik (#5730)
    • Development hot-reload speed webpack config - (#5559)
    • Set correct type for productPageVisited hook - @lukaszjedrasik (#5997)
    Source code(tar.gz)
    Source code(zip)
  • v1.12.2(Jul 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)
    Source code(tar.gz)
    Source code(zip)
  • v1.12.1(Jun 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

    • use config.i18n.defaultLocale as fallback locale instead of 'en-US' - @gibkigonzo (#4489)
    • use Math.abs on raw price - @gibkigonzo (#4521)
    • Clears vuex warnings about overriding state by module - @gibkigonzo (#4541)
    Source code(tar.gz)
    Source code(zip)
  • v1.12.0(Jun 2, 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
    • 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

    • Optimized translation.processor to process only enabled locale CSV files - @pkarw (#3950)
    • Remove commit register mapping - @gibkigonzo (#3875)
    • Improved method findConfigurableChildAsync - find variant with lowest price - @gibkigonzo (#3939)
    • Removed product/loadConfigurableAttributes calls - @andrzejewsky (#3336)
    • Removed unused locales in disabled multistore - @gibkigonzo (#4072)
    • Optimized attributes loading - @andrzejewsky (#3948)
    • Cart optimization can now be used regardless if entity optimization is enabled - @juho-jaakkola (#4198)
    • Improve typescript support for test utils - @resubaka (#4067)
    • Removed product/loadConfigurableAttributes calls - @andrzejewsky, @gibkigonzo (#3336)
    • Disable mapFallback url by default - @gibkigonzo(#4092)
    • Include token in pricing sync - @carlokok (#4156)
    • Move 'graphql' search adapter from core to src (deprecated) - @gibkigonzo (#4214)
    • Homepage, new products query, uses now new attribute - @mdanilwoicz
    • Refactor product module, more info in upgrade notes- @gibkigonzo (#3952, #4459)
    • Move default theme to separate repository https://github.com/DivanteLtd/vsf-default - @gibkigonzo (#4255)
    • add two numbers after dot to price by default, calculate default price for bundle or grouped main product, update typing, add fallback to attribute options - @gibkigonzo (#4476)
    • udpate yarn and filter shipping methods for instant checkout - @gibkigonzo (#4480)
    • add attribute metadata search query, add parentId - @gibkigonzo (#4491)
    Source code(tar.gz)
    Source code(zip)
  • v1.11.4(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)
    Source code(tar.gz)
    Source code(zip)
  • v1.11.3(Apr 27, 2020)

    Changed / Improved

    • The default config file is now in more human-readable format - @juho-jaakkola (#4197)
    • Create only once aside async component - @gibkigonzo (#4229, #4268)

    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)
    • 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)
    Source code(tar.gz)
    Source code(zip)
  • v1.11.2(Mar 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

    • optimizations - improved prefetch strategy - @gibkigonzo (#4080)
    • improvements to Finnish translations - @evktalo (#4116)
    • Radio button now allows separate checked, value and name attributes - @EndPositive (#4098)
    • Update backwards compatible dependencies - @simonmaass (#4126)

    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)
    Source code(tar.gz)
    Source code(zip)
  • v1.10.6(Feb 21, 2020)

    Added

    • Add lazy create cart token - @gibkigonzo (#3994)
    • Add server context to async data loader - @gibkigonzo (pr#4113)

    Fixed

    • Fix low-quality images styles - @przspa (#3906)
    • Fix page-not-found redirect in dispatcher - @gibkigonzo (#3956)
    • Fix hiding overlay for newsletter modal - @gibkigonzo (#3970)
    • Fix problem with storeView as dependency in filters - @gibkigonzo (#3968)
    • Fix v-model not working in BaseRadioButton - @lukeromanowicz (#4035)
    • add disconnect and sync options for clear/cart - @gibkigonzo (#4062)
    • Fix current token invalidation with refresh token - @gibkigonzo (#3928, #3620, #3626)
    • Disable overriding route, config, storeView, version state in INITIAL_STATE - @gibkigonzo (pr#4095)
    • Disable zoom image on hover in mobile - @gibkigonzo (pr#4115)
    Source code(tar.gz)
    Source code(zip)
  • v1.11.1(Feb 5, 2020)

    Added

    • Add ProductPrice component with bundleOptions and customOptions prices - @gibkigonzo (#3978)
    • Add lazy create cart token - @gibkigonzo (#3994)

    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)
    Source code(tar.gz)
    Source code(zip)
  • v1.11.0(Dec 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

    • Fixed missing parameter to query function from cms/store/block/actions - @georgiev-ivan (#3909)
    • Always close zoom overlay after changing product - @psmyrek (#3818)
    • Fixed problem with cutting image height in category page on 1024px+ screen res - @AdKamil (#3781)
    • Fixed null value of search input - @AdKamil (#3778)
    • Fixed product sorting - @AdKamil (#3785)
    • Fixed displaying sale and new mark - @andrzejewsky (#3800)
    • Fixed sorting on category page and product tile sizing - @andrzejewsky (#3817)
    • Redirect from simple product using url_path - @benjick (#3804)
    • Mount app in 'beforeResolve' if it's not dispatched in 'onReady' - @gibkigonzo (#3669)
    • Fixed AMP pages - @andrzejewsky (#3799)
    • Fixed Product page breadcrumbs problem when products are in multiple categories in different branches of the category tree - @grimasod (#3691)
    • Change translation from jp-JP to ja-JP - @gibkigonzo (#3824)
    • Fixed ecosystem config for pm2 - @andrzejewsky (#3842)
    • Fixed mappingFallback for extending modules - @andrzejewsky (#3822)
    • Fixed adding products search results to category-next product store - @grimasod (#3877)
    • Use defaultSortBy for sorting category products by default @haelbichalex (#3873)
    • Fixed some potential mutations of Config object in catalog and catalog-next - @grimasod (#3843)
    • Set null as default value for custom option in product page - @gibkigonzo (#3885)
    • Fixed Breadcrumb filters - apply to second category fetch - @grimasod (#3887)
    • Fixed config.storeViews.commonCache being ignored - @grimasod (#3895)
    • Fixed static pages, password notification, offline mode #3902 - @andrzejewsky (#3902)
    • Fixed error page display with enabled multistore - @gibkigonzo (#3890)
    • Fixed edit shipping address in my account - @gibkigonzo (#3921)
    • Fetch cms_block content in serverPrefetch method - @gibkigonzo (#3910)
    • Fixed saving invalidated user token - @andrzejewsky (#3923)
    • Keep category products objects on ssr - @gibkigonzo (#3924)
    • product breadcrumbs - check if current category is not highest one - @gibkigonzo (#3933)
    • Use defaultSortBy for sorting category products by default @haelbichalex (#3873)

    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)
    Source code(tar.gz)
    Source code(zip)
  • v1.10.5(Nov 28, 2019)

    Fixed

    • Disable product mutation when assigning product variant - @gibkigonzo (#3735)
    • Fix issue with Cannot assign to read only property 'storeCode' - @yuriboyko (#3748)
    • Render correct category links when multistore is active - @gibkigonzo (#3753)
    • Disable product mutation when assigning product variant - @gibkigonzo (#3735)
    • Fixed null value of search input - @AdKamil (#3778)
    • Sorting fixed on category page - @AdKamil (#3785)
    • Mount app in 'beforeResolve' if it's not dispatched in 'onReady' - @gibkigonzo (#3669)
    • change translation from jp-JP to ja-JP - @gibkigonzo (#3824)
    • Fix product images, my account link, warnings in console - @andrzejewsky (#3850)
    Source code(tar.gz)
    Source code(zip)
  • v1.11.0-rc.2(Nov 4, 2019)

    Note: If you're about to upgrade your custom VS theme from 1.10.x to 1.11, please read the theme upgrade guide. It should be really helpful!

    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)

    Added

    • 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)
    Source code(tar.gz)
    Source code(zip)
  • v1.10.4(Oct 18, 2019)

    Fixed

    • Added try/catch for fetching single product in cart synchronization - @gibkigonzo (#3632)
    • Removed infinite loop when changing checkbox in shipping details - @gibkigonzo (#3656)
    • Remove modifying config by reference in multistore - @gibkigonzo (#3617)
    • Fix displaying same country twice in the in the country switcher - @andrzejewsky (#3587)
    • Remove race condition while loading locale messages - @gibkigonzo (#3602)
    • Fixed special price that can break when you change pages (browser navigation for/back) or just go from category to product page - @resubaka (#3638)
    • Change sku to string when checking products equality - @gibkigonzo (#3606)
    • Fixed problem with losing browser history - @andrzejewsky (#3642)
    • Fixed resolving store code on SSR - @andrzejewsky (#3576)
    • Fixed styles for original price on Wishlist sidebar - @przspa (#3392)
    • Added debounce for updating quantity method in the cart - @andrzejewsky (#3191)
    • Improved scrolling in Safari on iOS devices (sidebars) - @phoenixdev-kl (#3551)
    • Improved cookie and offline badges (z-index, overflow) - @phoenixdev-kl (#3552)
    • Added config to set Cache-Control header for static assets based on mime type - @phoenix-bjoern (#3268)
    • Added catching of errors when ES is down - @qiqqq
    • localizedRoute() doesn't return urlDispatcher routes anymore. Use localizedDispatcherRoute instead - @lukeromanowicz (#3548)
    • Fixed hash in dynamically resolved urls causing resolving issues - @lukeromanowicz (#3515)
    • localizedRoute() now supports path (and prefers over fullPath) in LocalizedRoute objects - @lukeromanowicz (#3515)
    • 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 (#2985)
    • Fixed evaluate detailsLink in the cookie notification - @benjick (#3689)

    Added

    • Added german translations - @schwerdt-ke (3076)
    Source code(tar.gz)
    Source code(zip)
  • v1.11.0-rc.1(Oct 3, 2019)

    Added

    • 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)
    • 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)
    • 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)
    • 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)
    Source code(tar.gz)
    Source code(zip)
  • v1.10.3(Sep 18, 2019)

  • v1.10.2(Sep 6, 2019)

    Fixed

    • Product image is missing on PDP - @przspa, @NavaneethVijay (#3483)
    • Mounting app when routes are resolved, should completly remove recent SSR errors - @patzick (#3499)
    • Fixed categoriesDynamicPrefetchLevel that now can be equal to 0 - @pkarw (#3495)
    Source code(tar.gz)
    Source code(zip)
  • v1.10.1(Sep 3, 2019)

    Fixed

    • Invalid Discount code error handled by theme - @grimasod (#3385)
    • Fallback for empty value or no_selection child image - @ngongoll (#3397)
    • order.order_id was not assigned in the orders.directBackendSync mode - @pkarw (#3398)
    • Hydration problems with UrlDispatcher :rocket: - @patzick (#3412)
    • if condition of quoteId from the _serverDeleteItem method on core/modules/cart/store/action.ts - @AshishSuhane (#3415)
    • Router beforeEach hooks running many times - @grimasod (#3443)
    • test:unit:watch with a workaround of a jest problem with template strings - @resubaka (#3450, #3351)
    • changed the theme test path so test in theme are going to work - @resubaka (#3455)
    Source code(tar.gz)
    Source code(zip)
  • v1.9.3(Sep 3, 2019)

  • v1.10.0(Aug 10, 2019)

    Added

    • Make installer work for windows - @Flyingmana (#2616)
    • "Clear cart" button in the cart - @jablpiotrek (#2587)
    • Global config api path under api.url - @BartoszLiburski (#2622)
    • Google Tag Manager integration - @talalus (#841)
    • Portuguese (pt-PT) translation - @xlcnd (#2695)
    • Module Mailchimp is removed in favor of more generic Newsletter - @mdesmet (#2558)
    • syncTasks cleanup, elasticCacheQuota lowered to 3096KB - @pkarw (#2729)
    • Back-button on orde detail page [#2819]
    • Elastic Search Suggestions in the Search Response - @jpetar (#2853)
    • Linting for typescript files @ResuBaka (#2843)
    • Back to top functionality - @vishal-7037 (#2866)
    • Thumbnail sizes are now configurable within the config.products.thumbnails and config.cart.thumbnails - @pkarw (#2897)
    • In multistore mode it's now possible to configure multiple instances with different hosts, not only the paths - @lukeromanowicz (#3048, #3052).
    • In multistore mode now there is a possibility to skip appending storecode to url with appendStoreCode config option - @lukeromanowicz (#3048, #3052, #3074).
    • Add support for api.url in the Task module - @basvanpoppel (#3011)
    • Products column change functionality - @vishal-7037 (#3017)
    • New Module order-history this provides the pagination via lazy laod - @hackbard (#2810)
    • OrderNumber on ThankYouPage - @Flyingmana (#2743)

    Removed

    • The getter cart/totals has ben replaced with cart/getTotals - @pkarw (#2522)
    • The getter cart/coupon has ben replaced with cart/getCoupon - @pkarw (#2522)
    • The getter cart/totalQuantity has ben replaced with cart/getItemsTotalQuantity - @pkarw (#2522)
    • The event cart-before-save has been removed - @pkarw (#2522)
    • The action cart/save has been removed - @pkarw - (#2522)
    • Some deprecated config options: useShortCatalogUrls and setupVariantByAttributeCode have been removed - @pkarw (#2915)
    • Button for filters acceptance added with new styles for clear filters button - @965750 (#2811)
    • Added "Clear wishlist" button - @aniamusial (#2806)
    • Make all links with the primary color - @hackbard (#2932)

    Fixed

    • Back button on the Error page has been fixed - @pkarw (#3077)
    • Special price got zeroed - @pkarw (#2940)
    • Microcart tax + discount totals fix - @pkarw (#2892)
    • Microcart offline prices now forced down to original prices - @pkarw (#3012)
    • Login/Register errorr message added in case of FetchError (no network connectivity) - @pkarw
    • Products removed from the cart are no longer add back on the conectivity return - @pkarw (#2898)
    • Sidebar menu wasn't possible to scroll - @PanMisza (#2627)
    • Confirmation popup 'Product has beed added to cart' is displayed only once - @JKrupinski (#2610)
    • Moved My Account options from Categories - @bartdominiak (#2612)
    • Fix displaying (and adding) reviews for configurable products - @afirlejczyk (#2660)
    • Image switching fix - @pkarw (#2709)
    • Respect store code on order/PROCESS_QUEUE for shop store - @zulcom (#2727)
    • Unexpected window.localStorage use in user module actions - @zulcom (#2735)
    • Fix handling state of same address checkbox in the checkout - @lukeromanowicz (#2730)
    • Fix for everythingNew collection on home page - @vishal-7037 (#2761)
    • Fixed display of chevron arrows when there is only one product image - RGijsberts - (#2911)
    • Fixed Clear cart option as it previously was not syncing the changes with server - therefore when the user was logged in and cleard the cart all the products were restored - @pkarw (#2587)
    • Fixed the cart sync for a rare case that current cart token was empty - @pkarw (#2592)
    • Use event bus to emit 'application-after-init' event (#2852)
    • Validation of fields 'company name' and 'tax' in checkout doesn't work correctly - @dimasch (#2741)
    • Fixed wrong price displayed in instant checkout module - @vishal-7037 (#2884)
    • Incorrect working of checkboxes in checkout - @dimasch (#2730)
    • Fixed ios input zoom on category page - @victorkadup (#2815)
    • Fixed Load more in Search Results not working when typed to fast - @Flyingmana (#2659, #2946)
    • Subscribe button responsive - @exlo89, @webdiver, @przemyslawspaczek (#2886)
    • Multiple instances for searchAdapter invocations - @bratok (#2960)
    • Fixed issue with login popup state not resetting on mobile devices - @aniamusial (#2699)
    • Fix sortBy for the category page - @Jensderond (#2868)
    • Fixed incorrect prices in Instant Checkout (PR API) - @qiqqq (#2874)
    • Fixed placeholders in gallery in offline mode - @przspa (#2863)
    • Incorrect user_id set on the order object - @pkarw (#2966)
    • Problem with SSR render on product page with logged in user - @patzick (#2888)
    • NaN displayed as shipping method - button disabled - @aniamusial (#2881)
    • Logo on the Error page has been fixed - @przspa (#3077)
    • No placeholders / no photos for Get Inspire section in offline - @przspa (#3072)
    • Back icon on product page causing inconsistent behavior - @patzick (#3056)
    • Remove static definition of cashondelivery in payment module - @danielmaier42 (#2983)
    • Fixed wrong meta description attribute by page overwrite - @przspa (#3091)
    • Fixed the AddToCart button behavior in case of synchronization errors - @pkarw (#3150)
    • User token re-validation fixed to use proper HTTP codes - @pkarw (#3151, #3178)
    • Fixed undefined id of color swatches issue for simple product - @vishal-7037 (#3239)
    • Date filter ignoring format param and locales - @grimasod, @patzick (#3102)
    • Problem with placing an order if shipping method is different than default one - @patzick (#3203)
    • Fixed product video embed on PDP - @juho-jaakkola (#3263)
    • Fixed memory leak with loading DayJS in SSR - @lukeromanowicz (#3310)
    • Fixed invalid localized routes in SSR content of multistore configuration - @lukeromanowicz (#3262)
    • Fixed startSession which loaded from the wrong place the user when multistore was active - @resubaka (#3322)
    • Login after registration - @patzick (#3343)
    • Clear compare list after logout - @patzick (#3348)

    Changed / Improved

    • The cart/sync, cart/addItems, cart/removeItem and cart/updateQuantity now returns the diffLog object with all the notifications, server statuses and items changed during the shopping cart sync
    • The cart/addItem is no longer displaying the error messages - please use the diffLog.clientNorifications to update the UI instead (take a look at the AddToCart.ts for a reference)
    • The action cart/userAfterLoggedin got renamed to cart/authorize - @pkarw (#2522)
    • The action cart/refreshTotals got renamed to cart/syncTotals - @pkarw (#2522)
    • The action cart/serverPull got renamed to cart/sync - @pkarw - (#2522)
    • The way we're getting the user and cart tokens got refactored - @pkarw (#2513)
    • Changed the way to access the configuration. Currently the rootStore.state.config is deprecated. Please do use the import config from 'config' > config instead - @pkarw (#2649)
    • Changed the order number (from entity_id to increment_id) on MyOrders and MyOrder pages - @pkarw (#2743)
    • Disabled the server cart sync in case user is in the checkout - @pkarw (#2749)
    • Improved ProductGalleryCarousel component to handle nonnumeric options id’s - @danieldomurad (#2586)
    • Number of displayed products is now visible on PLP on desktop - @awierzbiak (#2504)
    • Improved visibility of product SKU in wishlist - @PanMisza (#2606)
    • Instant focus to search input field after click on search icon in navbar - @ca1zr (#2608)
    • Login flow from authorized pages after session expired, show the modal with new error message and redirect after login - @gdomiciano, @natalledm (#2674)
    • Added support for the newest node version - @gdomiciano (#2669)
    • Default storeId from 0 to 1 for multistore and cmsdata logic - @janmyszkier (#2590)
    • Used $bus plugin instead of EventBus import - @szafran89 (#2630)
    • BaseCheckbox now uses v-model. @click is not needed anymore - @haukebri (#2630)
    • Image selection supporting multiple configurable options - @mdesmet (#2599)
    • Product video - retrieve video id from 'video_id' field (if set) instead of 'id' - @afirlejczyk
    • Webpack config improvement - @yogeshsuhagiya (#2689)
    • BaseSelect input event - @ResuBaka (#2683)
    • Fixed static file handler to immediately return 404 status for missing files - @grimason (#2685)
    • Fixed maxAge Response Header for static files and Content-Type for Service Worker - @grimason (#2686)
    • Default log verbosity is changed to show only errors - @lromanowicz (#2717)
    • Remembering last search query - @webdiver, @patzick (#2787)
    • Extracted ProductImage component to support faster images loading - @przemyslawspaczek (#2925)
    • Improve performace with preventing render 404 page on the server side if some of static content is missed, simple 404 response uses instead - PHOENIX MEDIA - Yuri Boyko @yuriboyko, Anton Lobodenko @sniffy1988 (#3002)
    • Logger refactor + now it takes showErrorOnProduction into account - @lromanowicz - (#2717)
    • Jest updated from 24.1 to 24.7 along with typings - @lromanowicz - (#2717)
    • Jest globals added to .eslint - @lromanowicz (#2717)
    • The default storeId is taken from the configurations - @nuovecode (#2718)
    • Multitab cart sync - @BartoszLiburski (#2547)
    • Back to login button now shows the Login modal window instead of closing it - @RGijsberts (#2882)
    • Status filter in Related Products query (#2805)
    • The "Apply button was too big, I have reduced its size - @idodidodi (#2807)
    • Added return to shopping button on ThenkYou page - @ZeevGerstner (#2818)
    • Added optional attributes to catalog/product.ts - @ZeevGerstner (#2792)
    • Formatted dates in CHANGELOG.md to match ISO standard - @phoenixdev-kl (#2839)
    • Moved Filter Price Ranges (used for ES aggregations and UI Filter) to the config - @jpetar (#2873)
    • Extra space if not found products in everything new section home page - @cnviradiya (#2846)
    • Load custom fonts without webfont.js - @jahvi (#2944)
    • Added some structured data to product page - @cewald (#2910)
    • Improved the Size Guide feature so it opens in a modal popup instead of a new page - @RGijsberts - (#2913)
    • Refactored Travis config - @Tjitse-E (#3035)
    • Renamed the stock/check to stock/queueCheck to better emphasize it's async nature; added stock/check which does exactly what name suggests - returning the true stock values - @pkarw (#3150)
    • Cart unit tests throwing lots of type warnings - @lukeromanowicz (#3185)
    • Lack of possibility to mock src modules and theme components - @lukeromanowicz (#3185)
    • Outdated signature of Registration hooks for google-tag-manager - @vishal-7037 (#3208)
    • Added serveral missing german translations and fixed german language file structure - @unherz (#3202)
    • Refactored the informal way of adressing to formal in german translation files - @unherz (#3213)
    Source code(tar.gz)
    Source code(zip)
  • v1.10.0-rc.1(Jun 19, 2019)

    Added

    • Make installer work for windows - @Flyingmana (#2616)
    • "Clear cart" button in the cart - @jablpiotrek (#2587)
    • Global config api path under api.url - @BartoszLiburski (#2622)
    • Google Tag Manager integration - @talalus (#841)
    • Portuguese (pt-PT) translation - @xlcnd (#2695)
    • Module Mailchimp is removed in favor of more generic Newsletter - @mdesmet (#2558)
    • syncTasks cleanup, elasticCacheQuota lowered to 3096KB - @pkarw (#2729)
    • Back-button on orde detail page [#2819]
    • Elastic Search Suggestions in the Search Response - @jpetar (#2853)
    • Linting for typescript files @ResuBaka (#2843)
    • Back to top functionality - @vishal-7037 (#2866)
    • Thumbnail sizes are now configurable within the config.products.thumbnails and config.cart.thumbnails - @pkarw (#2897)
    • In multistore mode it's now possible to configure multiple instances with different hosts, not only the paths - @lukeromanowicz (#3048, #3052).
    • In multistore mode now there is a possibility to skip appending storecode to url with appendStoreCode config option - @lukeromanowicz (#3048, #3052, #3074).
    • Add support for api.url in the Task module - @basvanpoppel (#3011)
    • Products column change functionality - @vishal-7037 (#3017)
    • New Module order-history this provides the pagination via lazy laod - @hackbard (#2810)
    • OrderNumber on ThankYouPage - @Flyingmana (#2743)

    Removed

    • The getter cart/totals has ben replaced with cart/getTotals - @pkarw (#2522)
    • The getter cart/coupon has ben replaced with cart/getCoupon - @pkarw (#2522)
    • The getter cart/totalQuantity has ben replaced with cart/getItemsTotalQuantity - @pkarw (#2522)
    • The event cart-before-save has been removed - @pkarw (#2522)
    • The action cart/save has been removed - @pkarw - (#2522)
    • Some deprecated config options: useShortCatalogUrls and setupVariantByAttributeCode have been removed - @pkarw (#2915)
    • Button for filters acceptance added with new styles for clear filters button - @965750 (#2811)
    • Added "Clear wishlist" button - @aniamusial (#2806)
    • Make all links with the primary color - @hackbard (#2932)

    Fixed

    • Back button on the Error page has been fixed - @pkarw (#3077)
    • Special price got zeroed - @pkarw (#2940)
    • Microcart tax + discount totals fix - @pkarw (#2892)
    • Microcart offline prices now forced down to original prices - @pkarw (#3012)
    • Login/Register errorr message added in case of FetchError (no network connectivity) - @pkarw
    • Products removed from the cart are no longer add back on the conectivity return - @pkarw (#2898)
    • Sidebar menu wasn't possible to scroll - @PanMisza (#2627)
    • Confirmation popup 'Product has beed added to cart' is displayed only once - @JKrupinski (#2610)
    • Moved My Account options from Categories - @bartdominiak (#2612)
    • Fix displaying (and adding) reviews for configurable products - @afirlejczyk (#2660)
    • Image switching fix - @pkarw (#2709)
    • Respect store code on order/PROCESS_QUEUE for shop store - @zulcom (#2727)
    • Unexpected window.localStorage use in user module actions - @zulcom (#2735)
    • Fix handling state of same address checkbox in the checkout - @lukeromanowicz (#2730)
    • Fix for everythingNew collection on home page - @vishal-7037 (#2761)
    • Fixed display of chevron arrows when there is only one product image - RGijsberts - (#2911)
    • Fixed Clear cart option as it previously was not syncing the changes with server - therefore when the user was logged in and cleard the cart all the products were restored - @pkarw (#2587)
    • Fixed the cart sync for a rare case that current cart token was empty - @pkarw (#2592)
    • Use event bus to emit 'application-after-init' event (#2852)
    • Validation of fields 'company name' and 'tax' in checkout doesn't work correctly - @dimasch (#2741)
    • Fixed wrong price displayed in instant checkout module - @vishal-7037 (#2884)
    • Incorrect working of checkboxes in checkout - @dimasch (#2730)
    • Fixed ios input zoom on category page - @victorkadup (#2815)
    • Fixed Load more in Search Results not working when typed to fast - @Flyingmana (#2659, #2946)
    • Subscribe button responsive - @exlo89, @webdiver, @przemyslawspaczek (#2886)
    • Multiple instances for searchAdapter invocations - @bratok (#2960)
    • Fixed issue with login popup state not resetting on mobile devices - @aniamusial (#2699)
    • Fix sortBy for the category page - @Jensderond (#2868)
    • Fixed incorrect prices in Instant Checkout (PR API) - @qiqqq (#2874)
    • Fixed placeholders in gallery in offline mode - @przspa (#2863)
    • Incorrect user_id set on the order object - @pkarw (#2966)
    • Problem with SSR render on product page with logged in user - @patzick (#2888)
    • NaN displayed as shipping method - button disabled - @aniamusial (#2881)
    • Logo on the Error page has been fixed - @przspa (#3077)
    • No placeholders / no photos for Get Inspire section in offline - @przspa (#3072)
    • Back icon on product page causing inconsistent behavior - @patzick (#3056)

    Changed / Improved

    • The cart/sync, cart/addItems, cart/removeItem and cart/updateQuantity now returns the diffLog object with all the notifications, server statuses and items changed during the shopping cart sync
    • The cart/addItem is no longer displaying the error messages - please use the diffLog.clientNorifications to update the UI instead (take a look at the AddToCart.ts for a reference)
    • The action cart/userAfterLoggedin got renamed to cart/authorize - @pkarw (#2522)
    • The action cart/refreshTotals got renamed to cart/syncTotals - @pkarw (#2522)
    • The action cart/serverPull got renamed to cart/sync - @pkarw - (#2522)
    • The way we're getting the user and cart tokens got refactored - @pkarw (#2513)
    • Changed the way to access the configuration. Currently the rootStore.state.config is deprecated. Please do use the import config from 'config' > config instead - @pkarw (#2649)
    • Changed the order number (from entity_id to increment_id) on MyOrders and MyOrder pages - @pkarw (#2743)
    • Disabled the server cart sync in case user is in the checkout - @pkarw (#2749)
    • Improved ProductGalleryCarousel component to handle nonnumeric options id’s - @danieldomurad (#2586)
    • Number of displayed products is now visible on PLP on desktop - @awierzbiak (#2504)
    • Improved visibility of product SKU in wishlist - @PanMisza (#2606)
    • Instant focus to search input field after click on search icon in navbar - @ca1zr (#2608)
    • Login flow from authorized pages after session expired, show the modal with new error message and redirect after login - @gdomiciano, @natalledm (#2674)
    • Added support for the newest node version - @gdomiciano (#2669)
    • Default storeId from 0 to 1 for multistore and cmsdata logic - @janmyszkier (#2590)
    • Used $bus plugin instead of EventBus import - @szafran89 (#2630)
    • BaseCheckbox now uses v-model. @click is not needed anymore - @haukebri (#2630)
    • Image selection supporting multiple configurable options - @mdesmet (#2599)
    • Product video - retrieve video id from 'video_id' field (if set) instead of 'id' - @afirlejczyk
    • Webpack config improvement - @yogeshsuhagiya (#2689)
    • BaseSelect input event - @ResuBaka (#2683)
    • Fixed static file handler to immediately return 404 status for missing files - @grimason (#2685)
    • Fixed maxAge Response Header for static files and Content-Type for Service Worker - @grimason (#2686)
    • Default log verbosity is changed to show only errors - @lromanowicz (#2717)
    • Remembering last search query - @webdiver, @patzick (#2787)
    • Extracted ProductImage component to support faster images loading - @przemyslawspaczek (#2925)
    • Improve performace with preventing render 404 page on the server side if some of static content is missed, simple 404 response uses instead - PHOENIX MEDIA - Yuri Boyko @yuriboyko, Anton Lobodenko @sniffy1988 (#3002)
    • Logger refactor + now it takes showErrorOnProduction into account - @lromanowicz - (#2717)
    • Jest updated from 24.1 to 24.7 along with typings - @lromanowicz - (#2717)
    • Jest globals added to .eslint - @lromanowicz (#2717)
    • The default storeId is taken from the configurations - @nuovecode (#2718)
    • Multitab cart sync - @BartoszLiburski (#2547)
    • Back to login button now shows the Login modal window instead of closing it - @RGijsberts (#2882)
    • Status filter in Related Products query (#2805)
    • The "Apply button was too big, I have reduced its size - @idodidodi (#2807)
    • Added return to shopping button on ThenkYou page - @ZeevGerstner (#2818)
    • Added optional attributes to catalog/product.ts - @ZeevGerstner (#2792)
    • Formatted dates in CHANGELOG.md to match ISO standard - @phoenixdev-kl (#2839)
    • Moved Filter Price Ranges (used for ES aggregations and UI Filter) to the config - @jpetar (#2873)
    • Extra space if not found products in everything new section home page - @cnviradiya (#2846)
    • Load custom fonts without webfont.js - @jahvi (#2944)
    • Added some structured data to product page - @cewald (#2910)
    • Improved the Size Guide feature so it opens in a modal popup instead of a new page - @RGijsberts - (#2913)
    • Refactored Travis config @Tjitse-E (#3035)
    Source code(tar.gz)
    Source code(zip)
  • v1.9.2(Jun 10, 2019)

    Fixed

    • Instant Checkout visible on Safari - @przspa (#2991)
    • Search Sidebar on Safari - @przspa (#2990)
    • Country label style - @przspa (#2989)
    • BaseInputNumber for qty of the product in the cart can change by using arrows - @przspa (#2988)
    • Category load depending on zoom level - @przspa (#2704)
    • Add yarn.lock to dockerfile build - @Flyingmana (#3006)
    • Inconsistent behaviour of picture slider on PDP - @przspa (#2757)
    Source code(tar.gz)
    Source code(zip)
  • v1.9.1(May 27, 2019)

    Fixed

    • Remove security vulnerabilities by updating project dependencies - @patzick (#2942)
    • Fix Configurable Products not accessible in CSR when children visibility is set to "not visible individually" - @revlis-x (#2933)
    • ProductTile placeholders are visible on SSR - @patzick (#2939)
    Source code(tar.gz)
    Source code(zip)
  • v1.9.0(May 6, 2019)

    Added

    • The Url Dispatcher feature added for friendly URLs. When config.seo.useUrlDispatcher set to true the product.url_path and category.url_path fields are used as absolute URL addresses (no /c and /p prefixes anymore). Check the latest mage2vuestorefront snapshot and reimport Your products to properly set url_path fields - #2010 - @pkarw
    • Unit tests of cart module written in jest - @lukeromanowicz (#2305)
    • validation for UTF8 alpha and alphanumeric characters in most checkout fields - @lromanowicz (#2653)
    • helper to process config urls with default endpoint host config.api.host - @patzick (#2858)

    Changed / Improved

    • The core/helpers parsing URL methods exchanged to query-string package - @pkarw (#2446)
    • Unit tests in Karma are now removed in favor of jest - @lukeromanowicz (#2305)
    • Material Icons are loaded asynchronously - @JKrupinski, @filrak (#2060)
    • Update to babel 7 - @lukeromanowicz (#2554)

    Fixed

    • Gallery low quality image in offline mode when high quality already cached - @patzick (#2557)
    • Payment issue when no address set - @szafran89 (#2593)
    • Search component result message when search term is less than 3 letters - @robwozniak (#2561)
    • Removed childSku parameter in url for non-configurable products when using urlDispatcher - @Aekal (#2605)
    • Image lazy loading after SSR reload - @pkarw (#2641)
    • Modules can add custom URL - @pkarw (#2601)
    • Url routes fixes - @pkarw (#2598, #2645, #2614)
    • Fix for shopping cart actions when the cartId has been cleared out - @pkarw (#2567)
    • Fixed always common cache issue for multistore - @filrak (#2595)
    • Checkout copy address data will sync on later change - @haukebri (#2661)
    • Fixed Safari style for sort-by select - @haukebri (#2642)
    • fixed My orders in My Profile not refreshed after putting an order - @filrak (#2559)
    • Refreshing product page on mobile device - @patzick (#2484)
    • ESlint throwing errors about undefined jest globals in tests - @lukeromanowicz (#2702)
    • Fixed changing the country when entering shipping address in checkout not updating shipping costs - @revlis-x (#2691)
    • Instant Checkout fix - @qiqqq (#2750)
    • Infinite loop on multistore page after reload - @patzick (#2713)
    • Refreshing MyAccount page on multistore - @patzick (#2780)
    • "Toggle password visible" button in password fields works the right way - @lromanowicz (#2772)
    • Range queries to elasticsearch - @oskar1233 (#2746)
    • BaseInput has min height now to avoid jumping on forms - @patzick (#2771)
    • Orders with invalid address don't stack anymore in the queue and have proper notification popup - @AndreiBelokopytov, @lukeromanowicz (#2663)
    • Offline orders with out of stock products don't stack anymore and get canceled after going back to online - @lukeromanowicz (#2740)
    • Build ServiceWorker on Docker - @patzick (#2793)
    • Product image load after comming back to online - @patzick (#2573)
    • Insufficent validation for city field in checkout address - @lromanowicz (#2653)
    • Incorrect hover activity on the 'filter by categories' in the search view on mobile - @idodidodi (#2783)
    • Unit tests written in JavaScript now support async/await functions and dynamic import - @michaelKurowski, @lukeromanowicz (#2851)
    Source code(tar.gz)
    Source code(zip)
  • v1.8.5(Apr 17, 2019)

  • v1.9.0-rc.2(Apr 10, 2019)

    Fixed

    • Payment issue when no address set - @szafran89 (#2593)
    • Search component result message when search term is less than 3 letters - @robwozniak (#2561)
    • Removed childSku parameter in url for non-configurable products when using urlDispatcher - @Aekal (#2605)
    • Image lazy loading after SSR reload - @pkarw (#2641)
    • Modules can add custom URL - @pkarw (#2601)
    • Url routes fixes - @pkarw (#2598, #2645, #2614)
    • Fix for shopping cart actions when the cartId has been cleared out - @pkarw (#2567)
    • Fixed always common cache issue for multistore - @filrak (#2595)
    • Checkout copy address data will sync on later change - @haukebri (#2661)
    • Fixed Safari style for sort-by select - @haukebri (#2642)
    • fixed My orders in My Profile not refreshed after putting an order - @filrak (#2559)
    • Refreshing product page on mobile device - @patzick (#2484)
    Source code(tar.gz)
    Source code(zip)
  • v1.8.4(Mar 26, 2019)

    Fixed

    • Problem with incomplete category products load for offline use - @patzick (#2543)
    • Category products view crash on scrolling down in offline mode - @patzick (#2569)
    • Default propery issue for the col-xs-* classes - @cnviradiya (#2558)
    • Wishlist and compare list not cached properly - @filrak (#2580)

    Changed / Improved

    • Category and Homepage products are now cached for offline use on SSR entry - @patzick (@1698)
    Source code(tar.gz)
    Source code(zip)
  • v1.9.0-rc.1(Mar 7, 2019)

    Added

    • Payment Request API integration - @qiqqq (#2306)
    • The Url Dispatcher feature added for friendly URLs. When config.seo.useUrlDispatcher set to true the product.url_path and category.url_path fields are used as absolute URL addresses (no /c and /p prefixes anymore). Check the latest mage2vuestorefront snapshot and reimport Your products to properly set url_path fields - #2010 - @pkarw
    • Unit tests of cart module written in jest - @lukeromanowicz (#2305)

    Fixed

    • Gallery low quality image in offline mode when high quality already cached - @patzick (#2557)

    Changed / Improved

    • The core/helpers parsing URL methods exchanged to query-string package - @pkarw (#2446)
    • Unit tests in Karma are now removed in favor of jest - @lukeromanowicz (#2305)
    • Material Icons are loaded asynchronously - @JKrupinski, @filrak (#2060)
    • Update to babel 7 - @lukeromanowicz (#2554)
    Source code(tar.gz)
    Source code(zip)
  • v1.8.3(Mar 4, 2019)

    Added

    • New reactive helper to check online state. Usage: import { onlineHelper } from '@vue-storefront/core/helpers' and then onlineHelper.isOnline - @patzick (#2510)
    • Cart count config, allows you to display the item count instead of a sum of the item quantities - @pauluse (#2483)
    • Video support in Product Gallery component. - @rain2o (#2433)

    Fixed

    • Problem with placing second order (unbinding payment methods after first order) - @patzick (#2195, #2503)
    • Remaking order on user orders page - @patzick (#2480)
    • Images blinking on category page - @pkarw (#2523)
    • state.ts not bound in the module-template - @pkarw (#2496)
    • Validation in the Myprofile section for postcode field - @pkarw (#1317)
    • Non-integer qty of product added to the cart - @pkarw (#2517)

    Changed / Improved

    • Fixed an issue where the correct image for a product configuration wasn't set on the product page image carousel. Also added the fix on the productcarousel in the zoom component - @DaanKouters (#2419)
    • Way of creating VS Modules was changed to use factory method instead of explict object creation. - @filrak (#2434)
    • Added clear filters button on desktop also and only show if filters are applied - @DaanKouters (#2342)
    • Improved docs at contributing.md and configuration.md (spelling etc.) - @ruthgeridema (#2421, #2422, #2423, #2425, #2426)
    • Fixed design issue of Country label on Edge 17 & Firefox - @ananth-iyer (#2390, #2399)
    • Wishlist and compare items are loaded from local cache only once, instead of every time when module component is rendered - @patzick (#2431)
    • Country field is filled by first counry from the list in cart in paymen section - @RakowskiPrzemyslaw (#2428)
    • Improved product quantity change component in product and cart - @patzick (#2398, #2437)
    • Updated to Vue 2.6.6 - @filrak (#2456)
    • Null sidebar menu data on static page fixed - @filrak (#2449, #2441)
    • Fix cannot edit previous steps in checkout - @filrak, @patzick (#2438)
    • Fixed route guard ssr problem - @vue-kacper (#2364)
    • Fix links in footer to static pages bug - @filrak (#2452)
    • Fix links at docs, Basics/Configuration file explained - @daksamit (#2490)
    • Improve images loading on category page, corrected alt view and blinking problem - @patzick (#2465)
    • Improve tsconfig for better IDE paths support - @patzick, @filrak (#2474)
    • fix breadcrumbs changing too early - @filrak, @pkarw (#2469, #2529)
    • improved product gallery load view, shows correct image on reload - @patzick (#2481, #2482, #2488, #2501)
    • Fix an issue where the index.html template within a theme is ignored - @EnthrallRecords (#2489)
    • Added async sidebar component with async off-screen components error handling and fetch retrying after coming back online - @filrak (#2408, #2451)
    • Inconsistent filters behaviour - clear filters on page load - @patzick (#2435)
    • fix price is never below 0 and user can't add 0 or below 0 products to cart - @RakowskiPrzemyslaw (#2437)
    • Check for placing single order in case of error in any payment module - @patzick (#2409)
    • Display prices in products added in offline mode. - @patzick (#2450)
    • Updated cypress dependency for e2e tests - @lukeromanowicz (#2518)
    • Improved styles on recommendation filters, product tile and numeric input - @patzick (#2458)

    Deprecated / Removed

    • @vue-storefront/store package deprecated - @filrak
    Source code(tar.gz)
    Source code(zip)
  • v1.8.2(Feb 11, 2019)

  • v1.8.1(Feb 10, 2019)

    This is a hot-fix release for fixing the payment methods switching issue when both: payments-cash-on-delivery and payments-backend-methods modules enabled.

    Changed / Improved

    • Fixed doubled invlication of placeOrder when both: payments-cash-on-delivery and payments-backend-methods modules enabled - #2405
    Source code(tar.gz)
    Source code(zip)
Owner
Vue Storefront
Vue Storefront is the Lighting-Fast Frontend Platform for Headless Commerce
Vue Storefront
Third-Party Authentication (Github) demo Vue 3 + TypeScript + Pinia app using Supabase

vue-supabase-tpa-demo This template should help get you started developing with Vue 3 in Vite. Recommended IDE Setup VSCode + Volar (and disable Vetur

Mac (Maciej Pędzich) 25 Nov 21, 2022
Nuxt-Module, that provides a system to set shopware cache-tags for later use in e.g. a full-page cache

nuxt-shopware-caching Nuxt-Module, that provides a system to set shopware cache-tags for later use in e.g. a full-page cache. This module is meant to

Mothership GmbH 5 Nov 8, 2022
:bento: Full-Stack solution to quickly build PWA applications with Vue.js and Firebase

Welcome to bento-starter ?? ?? bento-starter is an Open-Source Full-Stack solution that helps you to build fast and maintainable web applications usin

Franck Abgrall 1.5k Dec 24, 2022
Make Phaser 3 games with modern frontend tooling.

Phaser 3 + Vite.js Template Make Phaser 3 games with modern frontend tooling. Prerequisites You'll need Node.js and npm installed. It is highly recomm

ourcade 15 Dec 15, 2022
(WIP) Universal PWA Builder

WORK IN PROGRESS Features Framework Agnostic Build with your preferred framework or with none at all! Official presets for Preact, React, Vue, and Sve

Luke Edwards 3.1k Dec 29, 2022
Code snippets manager for developers. PWA.

Snippets Ninja About Snippets.Ninja is a progressive web application for code snippet management. Offline first. Open Source. App uses IndexedDB for l

Magalyas Dmitry 71 Dec 19, 2022
Modern Vue Stack 2022. Joyful development experience 🎉

Modern Vue Modern Vue stack 2022 with Micro front end & Monorepo ?? . Joyful development experience ?? . The main branch will keep clean for quickly c

han 263 Dec 18, 2022
Vue-cursor-fx - 🖱 An animated custom cursor effects for interactive elements like navigation - w/ VueJS - SSR Compatible

?? Vue Cursor Fx An animated custom cursor effects for interactive elements like navigation - w/ VueJS - SSR Compatible Installation This package is a

Luca Iaconelli 56 Aug 18, 2022
A headless, single-page dashboard application for Shoplix

Configure API address cd ui-domain vi api.js set api address // development environment export const dev = { base: 'your api address', seller: 'yo

Shopflix 26 May 5, 2022
A headless, single-page dashboard application for Shoplix

Configure API address cd ui-domain vi api.js set api address // development environment export const dev = { base: 'your api address', seller: 'yo

Shopfly 26 Apr 22, 2022
Basic https setup using an automatically generated self-signed certificate

@vitejs/plugin-basic-ssl A plugin to generate untrusted certificates which still allows to access the page after proceeding a wall with warning. In mo

vite 81 Jan 2, 2023
This is a heart of RainbowBOT. You can also build your own bots with this core!

RainbowBOT Core RainbowBOT Core - is a Discord BOT core with rich functionality. This core takes over many routine things like data storing, interacti

Thomas Sidereal 5 Apr 26, 2022
A modern, zero-dependency uptime monitoring tool & status page based on GitHub Actions & Nuxt Content v2.

StatusBase Uptime monitoring tool & beautiful status pages Powered by Nuxt Content v2! Free • Open Source • Notification View Demo · Report Bug · Requ

zernonia 208 Dec 27, 2022
A modern, zero-dependency uptime monitoring tool & status page based on GitHub Actions & Nuxt Content v2.

StatusBase Uptime monitoring tool & beautiful status pages Powered by Nuxt Content v2! Free • Open Source • Notification View Demo · Report Bug · Requ

StatusBase 194 Jul 5, 2022
🌈 CLI tool to scaffold chakra ui projects, without wasting time.

Create Chakra Project (create-chakra) ⚒ Tool to scaffold chakra apps, without wasting time. It uses existing tools like create-next-app and create-vit

Vedant Nandwana 13 Nov 29, 2022
Wiki.js | A modern and powerful wiki app built on Node.js

A modern, lightweight and powerful wiki app built on NodeJS Official Website Documentation Requirements Installation Demo Change Log Feature Requests

requarks.io 19.5k Jan 5, 2023
:tada: A magical vue admin https://panjiachen.github.io/vue-element-admin

English | 简体中文 | 日本語 | Spanish SPONSORED BY 活动服务销售平台 客户消息直达工作群 Introduction vue-element-admin is a production-ready front-end solution for admin inter

花裤衩 80.1k Dec 31, 2022
have github in powercord

github-in-discord Have github in powercord! You can now look at repos inside of discord. Works with Shiki Codeblocks too! Huge thanks to Pavy for styl

pog who? 32 Nov 23, 2022
A template to use GoLang Lorca package to make desktop applications using webview and Svelte for the frontend,

Svelte Lorca Template A starter project for building modern cross-platform desktop apps in Go, HTML, and Svelte. This project is a fork of lorca-ts-re

Ben Winchester 16 Jun 19, 2022