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.
From vue-storefront created by rain2o: vuestorefront/vue-storefront#5448
What is the motivation for adding / enhancing this feature?
Currently, the isVirtualCart getter checks if all product types are either downloadable or virtual. I imagine these "types" are not present in all backend platforms (these seem to be specific to Magento, not sure about other systems), but this also restricts virtual products to these types. In Magento at least, you have the ability to create custom Product Types, which can be used quite often for different needs. These types can be "virtual" or physical.
It would be very useful if this getter was more flexible in some way. One idea is to have a configurable array of virtual product types in the config.
Another option, though I don't know if this would be applicable to systems outside of Magento, would be to utilize the is_virtual property which already exists on the Quote/Cart object in Magento (and on the Order object). This could be mapped to the state when the cart is synced and used directly, as Magento handles the logic for this value already. But as I said, I don't know that this value is available on all backend systems currently supported by VSF.
What are the acceptance criteria
[ ] Custom product types can be considered when determining the value of isVirtualCart cart getter.
[ ] The isVirtualCart getter handles the logic in a way that is platform agnostic, allowing products/cart for other backend platforms to be properly considered.
Version of Vue Storefront
[x] Vue Storefront
[ ] Vue Storefront Next (I don't have experience with VSF Next, so not sure if this applies)
Can you complete this feature request by yourself?
[x] YES (depending on the decided solution)
[ ] NO
Additional information
I believe the option of using cart.is_virtual is the best option, to avoid unnecessary processing. However, this could very well be a Magento specific attribute on the Cart/Order objects. If we can have some feedback from developers who use other platforms to better inform this decision, that would be greatly helpful to ensure we make a decision that is as platform agnostic as possible, while still being performance-conscious.
From vue-storefront created by rain2o: vuestorefront/vue-storefront#5448
What is the motivation for adding / enhancing this feature?
Currently, the
isVirtualCart
getter checks if all product types are eitherdownloadable
orvirtual
. I imagine these "types" are not present in all backend platforms (these seem to be specific to Magento, not sure about other systems), but this also restricts virtual products to these types. In Magento at least, you have the ability to create custom Product Types, which can be used quite often for different needs. These types can be "virtual" or physical.It would be very useful if this getter was more flexible in some way. One idea is to have a configurable array of virtual product types in the config. Another option, though I don't know if this would be applicable to systems outside of Magento, would be to utilize the
is_virtual
property which already exists on the Quote/Cart object in Magento (and on the Order object). This could be mapped to the state when the cart is synced and used directly, as Magento handles the logic for this value already. But as I said, I don't know that this value is available on all backend systems currently supported by VSF.What are the acceptance criteria
isVirtualCart
cart getter.isVirtualCart
getter handles the logic in a way that is platform agnostic, allowing products/cart for other backend platforms to be properly considered.Version of Vue Storefront
Can you complete this feature request by yourself?
Additional information
I believe the option of using
cart.is_virtual
is the best option, to avoid unnecessary processing. However, this could very well be a Magento specific attribute on the Cart/Order objects. If we can have some feedback from developers who use other platforms to better inform this decision, that would be greatly helpful to ensure we make a decision that is as platform agnostic as possible, while still being performance-conscious.