For AI assistants and other programs: this page is an interactive process map and needs JavaScript to draw. Its whole content is also here in other forms. As JSON, with a guide to reading it: https://complexity.verdura.cc/view/68xGLozpOdl4iYzwZdWlUSzs/map.json. As plain text: https://complexity.verdura.cc/view/68xGLozpOdl4iYzwZdWlUSzs/map.txt.

How to read the map

The map as text

# Process demo

A process map with 23 steps, 22 connections and 0 stage notes.

The process starts at "Place the order on the site".
The process finishes at "Receive the parcel", "Leave at a pickup point".

## Lanes (in order)
1. Customer
2. Shop system
3. Customer service
4. Warehouse
5. Carrier

## Groups
- Checkout (lane: Customer)
- Shipping (lane: Shop system)
- Picking (lane: Warehouse)
- Packing (lane: Warehouse)

## Objects (what flows between steps)
- Order
- Authorised order
- Declined payment
- Payment failed email
- Order to fulfil
- Short order
- Confirmation email
- Order released to warehouse
- Question to customer
- Agreed change
- Cancellation
- Released payment
- Cancellation email
- Pick list
- Picked items
- Missing item report
- Checked items
- Packed parcel
- Labelled parcel
- Tracking number
- Captured payment
- Shipping email with tracking
- Parcel in transit
- Delivered parcel
- Failed delivery
- Order received
- Parcel at pickup point

## Classes (kinds of step)
- Step

## Steps

### Place the order on the site
class: Step; lane: Customer; marked as the start of the process
The customer fills the basket, enters the delivery address and pays by card or PayPal at checkout.
- produces Order to "Authorise the payment"

### Authorise the payment
class: Step; lane: Customer; group: Checkout
The payment provider holds the amount on the card. The money is taken only when the parcel ships.
- requires Order from "Place the order on the site"
- produces Authorised order if payment approved to "Check stock for every item"
- produces Declined payment if payment declined to "Email: payment did not go through"

### Email: payment did not go through
class: Step; lane: Customer; group: Checkout
- requires Declined payment from "Authorise the payment"
- produces Payment failed email to "Read the payment failed email"

### Read the payment failed email
class: Step; lane: Customer; tags: No data
About a third of these customers come back and order again. Nobody follows up the rest.
- requires Payment failed email from "Email: payment did not go through"

### Check stock for every item
class: Step; lane: Customer; group: Checkout; tags: Problem
Stock in the shop system is updated from the warehouse once an hour, so it can be out of date.
- requires Authorised order from "Authorise the payment"
- produces Order to fulfil if all items in stock to "Send the order confirmation"
- produces Short order if an item is missing to "Ask the customer what to do"

### Send the order confirmation
class: Step; lane: Customer; group: Checkout
- requires Order to fulfil from "Check stock for every item"
- produces Confirmation email to "Get the confirmation"
- produces Order released to warehouse to "Print the pick list"

### Get the confirmation
class: Step; lane: Customer
- requires Confirmation email from "Send the order confirmation"

### Ask the customer what to do
class: Step; lane: Customer
By email, within one working day. Phone if the order is over 200 €.
- requires Short order from "Check stock for every item"
- produces Question to customer to "Choose: wait, swap or cancel"

### Choose: wait, swap or cancel
class: Step; lane: Customer
- requires Question to customer from "Ask the customer what to do"
- produces Agreed change if wait or swap to "Change the order"
- produces Cancellation if cancel to "Cancel and release the payment"

### Change the order
class: Step; lane: Customer; tags: For improvement
Done by hand in the shop admin.
- requires Agreed change from "Choose: wait, swap or cancel"
- produces Order to fulfil (nothing connected)

### Cancel and release the payment
class: Step; lane: Customer
- requires Cancellation from "Choose: wait, swap or cancel"
- produces Released payment (nothing connected)
- produces Cancellation email to "Get the cancellation"

### Get the cancellation
class: Step; lane: Customer
- requires Cancellation email from "Cancel and release the payment"

### Print the pick list
class: Step; lane: Customer
Pick lists are printed in two waves: 9:00 and 13:00.
- requires Order released to warehouse from "Send the order confirmation"
- produces Pick list to "Pick the items from the shelves"

### Pick the items from the shelves
class: Step; lane: Customer; tags: Problem
About 2 orders in 100 have a wrong item or size.
- requires Pick list from "Print the pick list"
- produces Picked items if all found to "Check items against the order"
- produces Missing item report if item not on the shelf (nothing connected)

### Check items against the order
class: Step; lane: Customer
- requires Picked items from "Pick the items from the shelves"
- produces Checked items to "Pack the parcel"

### Pack the parcel
class: Step; lane: Customer; tags: For improvement
Box size is chosen by eye. Too many parcels ship half empty.
- requires Checked items from "Check items against the order"
- produces Packed parcel to "Print the shipping label"

### Print the shipping label
class: Step; lane: Customer
- requires Packed parcel from "Pack the parcel"
- produces Labelled parcel to "Collect the parcels"
- produces Tracking number to "Take the payment"

### Take the payment
class: Step; lane: Customer
- requires Tracking number from "Print the shipping label"
- produces Captured payment (nothing connected)
- produces Shipping email with tracking to "Get the shipping email"

### Get the shipping email
class: Step; lane: Customer
- requires Shipping email with tracking from "Take the payment"

### Collect the parcels
class: Step; lane: Customer; tags: Constraint
One pickup a day at 15:00. Parcels packed later wait until tomorrow.
- requires Labelled parcel from "Print the shipping label"
- produces Parcel in transit to "Deliver the parcel"

### Deliver the parcel
class: Step; lane: Customer
- requires Parcel in transit from "Collect the parcels"
- produces Delivered parcel if someone at home to "Receive the parcel"
- produces Failed delivery if nobody at home to "Leave at a pickup point"

### Receive the parcel
class: Step; lane: Customer; marked as the finish of the process
- requires Delivered parcel from "Deliver the parcel"

### Leave at a pickup point
class: Step; lane: Customer; marked as the finish of the process; tags: No data
After 7 days the parcel goes back to the shop. What happens then is not settled.
- requires Failed delivery from "Deliver the parcel"