# Automation 3 — Fallback (no customization)

**Scope item 6:** customers who don't customize during the window automatically get the
admin's default selection fulfilled.

This is not a separate job — it's the `else` branch of
[02-fulfillment-generation.md](02-fulfillment-generation.md):

```
sel = customer.metafields.wineclub.selection[cycle]
if !sel || sel.fulfillmentStatus == 'pending' and sel is empty:
    createOrderFromDefault(member.tierPool)
    mark fulfillmentStatus = 'default_applied'
```

## Rules

- "Didn't customize" = no `wineclub.selection[cycle]` record, **or** a record that was
  never locked in (we only write on successful "Lock in", so absence is the signal).
- Default box = the tier pool's `default_wines` (the admin's pre-selected 3 or 6).
- No extra charge — fallback is exactly the base subscription shipment.
- Tag the order `default` so packing knows it wasn't customized.

## Edge cases to confirm

- **Partially saved / abandoned:** the portal only persists on "Lock in", so there's no
  partial state — either a full valid selection exists or none does. Good.
- **Saved then a bottle went out of stock before close:** at fulfillment, if a selected
  variant is unavailable, substitute the corresponding default bottle and flag the order
  `substitution` for staff review. (Confirm desired behavior with client.)
- **Add-ons saved but charge unpaid:** if `chargeStatus != 'paid'` at close, either drop
  the add-ons or hold the order for staff — **client decision needed.**
