Full Next.js storefront with Square catalog integration, balloon color picker, delivery/pickup slot booking, CalDAV calendar sync, and admin panel. Admin features: item overrides, category display order/visibility, hours editor, holiday/occasion windows, quantity units, and modifier deselect. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
50 lines
3.1 KiB
Plaintext
50 lines
3.1 KiB
Plaintext
# ─── Square API ────────────────────────────────────────────────────────────────
|
|
# Get these from https://developer.squareup.com/apps
|
|
SQUARE_ACCESS_TOKEN=your_square_access_token_here
|
|
SQUARE_LOCATION_ID=your_square_location_id_here
|
|
# "sandbox" or "production"
|
|
SQUARE_ENVIRONMENT=sandbox
|
|
|
|
# These are exposed to the browser — use your Square Application ID (not access token)
|
|
# and the same location ID as above.
|
|
NEXT_PUBLIC_SQUARE_APP_ID=sandbox-sq0idb-your_app_id_here
|
|
NEXT_PUBLIC_SQUARE_LOCATION_ID=your_square_location_id_here
|
|
# "sandbox" or "production" — controls which Square JS SDK URL is loaded
|
|
NEXT_PUBLIC_SQUARE_ENVIRONMENT=sandbox
|
|
# Optional: ID of a Square category (Items > Categories) whose items appear in the shop.
|
|
# If set, only items in this category are shown. Otherwise falls back to src/config/shop-items.json.
|
|
SQUARE_SHOP_CATEGORY_ID=
|
|
|
|
# ─── CalDAV (Nextcloud) ────────────────────────────────────────────────────────
|
|
# Your Nextcloud CalDAV base URL — include trailing slash
|
|
CALDAV_URL=https://your-nextcloud.example.com/remote.php/dav/calendars/username/
|
|
CALDAV_USERNAME=your_nextcloud_username
|
|
# Use an app password (Settings > Security > Devices & sessions > App passwords)
|
|
CALDAV_PASSWORD=your_nextcloud_app_password
|
|
# Display name of the calendar to check for Busy blocks
|
|
CALDAV_CALENDAR_NAME=Deliveries
|
|
|
|
# ─── Email (SMTP — your mail server) ──────────────────────────────────────────
|
|
SMTP_HOST=mail.beachpartyballoons.com
|
|
SMTP_PORT=587
|
|
SMTP_USER=shop@beachpartyballoons.com
|
|
SMTP_PASS=your_email_password_here
|
|
# Address that receives new-order & slot-conflict alerts (you/staff)
|
|
ALERT_EMAIL_TO=you@beachpartyballoons.com
|
|
# Sender shown on outgoing emails
|
|
ALERT_EMAIL_FROM=shop@beachpartyballoons.com
|
|
|
|
# ─── Admin panel ───────────────────────────────────────────────────────────────
|
|
# Password to access /admin — keep this secret
|
|
ADMIN_PASSWORD=change_me_to_something_strong
|
|
# Secret token for the cron cache-refresh endpoint (POST /api/cache/refresh)
|
|
CACHE_REFRESH_SECRET=change_me_to_something_random
|
|
|
|
# ─── OSRM (self-hosted routing) ────────────────────────────────────────────────
|
|
# Leave blank to use the public demo server (unreliable). Self-host for production:
|
|
# https://hub.docker.com/r/osrm/osrm-backend
|
|
OSRM_URL=http://localhost:5000
|
|
|
|
# ─── Site ──────────────────────────────────────────────────────────────────────
|
|
NEXT_PUBLIC_SITE_URL=http://localhost:3000
|