Ledger — merchant documentation
A B2B / wholesale theme built around fast reordering: a live quick-order table, tier pricing, and spec sheets. This guide covers setup end to end. No coding required.
- Support: hello@zorzen.xyz
- Theme version: 1.0.0
1. Install & first run
- From the Theme Store, Add Ledger to your store. It appears in Online Store → Themes under *Theme library*.
- Click Customize to open the theme editor. Every section works with your real products immediately; empty states are designed in, so nothing looks broken before you add content.
- Set your logo and colors in Theme settings (gear icon). Pick one of the three styles below in Theme settings → Presets.
Styles (presets)
| Style | What changes |
|---|---|
| Ledger | Default — linen ground, deep-blue state accent |
| Oxide | Accent → rust |
| Forest | Accent → forest green, cooler ground |
Only tokens change between styles — architecture, type, and density stay identical.
2. Header, navigation & footer
Header and footer are section groups (edit them from any page in the editor).
- Header → set logo (or leave blank to show your store/brand name as a wordmark), choose the menu, toggle the sticky header, and enable Quick order in the top bar (point it at your Quick order page — see §4).
- Announcement bar → your terms/dispatch message; optional account links.
- Footer → left text + link blocks.
3. Tier pricing (the core feature)
Ledger shows quantity price breaks live on the product page and in the quick-order table. It supports two data sources automatically:
Option A — Shopify Plus B2B price lists (recommended on Plus)
If you use B2B catalogs with quantity price breaks, Ledger reads them natively. No metafields needed — set your breaks in Settings → Customers/B2B → Catalogs, and the theme renders unit price, line totals, and the "next break" nudge from them.
Option B — Catalog/variant fallback (any plan)
If you're not on Plus B2B, add a variant metafield and Ledger uses it:
- Namespace/key:
ledger.tier_prices - Type: JSON
- Value: a list of
{ "min": <qty>, "price": <unit price> }, e.g.
[{ "min": 1, "price": 6.85 }, { "min": 10, "price": 6.10 }, { "min": 50, "price": 5.40 }]
price is the per-unit price at that quantity. Breaks at 10 and 50 are the designed defaults, but any breaks work.
Create the definition once in Settings → Custom data → Variants → Add definition (ledger.tier_prices, type *JSON*), then fill it per variant.
4. Quick-order page
The quick-order table lets buyers add many SKUs fast, with live unit/line/summary math and a paste-a-list box.
- Create a page: Online Store → Pages → Add page. Title it *Quick order*.
- In Theme settings the page uses the
page.quick-ordertemplate — pick it in the page's *Theme template* dropdown (right sidebar). - Link it from the header (Header settings → enable Quick order, choose this page).
Buyers can type SKUs or paste SKU, qty lines (CSV accepted). Prices reflect the tier data from §3. Works without JavaScript via standard form submission; JS adds the live recompute.
5. Spec sheets
Show a structured key/value spec table on the product page.
- Product metafield:
ledger.spec_sheet - Type: JSON (list of
{ "label": "...", "value": "..." }) — or use a metaobject and reference it. - Enable Show spec sheet on the Product section, and add the Spec sheet block where you want it.
SKUs, part numbers, and order references render in IBM Plex Mono automatically; numeric columns use tabular figures.
6. Metafields reference
Create these in Settings → Custom data. All are optional — sections degrade gracefully when empty.
| Metafield | Owner | Type | Purpose |
|---|---|---|---|
ledger.tier_prices | Variant | JSON | Fallback tier pricing (§3B) |
ledger.spec_sheet | Product | JSON | Spec key/value table (§5) |
7. Templates included
Home, collection, product, cart (+ drawer), blog, article, list-collections, search, page, quick-order page, gift card, 404, password, and all customers/* pages. Every section can be moved, duplicated, or removed without breaking the page.
8. Accessibility & performance
- WCAG 2.1 AA; visible keyboard focus ring everywhere; motion respects "reduce motion".
- Vanilla JavaScript, no libraries, loaded
defer. One hero image max above the fold. - Core flows (add to cart, quick order, filtering, pagination) work without JavaScript.
9. FAQ
Do I need Shopify Plus? No. Tier pricing works on any plan via the ledger.tier_prices fallback; Plus B2B price lists are read automatically if you have them.
My prices don't show breaks. Confirm either B2B quantity breaks are configured, or the ledger.tier_prices variant metafield is set with valid JSON.
Can I change the break points (10 / 50)? Yes — they come from your data, not the theme. Use whatever min quantities you like.
Checkout styling? Checkout is Shopify-owned; only logo/colors are themeable there.
Questions? hello@zorzen.xyz