Business modulesShop

Orders and shop operations

Shop teams follow drafts, fulfilment, returns and refunds with stock, prices and collections.

Shop teams follow drafts, fulfilment, returns and refunds with stock, prices and collections.

Where to find it

Web: open Shop. Desktop: Business → Shop, using the same record paths. Disabled modules or missing read permission remove the navigation entry.

Screen / tabWeb pathUsageDesktop
Shop/shopList, view or tabNative screen
Orders/shop/ordersList, view or tabNative screen
Stock/shop/stockList, view or tabNative screen
Prices/shop/pricesList, view or tabNative screen
Collections/shop/collectionsList, view or tabNative screen
Record details/shop/orders/[id]Record or editorNative screen

Record tabs and panels

These contributions appear when their modules are enabled and permitted, alongside the record’s own tabs. Check module/permission state if missing.

AreaKindOwning module
TasksPanelai
Shipping & e-invoicePanelintegrations

Start working

Step 1

Draft with customer/channel/lines.

Step 2

Check delivery, vouchers, staff discount and payment.

Step 3

Place and confirm when needed.

Step 4

Create/approve fulfilment and tracking.

Step 5

Use cancellation, product return or money refund flows.

Orders and shop operations
Orders and shop operations

Settings

Option-by-option configuration and screen paths: Settings guide.

Permissions and limits

Before you start

Returns and refunds differ. Available stock is on-hand minus allocated. New channels start closed. Unpaid-order/overselling settings alter behaviour.

Role capabilities: Read (read), Write (write), Delete/archive (delete), Manage (manage), Approve (approve), Handle automated delivery/jobs (handle), Export (export), Comment (comment).

Own-record restrictions apply equally to lists, records and Era. Record state or missing data can refuse an otherwise permitted action.

Ask Era

Show payment and stock gaps on orders awaiting fulfilment.

Select relevant records for Era context. Era respects modules/roles; external or confirmation-sensitive work can stop for approval. Use era tools in the terminal to inspect currently available tools.

Automation and events

These declared events are available to module-event triggers. Subscribing does not configure the next operation; choose recipients, conditions and actions separately.

Operation details

The inventory includes record, configuration, visitor and background flows. IDs support Era/automation; not every row is a menu button. Asterisks mark required inputs. Unmapped rows do not imply a visible control.

