eCommerce

Webbutik

MarknadsplatsVerksamhetVersion 0.2.0manifest

Vad den är till för ​

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.

Vad paketet gör och inte gör ​

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.

Modeller ​

ecommerce_category ​

A group of listings shown together in the shop

Läsgrupp: ecommerce.user. Skrivgrupp: ecommerce.manager.

FältTypDataklassPersonuppgiftGruppAgenter serBeskrivning
nametextnonenejecommerce.useri klartextCategory name shown in the shop
slugtextnonenejecommerce.useri klartextURL part of the category, lowercase with dashes
descriptiontextnonenejecommerce.useri klartextShort text about the category
sequencenumbernonenejecommerce.useri klartextOrder among categories, lowest first
publishedboolnonenejecommerce.useri klartextWhether the category is visible to shoppers

ecommerce_listing ​

A product as it appears in the online shop

Läsgrupp: ecommerce.user. Skrivgrupp: ecommerce.manager.

FältTypDataklassPersonuppgiftGruppAgenter serBeskrivning
product_idref → productnonenejecommerce.useri klartextThe product being sold online
titletextnonenejecommerce.useri klartextTitle shown in the shop
slugtextnonenejecommerce.useri klartextURL part of the product page, lowercase with dashes
summarytextnonenejecommerce.useri klartextOne or two sentences shown on product cards
descriptionlongtextnonenejecommerce.useri klartextDescription shown on the product page, in Markdown
category_idref → ecommerce_categorynonenejecommerce.useri klartextThe category the listing is shown under
pricemoneynonenejecommerce.useri klartextShop price including tax (minor currency units, e.g. cents)
compare_at_pricemoneynonenejecommerce.useri klartextPrevious price shown crossed out (minor currency units)
currencytextnonenejecommerce.useri klartextISO 4217 currency code of the prices, for example EUR; empty means the shop currency from the instance settings
skutextnonenejecommerce.useri klartextStock keeping unit shown on the product page
stock_policyselect (always_available, block_when_out, allow_backorder)nonenejecommerce.useri klartextWhat happens when stock runs out: always_available, block_when_out, allow_backorder
stock_quantitynumbernonenejecommerce.useri klartextUnits on hand, used with the stock policy. Orders do not reduce it: adjust it by hand
publishedboolnonenejecommerce.useri klartextWhether the listing is visible to shoppers

ecommerce_listing_translation ​

A listing translated into another language

Läsgrupp: ecommerce.user. Skrivgrupp: ecommerce.manager.

FältTypDataklassPersonuppgiftGruppAgenter serBeskrivning
listing_idref → ecommerce_listingnonenejecommerce.useri klartextThe listing this translates
langselect (en, de, fr, pl, fi, sv, es)nonenejecommerce.useri klartextLanguage of the translation: en, de, fr, pl, fi, sv or es
titletextnonenejecommerce.useri klartextTranslated title
summarytextnonenejecommerce.useri klartextTranslated card text
descriptionlongtextnonenejecommerce.useri klartextTranslated description in Markdown
publishedboolnonenejecommerce.useri klartextWhether the translation is shown; it is only reachable while its listing is published

ecommerce_shipping_method ​

A way of delivering orders with its price

Läsgrupp: ecommerce.user. Skrivgrupp: ecommerce.manager.

FältTypDataklassPersonuppgiftGruppAgenter serBeskrivning
nametextnonenejecommerce.useri klartextName shown at checkout, for example Standard delivery
carriertextnonenejecommerce.useri klartextCarrier that delivers, for example DHL
pricemoneynonenejecommerce.useri klartextDelivery price (minor currency units)
free_overmoneynonenejecommerce.useri klartextOrder total above which delivery is free (minor currency units); empty means never
delivery_daysnumbernonenejecommerce.useri klartextUsual number of days until delivery
activeboolnonenejecommerce.useri klartextWhether shoppers can choose it

ecommerce_discount_code ​

A code a shopper enters at checkout for a reduction

Läsgrupp: ecommerce.user. Skrivgrupp: ecommerce.manager.

FältTypDataklassPersonuppgiftGruppAgenter serBeskrivning
codetextnonenejecommerce.useri klartextThe code shoppers type, for example SPRING10
kindselect (percent, fixed)nonenejecommerce.useri klartextType of reduction: percent or fixed
valuenumbernonenejecommerce.useri klartextReduction: basis points for percent (1000 is 10.00 percent), minor currency units for fixed
starts_ondatenonenejecommerce.useri klartextFirst day the code works (YYYY-MM-DD)
ends_ondatenonenejecommerce.useri klartextLast day the code works (YYYY-MM-DD)
max_usesnumbernonenejecommerce.useri klartextHow many times the code may be used in total; empty means unlimited
used_countnumbernonenejecommerce.useri klartextHow many times it has been used (kept up to date by hand)
minimum_ordermoneynonenejecommerce.useri klartextSmallest order total the code applies to (minor currency units)
activeboolnonenejecommerce.useri klartextWhether the code can be used

