eCommerce
Verkkokauppa
Mihin se on tarkoitettu
Store the data of an online shop: listings, shipping methods, discount codes and web orders with a fulfilment flow. Refunds need a manager and an approval. A storefront or other client reads and writes this data through the API.
Mitä paketti tekee ja mitä ei
An online shop: categories, product listings with translations, shipping methods, discount codes, web orders with lines and a fulfilment flow of pending, paid, shipped, delivered, cancelled and refunded. When the instance runs with the public site enabled, visitors browse the published listings and place orders without an account; the server prices every order from the published listing and never trusts the browser. There is no payment provider: an order starts as pending and the shop contacts the buyer. Refunds need a human approval from a manager; agents may only propose them. Customer name, email and addresses are personal data and are never public. Needs the Products package.
Mallit
ecommerce_category
A group of listings shown together in the shop
Lukuryhmä: ecommerce.user. Kirjoitusryhmä: ecommerce.manager.
| Kenttä | Tyyppi | Tietoluokka | Henkilötieto | Ryhmä | Agentit näkevät | Kuvaus |
|---|---|---|---|---|---|---|
name | text | none | ei | ecommerce.user | selkoisena | Category name shown in the shop |
slug | text | none | ei | ecommerce.user | selkoisena | URL part of the category, lowercase with dashes |
description | text | none | ei | ecommerce.user | selkoisena | Short text about the category |
sequence | number | none | ei | ecommerce.user | selkoisena | Order among categories, lowest first |
published | bool | none | ei | ecommerce.user | selkoisena | Whether the category is visible to shoppers |
ecommerce_listing
A product as it appears in the online shop
Lukuryhmä: ecommerce.user. Kirjoitusryhmä: ecommerce.manager.
| Kenttä | Tyyppi | Tietoluokka | Henkilötieto | Ryhmä | Agentit näkevät | Kuvaus |
|---|---|---|---|---|---|---|
product_id | ref → product | none | ei | ecommerce.user | selkoisena | The product being sold online |
title | text | none | ei | ecommerce.user | selkoisena | Title shown in the shop |
slug | text | none | ei | ecommerce.user | selkoisena | URL part of the product page, lowercase with dashes |
summary | text | none | ei | ecommerce.user | selkoisena | One or two sentences shown on product cards |
description | longtext | none | ei | ecommerce.user | selkoisena | Description shown on the product page, in Markdown |
category_id | ref → ecommerce_category | none | ei | ecommerce.user | selkoisena | The category the listing is shown under |
price | money | none | ei | ecommerce.user | selkoisena | Shop price including tax (minor currency units, e.g. cents) |
compare_at_price | money | none | ei | ecommerce.user | selkoisena | Previous price shown crossed out (minor currency units) |
currency | text | none | ei | ecommerce.user | selkoisena | ISO 4217 currency code of the prices, for example EUR; empty means the shop currency from the instance settings |
sku | text | none | ei | ecommerce.user | selkoisena | Stock keeping unit shown on the product page |
stock_policy | select (always_available, block_when_out, allow_backorder) | none | ei | ecommerce.user | selkoisena | What happens when stock runs out: always_available, block_when_out, allow_backorder |
stock_quantity | number | none | ei | ecommerce.user | selkoisena | Units on hand, used with the stock policy. Orders do not reduce it: adjust it by hand |
published | bool | none | ei | ecommerce.user | selkoisena | Whether the listing is visible to shoppers |
ecommerce_listing_translation
A listing translated into another language
Lukuryhmä: ecommerce.user. Kirjoitusryhmä: ecommerce.manager.
| Kenttä | Tyyppi | Tietoluokka | Henkilötieto | Ryhmä | Agentit näkevät | Kuvaus |
|---|---|---|---|---|---|---|
listing_id | ref → ecommerce_listing | none | ei | ecommerce.user | selkoisena | The listing this translates |
lang | select (en, de, fr, pl, fi, sv, es) | none | ei | ecommerce.user | selkoisena | Language of the translation: en, de, fr, pl, fi, sv or es |
title | text | none | ei | ecommerce.user | selkoisena | Translated title |
summary | text | none | ei | ecommerce.user | selkoisena | Translated card text |
description | longtext | none | ei | ecommerce.user | selkoisena | Translated description in Markdown |
published | bool | none | ei | ecommerce.user | selkoisena | Whether the translation is shown; it is only reachable while its listing is published |
ecommerce_shipping_method
A way of delivering orders with its price
Lukuryhmä: ecommerce.user. Kirjoitusryhmä: ecommerce.manager.
| Kenttä | Tyyppi | Tietoluokka | Henkilötieto | Ryhmä | Agentit näkevät | Kuvaus |
|---|---|---|---|---|---|---|
name | text | none | ei | ecommerce.user | selkoisena | Name shown at checkout, for example Standard delivery |
carrier | text | none | ei | ecommerce.user | selkoisena | Carrier that delivers, for example DHL |
price | money | none | ei | ecommerce.user | selkoisena | Delivery price (minor currency units) |
free_over | money | none | ei | ecommerce.user | selkoisena | Order total above which delivery is free (minor currency units); empty means never |
delivery_days | number | none | ei | ecommerce.user | selkoisena | Usual number of days until delivery |
active | bool | none | ei | ecommerce.user | selkoisena | Whether shoppers can choose it |
ecommerce_discount_code
A code a shopper enters at checkout for a reduction
Lukuryhmä: ecommerce.user. Kirjoitusryhmä: ecommerce.manager.
| Kenttä | Tyyppi | Tietoluokka | Henkilötieto | Ryhmä | Agentit näkevät | Kuvaus |
|---|---|---|---|---|---|---|
code | text | none | ei | ecommerce.user | selkoisena | The code shoppers type, for example SPRING10 |
kind | select (percent, fixed) | none | ei | ecommerce.user | selkoisena | Type of reduction: percent or fixed |
value | number | none | ei | ecommerce.user | selkoisena | Reduction: basis points for percent (1000 is 10.00 percent), minor currency units for fixed |
starts_on | date | none | ei | ecommerce.user | selkoisena | First day the code works (YYYY-MM-DD) |
ends_on | date | none | ei | ecommerce.user | selkoisena | Last day the code works (YYYY-MM-DD) |
max_uses | number | none | ei | ecommerce.user | selkoisena | How many times the code may be used in total; empty means unlimited |
used_count | number | none | ei | ecommerce.user | selkoisena | How many times it has been used (kept up to date by hand) |
minimum_order | money | none | ei | ecommerce.user | selkoisena | Smallest order total the code applies to (minor currency units) |
active | bool | none | ei | ecommerce.user | selkoisena | Whether the code can be used |
ecommerce_order
An order placed online
Lukuryhmä: ecommerce.user. Kirjoitusryhmä: ecommerce.user.
| Kenttä | Tyyppi | Tietoluokka | Henkilötieto | Ryhmä | Agentit näkevät | Kuvaus |
|---|---|---|---|---|---|---|
number | text | none | ei | ecommerce.user | selkoisena | Order number shown to the shopper. Free text: packages cannot generate sequences; the public checkout makes a random one |
customer_email | text | internal | kyllä | ecommerce.user | maskattu | Email address of the shopper |
customer_name | text | internal | kyllä | ecommerce.user | maskattu | Name of the shopper |
customer_id | ref → party | none | ei | ecommerce.user | selkoisena | The matching contact, once the shopper is known |
shipping_address | longtext | internal | kyllä | ecommerce.user | maskattu | Delivery address |
billing_address | longtext | internal | kyllä | ecommerce.user | maskattu | Billing address when different from delivery |
shipping_method_id | ref → ecommerce_shipping_method | none | ei | ecommerce.user | selkoisena | The chosen way of delivery |
discount_code_id | ref → ecommerce_discount_code | none | ei | ecommerce.user | selkoisena | The discount code used, if any |
placed_on | date | none | ei | ecommerce.user | selkoisena | Day the order was placed (YYYY-MM-DD) |
currency | text | none | ei | ecommerce.user | selkoisena | ISO 4217 currency code, for example EUR |
subtotal | money | none | ei | ecommerce.user | selkoisena | Sum of the lines (minor currency units, entered not computed) |
discount_total | money | none | ei | ecommerce.user | selkoisena | Reduction from the discount code (minor currency units) |
shipping_total | money | none | ei | ecommerce.user | selkoisena | Delivery charge (minor currency units) |
tax_total | money | none | ei | ecommerce.user | selkoisena | Tax included in the total (minor currency units) |
total | money | none | ei | ecommerce.user | selkoisena | Amount the shopper pays (minor currency units) |
payment_reference | text | financial | kyllä | ecommerce.user | pidätetty | Reference from the payment provider; never a card number |
tracking_reference | text | none | ei | ecommerce.user | selkoisena | Carrier tracking number |
access_token | text | secret | ei | ecommerce.user | pidätetty | Secret link token that lets the shopper who placed a public order see its confirmation page. Nobody can read it back |
state | select (pending, paid, shipped, delivered, cancelled, refunded) | none | ei | ecommerce.user | selkoisena | Fulfilment status: pending, paid, shipped, delivered, cancelled, refunded |
ecommerce_order_line
One product line of a web order
Lukuryhmä: ecommerce.user. Kirjoitusryhmä: ecommerce.user.
| Kenttä | Tyyppi | Tietoluokka | Henkilötieto | Ryhmä | Agentit näkevät | Kuvaus |
|---|---|---|---|---|---|---|
order_id | ref → ecommerce_order | none | ei | ecommerce.user | selkoisena | The order the line belongs to |
product_id | ref → product | none | ei | ecommerce.user | selkoisena | The product ordered |
listing_id | ref → ecommerce_listing | none | ei | ecommerce.user | selkoisena | The shop listing the line was ordered from |
description | text | none | ei | ecommerce.user | selkoisena | Product text as it was when ordered |
quantity | number | none | ei | ecommerce.user | selkoisena | Units ordered |
unit_price | money | none | ei | ecommerce.user | selkoisena | Price per unit including tax (minor currency units) |
subtotal | money | none | ei | ecommerce.user | selkoisena | Line total (minor currency units, entered not computed) |
Työnkulut
ecommerce_order
| Toiminto | Siirtää | Kuka voi suorittaa | Hyväksyntä |
|---|---|---|---|
ecommerce_order.mark_paid | state: pending → paid | ecommerce.user | ei |
ecommerce_order.ship | state: paid → shipped | ecommerce.user | ei |
ecommerce_order.deliver | state: shipped → delivered | ecommerce.user | ei |
ecommerce_order.cancel | state: pending → cancelled | ecommerce.user | ei |
ecommerce_order.refund | state: paid → refunded | ecommerce.manager | kyllä |
ecommerce_order.refund_delivered | state: delivered → refunded | ecommerce.manager | kyllä |
Käyttöoikeusryhmät
Tämän sovelluksen käyttämät ryhmät:
ecommerce.managerecommerce.user
Hyväksyntävaiheet
Vaiheet, joita agentti voi vain ehdottaa:
ecommerce_order.refundecommerce_order.refund_delivered
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: ecommerce_order.refund, ecommerce_order.refund_delivered, ecommerce_category.delete, ecommerce_listing.delete, ecommerce_listing_translation.delete, ecommerce_shipping_method.delete, ecommerce_discount_code.delete, ecommerce_order.delete, ecommerce_order_line.delete.
Henkilötiedot maskataan paikkamerkeiksi: ecommerce_order.customer_email, ecommerce_order.customer_name, ecommerce_order.shipping_address, ecommerce_order.billing_address.
Nämä kentät pidätetään agenteilta kokonaan: ecommerce_order.payment_reference, ecommerce_order.access_token.
Riippuvuudet
baseproduct
Asennus
Asenna se Customize-sovelluksesta (Marketplace) tai komentoriviltä:
obop modules install-from ecommerceVaatii tietokannan ja ylläpitäjän oikeudet.
Tee oma
Moduulioppaassa näytetään, miten tällaiset sovellukset kirjoitetaan