ACT Portal 2.3.0 — Online store for the medical alert page
==========================================================
Install together with alarmtech-website-1.1.0.zip (the website half).

What's new
- Website -> Orders: medical alert orders paid on alarmtech.com/medical-alert/. Steps on each order:
  activate (device ID + monitoring account #), ship (tracking # + email to the customer), cancel.
- Website -> Orders -> Store settings (admins): turn online ordering on/off, device names and prices
  (Gemini Pendant / Gemini Watch, $29/month, fall detection included), shipping, states, sales tax, checkout terms.
  The store can only be turned on once Stripe is connected (Billing -> Online payments).
- When a payment goes through (Stripe webhook, or the thank-you page as a backup) the portal creates:
  customer (Billed by: Portal — never Alarm Biller), site at the wearer's address, one Medical Alert system per
  device with the emergency contacts as call list, RMR $29/device (first auto-charge one month later),
  a paid invoice, and autopay on the saved card. Office email + bell: "New online order — activate & ship".
  The customer gets a confirmation email with their Customer # and Registration Key.
- Help: new article "Online orders: medical alert pendants and watches".

Install
1. Bluehost File Manager -> public_html/website_be8ee0d7
2. Upload act-portal-2.3.0.zip there and Extract it (replace existing files).
3. Open my.alarmtech.com once. The new table is created automatically (schema 17).
4. Install alarmtech-website-1.1.0.zip in public_html/website_23f5b23d the same way.
The store starts OFF, so nothing changes for customers until Stripe is connected and you turn it on.

Files
  new:     app/shop.php
  changed: index.php, app/bootstrap.php (version), app/migrate.php (schema 17), app/pages/website.php (Orders tab),
           app/pages/payments.php (webhook hands store orders to shop.php), app/pages/notify.php (bell),
           app/help_content.php, app/help/admin.php

Undo
  Extract act-portal-rollback-2.2.0.zip in the same folder (puts back the 8 changed files). The shop_orders table stays.