Operation and IDInputsPermissionScreen or flow
Flag abandoned baskets · retail.raise_abandoned_checkouts—Handle automated delivery/jobsBackground routine
Save a sales channel · retail.save_channelChannel, Name *, Address, Currency, Default countryManage/settings/shop/channels
Open the shop · retail.open_shopName, Currency, Default countryManageRecord/API/visitor flow; no separate screen button mapped
Open or close a channel · retail.set_channel_activeChannel *, Open *Manage/settings/shop/channels
Choose a channel’s warehouses · retail.set_channel_warehousesChannel *, Warehouses *Manage/settings/shop/channels
List something in a channel · retail.set_item_listingItem *, Channel, Published, Show in listings, On sale fromWrite/shop, /shop/prices
Price a variant in a channel · retail.set_variant_priceVariant *, Channel *, Price (minor units), Cost (minor units), Was (minor units)Write/shop, /shop/prices
Save a collection · retail.save_collectionCollection, Name *, Address, Description, SEO title, SEO description, Banner image, Banner descriptionWrite/shop/collections
Choose what a collection holds · retail.set_collection_itemsCollection *, Items *Write/shop/collections
Delete a collection · retail.delete_collectionCollection *Delete/archive/shop/collections
Open a warehouse · retail.create_warehouseName *, Address, Existing address, Street, Street (second line), District, City, Region, Postal code, Country, Phone, Email, Collection, Hidden from customersManage/settings/shop/warehouses
Edit a warehouse · retail.update_warehouseWarehouse *, Name, Address, Street, Street (second line), District, City, Region, Postal code, Country, Phone, Email, Collection, Hidden from customersManage/settings/shop/warehouses
Close a warehouse · retail.delete_warehouseWarehouse *Delete/archive/settings/shop/warehouses
Choose which zones a warehouse serves · retail.set_warehouse_zonesWarehouse *, Shipping zones *Manage/settings/shop/warehouses
Count stock · retail.set_stockWarehouse *, Variant *, Quantity *, NoteWrite/catalog/[id], /shop, /shop/stock
Adjust stock · retail.adjust_stockWarehouse *, Variant *, Change *, Reason *, NoteWrite/shop/stock
Reprice in bulk · retail.bulk_update_pricesChannel *, Variants *, Change *, Value *, Which figureWrite/shop/prices
Save a shipping zone · retail.save_shipping_zoneZone, Name *, Description, Countries, Everywhere else, ChannelsManage/settings/shop/shipping
Delete a shipping zone · retail.delete_shipping_zoneZone *Delete/archive/settings/shop/shipping
Save a delivery rate · retail.save_shipping_methodRate, Zone *, Name *, Priced by, Description, From (grams), To (grams), Fastest (days), Slowest (days), Tax classManage/settings/shop/shipping
Delete a delivery rate · retail.delete_shipping_methodRate *Delete/archive/settings/shop/shipping
Price a delivery rate in a channel · retail.set_shipping_priceRate *, Channel *, Price (minor units) *, From order value, To order valueManage/settings/shop/shipping
Set postal-code rules · retail.set_postal_code_rulesRate *, Rules *Manage/settings/shop/shipping
Open a basket · retail.create_checkoutChannel *, Customer, Email, LinesWriteRecord/API/visitor flow; no separate screen button mapped
Change a basket · retail.set_checkout_linesBasket *, Lines *WriteRecord/API/visitor flow; no separate screen button mapped
Hold checkout stock · retail.renew_checkout_reservationBasket *WriteRecord/API/visitor flow; no separate screen button mapped
Release expired checkout stock · retail.expire_stock_reservations—Handle automated delivery/jobsRecord/API/visitor flow; no separate screen button mapped
Choose delivery · retail.set_checkout_deliveryBasket *, Delivery address, Billing address, Delivery rate, Collect fromWriteRecord/API/visitor flow; no separate screen button mapped
Place the order · retail.complete_checkoutBasket *WriteRecord/API/visitor flow; no separate screen button mapped
Start a draft order · retail.create_draft_orderChannel *, Customer, Email, Note, Billing address, Delivery address, DeliveryWrite/shop/orders
Discard a draft order · retail.delete_draft_orderOrder *Delete/archive/shop/orders/[id]
Change an order’s lines · retail.set_order_linesOrder *, Lines *Write/shop/orders/[id]
Place a draft order · retail.complete_draft_orderOrder *Write/shop/orders/[id]
Confirm an order · retail.confirm_orderOrder *Approve/shop/orders/[id]
Edit an order · retail.update_orderOrder *, Customer, Note, Email, Billing address, Delivery address, Delivery rate, DeliveryWrite/shop/orders/[id]
Edit order metadata · retail.update_order_metadataOrder *, Metadata, Private metadataWrite/shop/orders/[id]
Cancel an order · retail.cancel_orderOrder *, ReasonManage/shop/orders/[id]
Despatch an order · retail.fulfil_orderOrder *, Lines *, Tracking number, Carrier, Tracking link, Tell the customerHandle automated delivery/jobs/shop/orders/[id]
Approve a despatch · retail.approve_fulfilmentDespatch *Approve/shop/orders/[id]
Set a tracking number · retail.set_trackingDespatch *, Tracking number *, Carrier, Tracking link, Tell the customerHandle automated delivery/jobs/shop/orders/[id]
Cancel a despatch · retail.cancel_fulfilmentDespatch *Handle automated delivery/jobs/shop/orders/[id]
Record a return · retail.return_productsOrder *, Lines *Handle automated delivery/jobs/shop/orders/[id]
Apply a coupon · retail.set_order_voucherOrder *, Coupon codeWrite/shop/orders/[id]
Pay with a gift card · retail.attach_gift_cardOrder *, Gift card code, Gift card (already redeemed), Redemption, Last four, Amount *, Idempotency keyWrite/shop/orders/[id]
Take a gift card off · retail.detach_gift_cardGift card on the order *, Why the card was refused (compensation)Write/shop/orders/[id]
Confirm a gift card redemption · retail.confirm_gift_cardGift card on the order *, Gift card *, RedemptionWriteBackground routine
Update what an order has been paid · retail.sync_charge_statusOrder *WriteBackground routine
Open a return · retail.request_returnOrder *, Lines *, Reason, NoteHandle automated delivery/jobs/shop/orders/[id]
Receive a return · retail.receive_returnReturn *, LinesHandle automated delivery/jobs/shop/orders/[id]
Inspect a return · retail.inspect_returnReturn *, Lines *Handle automated delivery/jobs/shop/orders/[id]
Close a return · retail.close_returnReturn *Handle automated delivery/jobs/shop/orders/[id]
Refuse a return · retail.reject_returnReturn *, ReasonHandle automated delivery/jobs/shop/orders/[id]
Grant a refund · retail.grant_refundOrder *, Amount, Lines, Include delivery, Reason, ReturnManage/shop/orders/[id]
Move stock between warehouses · retail.transfer_stockFrom *, To *, Variant *, Quantity *, NoteWrite/shop/stock
Hold back safety stock · retail.set_stock_policyWarehouse *, Variant *, Safety stock *Manage/shop/stock
Sell on preorder · retail.set_preorderVariant *, On preorder *, Ends, Limit, all channels, Limits per channelManage/shop/stock
End a preorder · retail.end_preorderVariant *Manage/shop, /shop/stock
Expire an unconfirmed order · retail.expire_orderOrder *Handle automated delivery/jobsRecord/API/visitor flow; no separate screen button mapped
Discard drafts · retail.delete_draft_ordersDrafts *Delete/archive/shop/orders
Fill a collection from a rule · retail.set_collection_ruleCollection *, RuleWrite/shop/collections
Refresh a smart collection · retail.refresh_collectionCollection *Write/shop/collections
Give a staff discount · retail.set_order_discountOrder *, Off by *, Value (percent, or minor units) *, ReasonWrite/shop/orders/[id]
Remove the staff discount · retail.remove_order_discountOrder *Write/shop/orders/[id]
Order again · retail.duplicate_orderOrder *Write/shop/orders/[id]
Exclude products from a delivery rate · retail.set_shipping_excluded_itemsRate *, Products *Manage/settings/shop/shipping
Delete a channel · retail.delete_channelChannel *Delete/archive/settings/shop/channels
Use a coupon (site) · retail.site_checkout_voucherBasket *, Coupon codeWriteRecord/API/visitor flow; no separate screen button mapped
Add to basket (site) · retail.site_cart_addBasket, Variant *, QuantityWriteRecord/API/visitor flow; no separate screen button mapped
Change a basket line (site) · retail.site_cart_setBasket *, Variant *, Quantity *WriteRecord/API/visitor flow; no separate screen button mapped
Keep my basket after signing in · retail.site_cart_claimBasket *WriteRecord/API/visitor flow; no separate screen button mapped
Give checkout details (site) · retail.site_checkout_detailsBasket *, Email *, Customer *, Delivery address, NoteWriteRecord/API/visitor flow; no separate screen button mapped
Choose delivery (site) · retail.site_checkout_deliveryBasket *, Delivery rate, Collect fromWriteRecord/API/visitor flow; no separate screen button mapped
Place an order (site) · retail.site_place_orderBasket *, Payment methodWriteRecord/API/visitor flow; no separate screen button mapped
Import a marketplace order · retail.import_channel_orderChannel *, Integration account, Provider *, Warehouse, Customer, Order *Handle automated delivery/jobsRecord/API/visitor flow; no separate screen button mapped

Technical sources

packages/os-kernel/src/modules/retail.ts, packages/os-kernel/src/modules/index.ts, apps/studio/lib/os/navigation.ts, apps/studio/lib/os/settings-groups.ts, apps/era-station/apps/web/src/era/business/screens.ts.

Screen pictures

© 2026 Era. Era documentation. Something missing or wrong? Write to us: [email protected]