Design and stack
E Tunez — design and stack
This domain is the rebuild staging site. https://e-tunez.swiftstudios.ca
The source shop is https://e-tunez.com. Prices are USD. Captured 2026-10-16: 67 products, 100 variations, 211 product photos, 488 public media files, 96 WordPress pages. Live HTML for those pages is at https://e-tunez.swiftstudios.ca/content/ (About, FAQ, reviews, tuner bios, how-to, contact, pinouts, Ridez). There are no blog posts. Members-only pages (dynos, how-to videos, tune downloads) are empty without a login.
The live staging home is e-tunez.zip (Barlow/Inter, Flatsome blue #0358f6, assets/hero-bg.jpg). Inner pages from the earlier zip stay until those screens are replaced. Catalog stays in SQLite. Cart, login, FlashPro, and KTuner still go to the live shop.
Design philosophy
Build a Canadian Honda ECU-tuning shop with the same character as the live site. The first job is to make the catalog obvious. Checkout, membership, and the members area come after the products are right.
- The shop is dark and automotive. Header and footer sit on near-black, `#0a0a0a`. The wordmark is the wide E Tunez logo, light on that bar.
- Primary action color is the live Flatsome blue, `#0358f6` (the same family as `#0554E5` on buttons). Secondary highlight is yellow, `#f7ea30`. Alert red is `#b20000`.
- Body type is Ubuntu. Dancing Script is only for the script accent on the live home (“Perfection is Our Passion”), never for prices or product names.
- Hero photos are real cars from the live shop: Civic, FN2, bay shots. Product photos sit on a dark or white card and stay uncropped.
- A product page leads with the photo. Clicking it opens the file at its real size.
- Options are dropdowns. On a tune, the option is the **tuning platform** (FlashPro, KTuner, KPro, Cobb, …), not a second product. On FlashPro hardware, the option is the **vehicle**. That choice updates the price, the stock line, and the SKU.
- Out of stock stays on the page. Hiding it would hide the catalog.
- Copy stays in the product’s own words. Do not invent horsepower, fuels, prices, stock, or SKUs.
- Keep the live payment structure (next section). Do not turn a tune into a hardware bundle, a subscription, or a Shopify-style one-click product.
- The live site is WordPress Flatsome. Shortcodes and builder chrome are layout only. They come out. Headings, reviews, and how-to copy stay, because those were the content.
Tagline from the live home: “Perfection is Our Passion.” Specialty line: “ECU Tuning for Hondata, Ktuner, Haltech and more. Specializing in Honda Engine Tuning.”
Public contact on the live site: tuning@e-tunez.com.
How payments are structured
Keep this generally the same as https://e-tunez.com. The live shop is WooCommerce. Checkout is **PayPal Payments** (`ppcp-gateway`): PayPal wallet plus card brands (Visa, Mastercard, Amex). Prices are **USD**. The steps on the live cart are Shopping Cart → Checkout details → Order Complete. Empty checkout sends you back to the cart. Return pages are Thank You and Cancel Payment.
A Stripe plugin is loaded in the Store API, but the cart’s listed method is PayPal. Do not switch the public checkout to Stripe, Shopify, or a subscription gateway unless Matt says so.
Two kinds of line in the same cart
**1. The tune (a service).** Sold under `/services/…`. Woo marks these virtual: no shipping rate, no downloadable file. The customer already owns, or will buy, a flash tool. The product page dropdown is “Tuning Product” / “Tuning Hardware”: Hondata FlashPro, KTuner, KPro, Cobb AccessPORT, Haltech, Doctronix, and similar. That choice is a variation of the *tune*, not a hardware SKU.
Most Ultimate Tune platforms are the same price. Cobb is the exception (K20 Swap is $329 on FlashPro/KTuner/KPro and $512 on Cobb). Doctronix can carry a small upcharge (S2000 lists “Doctronix +$49”). Copy on those pages: “All pricing in USD.”
Tiers, still separate products:
- Ultimate Tune — about $249–$349. Copy promises a minimum of 6 revisions; more are free unless the car’s mods changed.
- Premium Level Tuning — $549 (listed regular $749). Hire a tuner for 6 months / 180 days, up to 50 revisions, any vehicle and any listed hardware.
- Custom dyno — about $359, up to 3 hours.
- Retunes — Basic (I/H/E) $119; Advanced / basemap $169 or $199.
- Diagnostics and Feedback — $24.95.
**2. Hardware (a physical unit).** FlashPro, KTuner End User Flash Kit, K-Pro, intakes, injectors, headers, cats. These are their own products. FlashPro is $795 with a Vehicle dropdown (which Hondata unit). KTuner kit is $449 (V1.2) or $649 (V2.0).
Live copy: FlashPro ships from the US supplier, typical 7–9 business days, FedEx; put a phone number in the shipping or comments field. Canadian customers are not charged tax at checkout; the courier collects it on delivery. KTuner copy says Canadian duties/taxes may be collected by the postal carrier.
Woo’s virtual flag is messy on the live shop (FlashPro variations are marked virtual even though they ship; the KTuner kit is not). Fulfillment is drop-ship plus a shipping address, not a Woo shipping-rate table. Do not invent UPS/FedEx rate quotes. Keep “courier collects Canadian tax” for those US-shipped tools.
Hardware and a tune together
Allowed, and the live FlashPro page says so: if they order a FlashPro with a tuning package, wait until the unit arrives, then start the tune. That is two cart lines (or two orders), not one bundled SKU. Do not auto-add a FlashPro when someone picks “Hondata FlashPro” on a tune — that dropdown only names the platform the tune is written for.
Add-ons are extra cart lines
Not checkboxes melted into the tune price, except the platform variation above. They add:
- Flex fuel — $79 when bought with a tune (`fuel-fuel-add-on`), $99 standalone (`fuel-fuel-add-on-no-pair`)
- Forced induction — $99, one-time
- Extra map / burble / 2nd map — $89
- Cam angle mapping — $99
- Upgrade to Premium Tuning — $1 SKU exists on the live shop
What checkout is not
Tunes are **not** a membership subscription. ARMember / Paid Member Subscriptions exist for the members area (videos, dynos, coupons, tune downloads) after login. That is separate from paying for a flash. Guest checkout exists for the shop. Coupons exist.
Do not rebuild this as Shopify (there is a leftover `[wp-shopify]` page). Do not charge CAD at checkout. Do not hide the platform dropdown and sell a generic “tune.” Do not require an account before PayPal.
What the uploaded design should cover
Same shape as the Twisted Wood zip:
- Home — hero, the live promise (experienced tuners, keep tuning until it is perfect), brand tiles (Hondata, K-Tuner, Haltech, Cobb), a path into the catalog
- Shop / catalog — all 67 products, filters by category, sort
- About / contact / FAQ / reviews / tuner bios — use the captured copy at `/content/`, not invented text
- Cart / checkout — same structure as live: USD, PayPal (wallet + cards), cart then details then order complete. Tune line = virtual service with a platform option. Hardware line = its own product. Add-ons = extra lines. Hardware + tune in one cart is OK.
- Product pages can wait until the three above exist, or ship with them. Product URLs should be `/product/<slug>/` so they can be generated from SQLite later.
All links between those pages are relative, so the folder works opened locally or dropped onto this domain.
How the infrastructure works
A browser resolves e-tunez.swiftstudios.ca to 72.251.4.92. That name is one label under swiftstudios.ca, so the wildcard already points it at the Gridlink edge. Caddy on the edge terminates HTTPS and holds the certificate. An SSH tunnel carries the request to Super-Micro. The house does not open an inbound port.
On Super-Micro, nginx listens on 127.0.0.1:8091 and routes by the Host header. This name goes to the hosting container on 127.0.0.1:8088.
Apache inside that container serves this site. The Unix account is `e-tunez.swiftstudios.ca`. The files are in `/home/e-tunez.swiftstudios.ca/public_html`.
How SQLite is used
One SQLite file is the store. It is `data/catalog.sqlite` in the project, and the same file is published at `/data/catalog.sqlite`. There is no MySQL and no WooCommerce database on this container. The old shop was the source we copied. This file is what we edit from here.
Prices are integer cents. A dollar is 100. That keeps tax and totals exact.
What a customer buys:
- If the product has options, the buyable thing is one row in variations. The dropdowns are that row’s attributes_json: Tuning Product / Tuning Hardware on a tune, Vehicle on FlashPro, Version on the KTuner kit. The price, stock, and SKU come from that same row.
- If the product is simple, with no variations, the buyable thing is the products row. Add-ons and retunes are simple rows, not options on the parent tune.
- A cart line stores the variation id, or the product id when there is no variation, plus a quantity. Hardware and a tune are two lines.
Photos stay files on disk. The database only stores the source URL and a local_path. Binaries from the capture live on the host at `/root/e-tunez-capture/assets/media/`. They are not BLOBs in SQLite.
SQLite allows one writer at a time. That fits this shop. The catalog is read by generating pages, and later by a small Python app in this container that opens the file for the cart. We do not put a database server in front of it.
Stack
The hosting container has Apache, Python, and Node. It does not run PHP, so this MVP is static HTML generated from that SQLite file.
- Capture: `utilities/capture-etunez.py`
- Catalog builder: `utilities/build-etunez-catalog.py`
- Photos: `/root/e-tunez-capture/assets/media/` on the host; brand files in `public/assets/brand/`
- Checkout is not built yet. When it is, it follows “How payments are structured” above: PayPal, USD, virtual tunes, separate hardware, add-ons as extra lines. Membership, login, and datalog upload from the old WordPress site stay out of this MVP.
Tables
- categories: id, parent_id, name, slug, product_count
- tags: id, name, slug, product_count
- products: id, slug, name, product_type, sku, prices in cents, stock, short_html, short_text, description_html, description_text
- product_categories, product_tags
- images: product_id, variation_id, position, source_url, local_path, alt
- variations: id, product_id, sku, name, prices in cents, stock, attributes_json
- media: full public media library
- pages: captured WordPress pages (members area, how-to, reviews, contact)
Catalog snapshot
Categories, largest first: Tuning (53), Vehicle Selection (38), Tuning Extras (5), Tuning Hardware (3), Intakes (3), Hondata FlashPro (3), Re-Tuning (2), DeatschWerks (2), Hondata (2), Honda/Acura Injectors (2), Hybrid-Racing, ECU Reflash & Tuners, Exhaust, Headers, Premium Tuning.
Hardware on the live shop includes Hondata FlashPro ($795), Hondata K-Pro V4, KTuner End User Flash Kit, Cobb AccessPORT, Hybrid Racing intakes, DeatschWerks injectors, Skunk2 K-swap header. Most of the rest is remote e-tune packages for Honda/Acura chassis, plus retune and map add-ons (flex fuel, forced induction, burble, cam angle).