Point of Sale

Kauppa ja ravintola

MarkkinapaikkaToimintaVersio 0.1.0manifest

Mihin se on tarkoitettu ​

Model a shop till: configuration, cash-controlled sessions, orders with lines and payment lines per method. It records what happened at the till; it is not a payment terminal integration, and card numbers must never be stored.

Mitä paketti tekee ja mitä ei ​

Shop tills: a point-of-sale configuration, cash-controlled sessions that are opened and closed, orders with lines, and payment lines per method. A refund and the closing of a session need a human approval from a manager; agents may only propose them. Totals, change and cash differences are entered, not computed. Card numbers must never be stored; keep only the payment provider's reference. Needs the Products package.

Mallit ​

pos_config ​

A point of sale (a till or a shop) and its rules

Lukuryhmä: pos.user. Kirjoitusryhmä: pos.manager.

KenttäTyyppiTietoluokkaHenkilötietoRyhmäAgentit näkevätKuvaus
nametextnoneeipos.userselkoisenaName of the till or shop, for example Main street shop
currencytextnoneeipos.userselkoisenaISO 4217 currency code, for example EUR
receipt_headerlongtextnoneeipos.userselkoisenaText printed at the top of receipts
cash_controlboolnoneeipos.userselkoisenaWhether sessions must count the cash in the drawer when they open and close
default_opening_cashmoneynoneeipos.userselkoisenaCash normally left in the drawer overnight (minor currency units)
allow_refundsboolnoneeipos.userselkoisenaWhether cashiers may propose refunds at this point of sale
activeboolnoneeipos.userselkoisenaWhether the point of sale is in use

pos_session ​

One shift of selling at a point of sale, from opening to closing the cash drawer

Lukuryhmä: pos.user. Kirjoitusryhmä: pos.user.

KenttäTyyppiTietoluokkaHenkilötietoRyhmäAgentit näkevätKuvaus
config_idref → pos_confignoneeipos.userselkoisenaThe point of sale the session belongs to
cashiertextinternalkylläpos.usermaskattuName of the cashier who opened the session
opened_ondatenoneeipos.userselkoisenaDay the session was opened (YYYY-MM-DD)
closed_ondatenoneeipos.userselkoisenaDay the session was closed (YYYY-MM-DD)
opening_cashmoneyfinancialeipos.userpidätettyCash counted in the drawer at opening (minor currency units)
expected_cashmoneyfinancialeipos.userpidätettyCash the drawer should hold at closing: opening cash plus cash payments (entered, not computed)
closing_cashmoneyfinancialeipos.userpidätettyCash actually counted in the drawer at closing
cash_differencemoneyfinancialeipos.userpidätettyClosing cash minus expected cash; negative means money is missing
notelongtextnoneeipos.userselkoisenaExplanation for any cash difference
stateselect (open, closed)noneeipos.userselkoisenaSession status: open, closed

pos_order ​

A sale rung up at a point of sale

Lukuryhmä: pos.user. Kirjoitusryhmä: pos.user.

KenttäTyyppiTietoluokkaHenkilötietoRyhmäAgentit näkevätKuvaus
session_idref → pos_sessionnoneeipos.userselkoisenaThe session the sale was made in
receipt_numbertextnoneeipos.userselkoisenaNumber printed on the receipt. Free text: packages cannot generate sequences
ordered_ondatenoneeipos.userselkoisenaDay of the sale (YYYY-MM-DD)
customer_idref → partynoneeipos.userselkoisenaThe customer, when one was identified
tax_totalmoneynoneeipos.userselkoisenaTax included in the total (minor currency units)
totalmoneynoneeipos.userselkoisenaTotal paid by the customer including tax (minor currency units, entered not computed)
notelongtextnoneeipos.userselkoisenaRemark about the sale
stateselect (draft, paid, refunded, cancelled)noneeipos.userselkoisenaSale status: draft, paid, refunded, cancelled

pos_order_line ​

One product line of a sale

Lukuryhmä: pos.user. Kirjoitusryhmä: pos.user.

KenttäTyyppiTietoluokkaHenkilötietoRyhmäAgentit näkevätKuvaus
order_idref → pos_ordernoneeipos.userselkoisenaThe sale the line belongs to
product_idref → productnoneeipos.userselkoisenaThe product sold
descriptiontextnoneeipos.userselkoisenaText shown on the receipt
quantitynumbernoneeipos.userselkoisenaUnits sold
unit_pricemoneynoneeipos.userselkoisenaPrice per unit including tax (minor currency units)
discount_bpnumbernoneeipos.userselkoisenaDiscount in basis points: 1000 means 10.00 percent
subtotalmoneynoneeipos.userselkoisenaLine total after discount (minor currency units, entered not computed)

pos_payment ​

A payment received against a sale; a sale may be paid with several methods

Lukuryhmä: pos.user. Kirjoitusryhmä: pos.user.

KenttäTyyppiTietoluokkaHenkilötietoRyhmäAgentit näkevätKuvaus
order_idref → pos_ordernoneeipos.userselkoisenaThe sale the payment is for
methodselect (cash, card, bank_transfer, voucher, other)noneeipos.userselkoisenaHow the customer paid: cash, card, bank_transfer, voucher, other
amountmoneyfinancialeipos.userpidätettyAmount paid with this method (minor currency units)
paid_ondatenoneeipos.userselkoisenaDay of the payment (YYYY-MM-DD)
provider_referencetextfinancialkylläpos.userpidätettyReference from the card terminal or payment provider; never a card number

Työnkulut ​

pos_session ​

ToimintoSiirtääKuka voi suorittaaHyväksyntä
pos_session.closestate: open → closedpos.managerkyllä

pos_order ​

ToimintoSiirtääKuka voi suorittaaHyväksyntä
pos_order.paystate: draft → paidpos.userei
pos_order.cancelstate: draft → cancelledpos.userei
pos_order.refundstate: paid → refundedpos.managerkyllä

Käyttöoikeusryhmät ​

Tämän sovelluksen käyttämät ryhmät:

  • pos.manager
  • pos.user

Hyväksyntävaiheet ​

Vaiheet, joita agentti voi vain ehdottaa:

  • pos_session.close
  • pos_order.refund

Mitä agentit voivat ja eivät voi tehdä ​

Agentti voi lukea, hakea, luoda ja päivittää tämän sovelluksen tietueita sekä suorittaa toiminnot, jotka eivät vaadi hyväksyntää, tunnisteensa käyttöoikeusryhmien rajoissa.

Se voi vain ehdottaa näitä vaiheita, ja ihmisen on hyväksyttävä ne: pos_session.close, pos_order.refund, pos_config.delete, pos_session.delete, pos_order.delete, pos_order_line.delete, pos_payment.delete.

Henkilötiedot maskataan paikkamerkeiksi: pos_session.cashier.

Nämä kentät pidätetään agenteilta kokonaan: pos_session.opening_cash, pos_session.expected_cash, pos_session.closing_cash, pos_session.cash_difference, pos_payment.amount, pos_payment.provider_reference.

Riippuvuudet ​

  • base
  • product

Asennus ​

Asenna se Customize-sovelluksesta (Marketplace) tai komentoriviltä:

bash
obop modules install-from pos

Vaatii tietokannan ja ylläpitäjän oikeudet.

Tee oma ​

Moduulioppaassa näytetään, miten tällaiset sovellukset kirjoitetaan