A South African men's apparel store on Spree 5.6 + Next.js 15. 160 products
live, three markets, live Malaysian courier rates, customer-owned carts.
What is here:
storefront/ the Next.js app
backend/ ONLY the custom Spree code. Spree itself is a prebuilt image
that mounts no app code, so every file here needs an explicit
volume entry in docker-compose.yml or it is silently ignored.
catalogue/ the scripts that loaded and maintain the products
docs/ manifest, mock registry, napkins
Real .env files are committed deliberately. This lives on the house's private
Gitea, and a clone that runs beats a clone that needs a secrets handover.
LANDMINE.md maps every key, what it opens, and what must be rotated before this
repo goes anywhere less private.
The admin API key used to be a literal in six catalogue scripts. They now read
SPREE_ADMIN_KEY from the environment and refuse to run without it.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
17 lines
1.0 KiB
Bash
17 lines
1.0 KiB
Bash
NEXT_PUBLIC_SPREE_API_URL=https://api.jux-lab.com
|
|
NEXT_PUBLIC_SPREE_API_KEY=pk_RVVf1fTUW1T4nW9FTFACm92D
|
|
# #mock — Malaysia-only courier, left over from the MY phase. The store sells to South Africa now — Bob Go replaces this.
|
|
EASYPARCEL_CLIENT_ID=5be15621-f711-485b-bc79-15256747ce65
|
|
# #mock — see EASYPARCEL_CLIENT_ID above.
|
|
EASYPARCEL_CLIENT_SECRET=9a1e611e-c4e2-4d1a-87c8-f695c1323e63
|
|
EASYPARCEL_TOKEN_PATH=/home/ijat/pak-jabit-store/.easyparcel-token.json
|
|
APP_BASE_URL=https://shop.jux-lab.com
|
|
# #mock — 10150 is Penang, Malaysia — placeholder origin for EasyParcel quotes. Needs the real SA warehouse postcode.
|
|
STORE_POSTCODE=10150
|
|
# #mock — MY-07 is Penang, Malaysia. Needs the real SA province.
|
|
STORE_STATE=MY-07
|
|
# #mock — prefixed id of the card gateway. Currently points at Spree::Gateway::Bogus
|
|
# ("Test Card (sandbox)"), which approves any card and mints one ending 4242.
|
|
# Repoint at the Payfast payment method once NSH merchant registration lands. See MOCKS.md.
|
|
SPREE_CARD_PAYMENT_METHOD_ID=pm_EfhxLZ9ck8
|