# Storefront App
(opens new window) (opens new window)
Vue 2 SPA with cart, checkout and account pages for E-Com Plus Storefront (opens new window):
- Integrated with
EcomCart
(opens new window) andEcomPassport
(opens new window); - Ready for E-Com Plus REST APIs (opens new window);
- Internationalization support (opens new window);
- A11Y compliance;
- Built with Vue CLI 4;
# Installation
You can install the package and import raw source when using bundlers such as Webpack and Browserify, or load compiled from CNDs like jsDelivr or UNPKG.
It requires and doesn't include @ecomplus/utils
(opens new window) (peer dependency), it should be used to declare store settings before starting the checkout SPA, check the following examples and edit $ecomConfig.set
with your store values.
Component styles will be loaded on demand, but Storefront Twbs (opens new window) styles should be previously imported for base UI.
# With bundlers
npm i --save @ecomplus/utils @ecomplus/storefront-app
// config.js
import { $ecomConfig } from '@ecomplus/utils'
$ecomConfig.set('store_id', 1011)
$ecomConfig.set('lang', 'pt_br')
$ecomConfig.set('currency', 'BRL')
$ecomConfig.set('country_code', 'BR')
// checkout.js
import './config.js'
import '@ecomplus/storefront-app/src/main'
@import "node_modules/@ecomplus/storefront-twbs/scss/styles";
# CDN
Add the scripts below right before </body>
on your cart/checkout page:
<script src="https://cdn.jsdelivr.net/npm/@ecomplus/utils@1/dist/ecom-utils.polyfill.min.js"></script>
<script>
$ecomConfig.set('store_id', 1011);
$ecomConfig.set('lang', 'pt_br');
$ecomConfig.set('currency', 'BRL');
$ecomConfig.set('country_code', 'BR');
</script>
<script src="https://cdn.jsdelivr.net/npm/@ecomplus/storefront-app@latest/dist/lib/js/app.js"></script>
And base UI styles before </head>
:
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ecomplus/storefront-twbs@5/dist/storefront-twbs.min.css">
# Usage
You just need to have a #storefront-app
element on your HTML:
<body>
<main>
<div id="storefront-app"></div>
</main>
<!-- scripts -->
</body>
Sample JSFiddle (opens new window)
We recommend running the SPA at the /app/
route (eg.: /app/index.html
).
# Manipulating cart items
You can import @ecomplus/shopping-cart
on other ecommerce pages to add items before redirecting user to cart:
<script src="https://cdn.jsdelivr.net/npm/@ecomplus/shopping-cart@2/dist/ecom-cart.bundle.min.js"></script>
<script>
$('#buy-button').click(function () {
// add item to cart
ecomCart.addItem({
product_id: '123a5432109876543210cdef',
sku: 's-MP_2B4',
name: 'Mens Pique Polo Shirt',
quantity: 4,
price: 42.9,
picture: {
normal: {
url: 'https://samplecdn.x/mens-polo-350x350.webp'
},
zoom: {
url: 'https://samplecdn.x/mens-polo.webp'
}
}
});
// redirect to checkout
window.location.href = '/app/#/checkout';
})
</script>
For more details and examples, refer to EcomCart
(opens new window) docs.
# Manipulating customer account
Please refer to EcomPassport
(opens new window) docs.
← TheProduct Compiler →