ecommerce_order ​

An order placed online

Läsgrupp: ecommerce.user. Skrivgrupp: ecommerce.user.

FältTypDataklassPersonuppgiftGruppAgenter serBeskrivning
numbertextnonenejecommerce.useri klartextOrder number shown to the shopper. Free text: packages cannot generate sequences; the public checkout makes a random one
customer_emailtextinternaljaecommerce.usermaskeradEmail address of the shopper
customer_nametextinternaljaecommerce.usermaskeradName of the shopper
customer_idref → partynonenejecommerce.useri klartextThe matching contact, once the shopper is known
shipping_addresslongtextinternaljaecommerce.usermaskeradDelivery address
billing_addresslongtextinternaljaecommerce.usermaskeradBilling address when different from delivery
shipping_method_idref → ecommerce_shipping_methodnonenejecommerce.useri klartextThe chosen way of delivery
discount_code_idref → ecommerce_discount_codenonenejecommerce.useri klartextThe discount code used, if any
placed_ondatenonenejecommerce.useri klartextDay the order was placed (YYYY-MM-DD)
currencytextnonenejecommerce.useri klartextISO 4217 currency code, for example EUR
subtotalmoneynonenejecommerce.useri klartextSum of the lines (minor currency units, entered not computed)
discount_totalmoneynonenejecommerce.useri klartextReduction from the discount code (minor currency units)
shipping_totalmoneynonenejecommerce.useri klartextDelivery charge (minor currency units)
tax_totalmoneynonenejecommerce.useri klartextTax included in the total (minor currency units)
totalmoneynonenejecommerce.useri klartextAmount the shopper pays (minor currency units)
payment_referencetextfinancialjaecommerce.userundanhållenReference from the payment provider; never a card number
tracking_referencetextnonenejecommerce.useri klartextCarrier tracking number
access_tokentextsecretnejecommerce.userundanhållenSecret link token that lets the shopper who placed a public order see its confirmation page. Nobody can read it back
stateselect (pending, paid, shipped, delivered, cancelled, refunded)nonenejecommerce.useri klartextFulfilment status: pending, paid, shipped, delivered, cancelled, refunded

ecommerce_order_line ​

One product line of a web order

Läsgrupp: ecommerce.user. Skrivgrupp: ecommerce.user.

FältTypDataklassPersonuppgiftGruppAgenter serBeskrivning
order_idref → ecommerce_ordernonenejecommerce.useri klartextThe order the line belongs to
product_idref → productnonenejecommerce.useri klartextThe product ordered
listing_idref → ecommerce_listingnonenejecommerce.useri klartextThe shop listing the line was ordered from
descriptiontextnonenejecommerce.useri klartextProduct text as it was when ordered
quantitynumbernonenejecommerce.useri klartextUnits ordered
unit_pricemoneynonenejecommerce.useri klartextPrice per unit including tax (minor currency units)
subtotalmoneynonenejecommerce.useri klartextLine total (minor currency units, entered not computed)

Arbetsflöden ​

ecommerce_order ​

ÅtgärdFlyttarVem får köra denGodkännande
ecommerce_order.mark_paidstate: pending → paidecommerce.usernej
ecommerce_order.shipstate: paid → shippedecommerce.usernej
ecommerce_order.deliverstate: shipped → deliveredecommerce.usernej
ecommerce_order.cancelstate: pending → cancelledecommerce.usernej
ecommerce_order.refundstate: paid → refundedecommerce.managerja
ecommerce_order.refund_deliveredstate: delivered → refundedecommerce.managerja

Behörighetsgrupper ​

Grupper som den här appen använder:

  • ecommerce.manager
  • ecommerce.user

Steg som kräver godkännande ​

Steg som en agent bara kan föreslå:

  • ecommerce_order.refund
  • ecommerce_order.refund_delivered

Vad agenter kan och inte kan göra ​

En agent kan läsa, söka, skapa och uppdatera poster i den här appen, och köra de åtgärder som inte kräver godkännande, inom behörighetsgrupperna för sin token.

Den kan bara föreslå de här stegen, och en person måste godkänna dem: 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.

Personuppgifter maskeras som platshållare: ecommerce_order.customer_email, ecommerce_order.customer_name, ecommerce_order.shipping_address, ecommerce_order.billing_address.

De här fälten undanhålls helt från agenter: ecommerce_order.payment_reference, ecommerce_order.access_token.

Beroenden ​

  • base
  • product

Installera ​

Installera den från appen Customize (Marknadsplats), eller från kommandoraden:

bash
obop modules install-from ecommerce

Kräver en databas och administratörsbehörighet.

Bygg din egen ​

Modulguiden visar hur appar som den här skrivs