Magazyn — Aromaty
{{ serverError }}
| ID{{ admSortInd('id') }} | Obraz | Producent{{ admSortInd('manufacturer') }} | Nazwa{{ admSortInd('name') }} | Aromat % | Dostępne{{ admSortInd('volume') }} | Koszyk | Nowość{{ admSortInd('isNew') }} | Akcje |
|---|---|---|---|---|---|---|---|---|
| {{ item.id }} |
brak
|
{{ item.manufacturer || '—' }} | {{ item.name }} |
{{ Number(item.flavorPct) || 0 }}
%
|
ml
|
- {{ Number(reservedVol[item.id]).toFixed(2) }}ml — |
|
STANY SUROWCÓW I BUTELEK
Stany aktualizują się automatycznie przy zamówieniach i zakupach w PORTFELU. Edytuj je ręcznie tylko przy korekcie.
| Surowiec | Stan magazynowy |
|---|---|
| {{ row.label }} |
ml
{{ totalFlavorStock.toFixed(2) }} ml
|
| Butelka {{ row.ml }}ml |
szt
|
ZAMÓWIENIA
Pod każdą pozycją: stan aromatu przed → po tej pozycji. Kreski dotyczą stanu „po" i progów danego aromatu (dawka = ilość aromatu na butelkę 30 ml wg jego Aromat %): 0 kresek = poniżej „Ukryj ze sklepu", 1 czerwona = poniżej „Ostrzeżenia", 2 żółte = poniżej {{ (settings.limitWarnMult ?? 2) + 1 }}× dawka − zapas, 3 zielone = więcej. Kursywa = prognoza: aromat jeszcze nie zdjęty z magazynu.
- #{{ item.liquid_id }} {{ getLiquidName(item.liquid_id) }} {{ orderItemStock[item.id].beforeTxt }}ml → {{ orderItemStock[item.id].afterTxt }}ml Baza nikotynowa {{ orderItemMix[item.id].nicTxt }} g Aromat {{ orderItemMix[item.id].flavorTxt }} g na 1 szt. {{ isCustomerFree(order.phone) ? 0 : item.price }}zł
| ☐ | ID | Data | Klient | Szczegóły | Kwota | Status i Akcje |
|---|---|---|---|---|---|---|
| #{{ order.id }} | {{ new Date(parseInt(order.created_at)).toLocaleString() }} |
{{ getOrderDisplayName(order) }}
✓
👑 GRATIS
{{ order.phone }}
"{{ order.note }}"
|
|
0 zł
{{ order.total_price }} zł
|
|
|
| Brak zamówień. | ||||||
KLIENCI
| Telefon | Ostatnie Imię | Nick (Edytowalny) | Ostatni kontakt | Łącznie wydał | Weryfikacja | Akcje |
|---|---|---|---|---|---|---|
| {{ c.phone }} | {{ c.name }} | {{ getLastContact(c.phone) }} | 👑 gratis {{ getCustomerTotalSpent(c.phone).toFixed(2) }} zł |
|
||
| Brak klientów. | ||||||
GENERATOR ETYKIET
{{ cat.label }}
Lista etykiet — łącznie {{ selectedLiquidsForLabel.length }} szt.
Podgląd ({{ selectedLiquidsForLabel.length }} szt.)
KALKULATOR KOSZTÓW I MARŻY
| Surowiec | Cena za 1ml / 1szt | Mnożnik |
|---|---|---|
| {{ row.label }} |
zł
|
|
| Butelka {{ row.ml }}ml |
zł
|
{{ showCostWithMarkup ? 'CENA SPRZEDAŻY (Z MARŻĄ)' : 'KOSZT WYPRODUKOWANIA (BEZ MARŻY)' }}
| Moc | {{ showCostWithMarkup ? 'Cena' : 'Koszt' }} dla {{ cap.ml }}ml |
|---|---|
| Moc {{ strength }}mg | {{ showCostWithMarkup ? Math.round(costFn(strength, cap.ml, costNicType)) : costFn(strength, cap.ml, costNicType).toFixed(2) }} zł |
Przychód (zapłacony)
{{ walletRevenue.paid.toFixed(2) }} zł
Wydatki (zakupy)
{{ walletExpenses.toFixed(2) }} zł
Zysk
{{ walletProfit.toFixed(2) }} zł
Przychód ze sklepu
„Zapłacone" to pieniądze faktycznie otrzymane (zamówienia oznaczone jako opłacone). Odrzucone nie są liczone.
Wydatki — dziennik zakupów
Każdy zakup surowca to osobny wpis z datą — zasila sumy wydatków, bilans miesięczny ORAZ stan magazynowy w zakładce CENY.
| Data | Surowiec | Ilość | Koszt | Cena za 1ml/1szt | |
|---|---|---|---|---|---|
| {{ e.date }} | {{ expenseRowLabel(e) }} | {{ e.amount }} {{ (expenseItems.find(it => it.key === e.key) || {}).unit }} | {{ e.cost.toFixed(2) }} zł | {{ expenseUnitCost(e).toFixed(2) }} zł — | |
| Suma wydatków | {{ walletExpenses.toFixed(2) }} zł | ||||
Bilans
Bilans miesięczny
Trzy ostatnie miesiące — przychód wg daty zamówienia, wydatki wg daty wpisu w dzienniku (odrzucone zamówienia pominięte). „Opłacone" to pieniądze faktycznie otrzymane.
{{ m.label }}
{{ m.count }} zam.
Posty informacyjne
Najnowszy widoczny post pokazuje się jako karta pod nawigacją w sklepie — „Więcej" otwiera pełną listę. Obsługują BBCode: [b] [i] [u] [color=...] [url=...].
Ustawienia limitów
Limity liczone są osobno dla każdego aromatu. Dawka = ile aromatu idzie na jedną butelkę 30 ml przy jego Aromat % (np. 8% → 2.4 ml, 5% → 1.5 ml).
| Aromat % | Dawka | Ukryj < | Ostrzeż. < | Aromatów |
|---|---|---|---|---|
| {{ p.pct }}% | {{ formatMl(p.dose) }} ml | {{ formatMl(p.hide) }} ml | {{ formatMl(p.warn) }} ml | {{ p.count }} |
Progi wpływają na widoczność aromatów w sklepie, plakietkę „Kończy się", kolory w magazynie i kreski przy zamówieniach.
Tolerancja magazynu
Nadwyżka doliczana do zużycia surowców przy każdym zamówieniu — nigdy nie da się nalać co do mililitra. Przy 4% zamówienie zużywające 100 ml glikolu zdejmie z magazynu 104 ml. Wartości dotyczą tylko płynów; butelki schodzą zawsze co do sztuki. 0% wyłącza zapas dla danego surowca.
Parametry wyceny
Procent aromatu przyjmowany do wyliczenia ceny — wpływa na Cennik w sklepie i na cenę zapisywaną przy zamówieniu. To osobna wartość niż „Aromat %" pojedynczego liquidu w MAGAZYNIE: tamta decyduje o realnym zużyciu odejmowanym ze stanu, ta wyłącznie o cenie. Jeśli obie się różnią, cena zakłada inne zużycie aromatu niż faktyczne — przy 30 ml każdy 1% różnicy to ok. 0,3 ml aromatu.
Pojemności butelek w sklepie
Rodzaje nikotyny
Włącz/wyłącz rodzaje nikotyny dostępne dla klienta (wybór przy aromacie, Cennik, koszyk). Wyłączenie wszystkich = liquidy bez nikotyny (0 mg). Cenę każdego rodzaju ustawisz w zakładce CENY.
Kategorie aromatów
Kategorie pojawiają się jako zakładki w sklepie oraz na liście wyboru przy dodawaniu aromatu. Ikona (emoji) jest opcjonalna.
Producenci
Lista producentów do wyboru przy dodawaniu/edycji aromatu. Zmiana nazwy zaktualizuje ją we wszystkich aromatach tego producenta.
Status sklepu
Kopia zapasowa bazy
{{ serverError }}
Zmiana hasła
{{ pcError }}
{{ pcSuccess }}