# j-ShoppingCart

> j-ShoppingCart: Singleton; unterstützt Rabatt

Framework: jcomponent20
Product: jComponent 20 (jcomponent@20)
Language: de
Content-SHA256: 66df86ad844e14b81ff1cd4fa23d552dbf7ed13bc84f0977dbfc017a2308a971
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: components@910ed1a86f6e72b4f031d3ad0dc7844f9fc5cb8e
Review: not-recorded

- Singleton
- unterstützt Rabatt
- Daten werden in localStorage gespeichert

__Konfiguration__:

- `discount {Number}` ein prozentualer Rabatt (optional, Standard: `0`)
- `expiration {String}` Datenablauf (Standard: `6 days`)

__Ausgabe__:

```js
{
	items: [
		{
			name: String,
			price: Number,
			total: Number,
			count: Number,
			date: Date
		}
	],
	price: Number,
	total: Number,
	count: Number
}
```

### Methoden

- `instance.add(id, price, count, [name])` fügt ein neues Produkt hinzu oder erhöht die Anzahl, wenn das Produkt vorhanden ist
- `instance.upd(id, [count], [price], [name])` aktualisiert die Produktdaten
- `instance.buy(id, price, count, [name])` erstellt/aktualisiert das Produkt
- `instance.rem(id)` entfernt das Produkt
- `instance.has(id)` prüft Produkt
- `instance.read(id)` liest Produkt
- `instance.clear()` löscht alle Produkte
- `instance.clean()` entfernt alle Produkte mit der Anzahl Null
- `instance.sync(function(array_id_products, meta) {})` erstellt Daten für die Synchronisierung mit dem Server

### Globale Ereignisse

- `ON('shoppingcart.add', function(item) {})`
- `ON('shoppingcart.upd', function(item) {})`
- `ON('shoppingcart.rem', function(id) {})`
- `ON('shoppingcart.sum', function(data) {})`
- `ON('shoppingcart.clear', function() {})`

Verwenden Sie es mit `<ui-component name="shoppingcart">`. Wenn die Komponente noch nicht geladen ist, lädt jComponent sie bei der ersten Verwendung von der Adresse in `DEF.fallback` herunter (standardmäßig das CDN Componentator). Autor: Peter Širka. Quelle: Componentator-Komponenten-Repository, MIT-Lizenz.

```html example.html
<ui-component name="shoppingcart" path="common.shoppingcart"></ui-component>

<script>
	var common = {};
</script>
```
