cart-localstorage
Version:
Tiny shopping cart on top of LolcalStorage - ES6, < 1Kb, full test coverage
133 lines (80 loc) • 2.29 kB
Markdown
# cart-localstorage
#### Super simple JavaScript shopping cart library
This micro library utilizes the browser's localStorage to create a persistent shopping cart instance
## Demo
[Cart demo](http://peet86.github.io/cart-localstorage)
## Install:
Use npm or yarn to add it to your ES6 project:
```
npm install cart-localstorage
```
```
yarn add cart-localstorage
```
OR use the bundled version (via CDN):
```html
<script src="https://unpkg.com/cart-localstorage@1.1.2/dist/cart-localstorage.min.js" type="text/javascript"></script>
```
## Example
```javascript
import { add, total } from 'cart-localstorage'
add({id: 1, name: "Product 1", price: 100})
add({id: 2, name: "Product 2", price: 100}, 2)
console.log(total())
// output: 300
```
## API
#### add(product, [quantity:1])
Adds product to the cart. If the product already exists it increases the quantity with 1.
The product object structure is flexible, only "id" and "price" are mandatory properties.
```javascript
const myproduct = {id: 3, name: "Vans", price: 75}
add(myproduct, 2)
```
#### get(id)
Get product from the cart by id
```javascript
get(1)
// {id: 1, name: "Nike Air", price: 100, quantity: 1}
```
#### exists(id)
Checks if the product already exists in the cart
```javascript
exists(21)
// true or false
```
#### list()
Get the content of the cart as an array of products.
```javascript
list()
// [{id: 1, name: "Nike Air", price: 100, quantity: 1}, {id: 2, name: "Adidas Superstar", price: 120, quantity: 2}]
```
#### remove(id)
Removes the product from the cart
```javascript
remove(1)
```
#### update(id, property, value)
Updates the product's property with a certain value.
```javascript
update(1,'price',200)
```
#### quantity(id, diff)
Increase / decrease product's quantity with a positive or negative value.
```javascript
quantity(22,-1) // will decrease the quantity of product [id:22] with 1.
```
#### total([reducer])
By default returns with the total price:
```javascript
total()
// 220
```
or you can pass a custom reducer function to have full control over the calculation.
#### destroy()
Deletes the cart array from the browser's localStorage.
```javascript
destroy()
```
## License
This plugin is available under Apache 2.0 license.