Internal · Owner review
Homeware&Tech

The brand that removes suspicion

Positioning · voice · photography · what South Africans actually search — an alignment review for the owners. Platform decision deliberately open.

July 2026 · prepared from the brand operating system + live research

Internal
Why this work exists

The enemy isn't other retailers.
It's suspicion.

South Africa is a scam-wary market. An unexplained discount reads as a trap, and "second hand" reads as someone else's problem. The old framing filed the brand in the pawn-shop mental category — exactly where a low price is least believable.

The old framing

"We Buy, We Sell, We Rock!"

…quality pre-owned and new products.

The counter-principle

The discount must always carry its reason.

You pay less because of the box, not the product. No price ships without its reason attached.

brand/positioning.md §2
Internal
The core story — this paragraph is the brand

Every item on our shelves and on our site is brand new and never owned. It is here because the box was opened, damaged in transit, put out as a demo unit, or returned unopened to a major retailer — so you pay well under retail for the product, not the packaging.

Every channel tells some version of this, and no channel weakens it. Sourcing is always generic — retailer returns, demo stock, direct imports. We never name a source retailer on a product.

brand/positioning.md §3
Internal
Positioning statement

For value-savvy households and deal hunters in Gauteng, Homeware & Tech is the store where you get brand-name goods, brand new and never owned, at well below retail — tested, under warranty, returnable, and sitting in a real store where you can see it before you buy.

Primary message: "Brand new. Never owned. Well under retail — and we'll show you why."

brand/positioning.md §4, §7
Internal
The grading ladder

Three grades. Every product gets exactly one.

New · Sealed

Untouched box, factory sealed. Includes direct imports. Sealed is shown sealed — no other claim needed.

New · Unboxed

The hero grade. Box opened or damaged; the product itself is flawless. If there is any mark, it isn't this grade.

New · Unboxed · Light Marks

A cosmetic mark, always disclosed with a located, photo-referenced note: "Light scratch on left panel — shown in photo 4."

Written "New – Sealed" / "New – Unboxed" / "New – Unboxed, Light Marks" — identical on shelf tickets, website, ads and feeds. What the shelf says is what the feed says. Never abbreviated, never paraphrased.

brand/positioning.md §5
Internal
The trust stack

Five proofs, wherever a buying decision happens

1

Tested before sale

Every item powered on and checked working before shelf or site.

2

6-month warranty

Honoured by us, in store — not fine print. (Value to confirm with you.)

3

Returns accepted

Plain-language policy, honoured at all three stores.

4

See it in store

Every item sits in a real Gauteng store. Walk in and inspect it.

5

Free delivery over R2 000

Or collect at its home store, free.

Each proof is operational, not decorative — the stores have to actually do these things. That's what competitors quoting prices from a website can't fake.

brand/positioning.md §6
Internal
Vocabulary discipline

Words that never describe our stock

second handusedpre-ownedpawncash for goodsliquidationfactory seconds

Because they're not just off-brand — for this stock they're false. Nothing we sell was ever owned. Plus two protective rules: no blanket discount percentage is ever published (per-item compare-at pricing does that work honestly), and "unboxed" appears only inside the full grade label.

R9 999Retail R11 999Save R2 000

The canonical price pattern: our price leads, verified retail follows, the saving closes. The reason travels with the price.

brand/positioning.md §9 · DESIGN.md
Internal
Brand voice

The straight-talking insider

Honest to the point of showing you the scratch

A disclosed flaw is the reason the price is believable. Honesty is the selling point, not a buried disclaimer.

Specific beats superlative

"SMEG FAB32, R3 000 under retail, box damaged in transit" — never "AMAZING DEALS!!!". A specific claim can be checked; checkable is what sells.

Local and human

SA English, real store names, rand amounts written properly (R11 999). Sounds like a place you can drive to — because it is.

One rule with teeth: damage disclosure is flat and plain, zero humour. A joke near a flaw reads as hiding something.

brand/voice.md §1–3
Internal
The voice, applied — real listing from the current site

Same fridge. Different believability.

Live site today

SMEG Full Fridge – Stainless Steel

R11999,00 R9999,00

Store Location: [Rooihuiskraal,Centurion Mall@Reds]

A struck price with no reason attached — an unexplained discount still reads as a trap.

Under the new system

SMEG [model] Fridge — Stainless Steel, [capacity]L — New – Unboxed

R9 999 · Retail R11 999 · Save R2 000

Box opened; the fridge itself is flawless. Tested working. 6-month warranty. One available — see it at Mall@Reds or collect today.

Same two numbers the site already shows — plus the missing reason. That one line is the whole strategy.

brand/voice.md §6, rewrite 2
Internal
Photography policy

Photos are the trust engine

The model

Don't hire a photographer to shoot products — hire one once to build a booth per store and train staff to shoot at listing time, on store phones. Budget guidance R8 000–R10 000 once-off, then it's a store operation.

The shot list

Fixed order: hero → front → model plate → every mark close-up, numbered → box shot only if the box is damaged. Damage notes point at photo numbers. Sealed stock is never unboxed for photos.

The honesty rules

Marks photographed, never angled away. No filters, no retouching. The hero is always our photo of our actual item — a stock image never stands in. A grade is a claim; the photos are the evidence.

Every booth photo carries a store-name board in frame — so the photo itself proves which store the item lives in.

brand/photography-policy.md
Internal
Research · what South Africans actually type

Deal terms dwarf condition terms

Category pages compete on the big deal terms; the grading story converts on-page once the searcher arrives. "New – Unboxed" is the brand label, not the SEO target — nobody types it (yet).

research/keyword-context.md · DataForSEO, ZA monthly, Jul 2026
Internal
Research · three uncontested pockets

Demand nobody is answering properly

720/mo

"takealot returns"

LOW competition, real buy-side long tail ("buy takealot returns"). Only two small SA sites target it. We are literally the answer — answered at brand level with one explainer page, never per item.

4 400/mo

"refurbished meaning"

LOW competition. People asking what these words mean. Our explainer positions New – Unboxed as better than refurbished: never owned, never repaired.

$2.22 CPC

"demo stock"

Highest commercial value of any term measured. The demo-stock SERP is wall-to-wall dedicated SA businesses — Gauteng shoppers know and use this word.

research/keyword-context.md · DataForSEO, ZA, Jul 2026
Internal
Findings · current site & listings — fixes needed on any platform

What we found under the floorboards

FindingWhy it matters
"Second hand", "pre-owned", "Used · Grade B" live on the siteSells the stock short — it was never owned — and files the brand in the category where low prices are least believable.
Warranty disclaimed entirelyCurrent T&Cs say the store "cannot warrant performance". The CPA gives customers a 6-month implied warranty anyway — so we carry the obligation without earning the trust. The new brand makes the warranty a selling point instead.
Legal gaps: no VAT/registration number shown, GDPR-template privacy policy (no POPIA), defect-only returns vs ECTA's 7-day online cooling-offCompliance exposure and easy credibility wins; attorney review recommended before relaunch.
Google Business Profiles unevenMall@Reds is strong (4.7★, 24 reviews). Sunnyside has zero reviews and a misspelled website link. Modderfontein has no profile at all — invisible on Maps and a hard blocker for local inventory ads later.
research/existing-site-policies.md · research/store-details.md
Internal · concept
Concept · the AI Lister

From booth photo to live listing in minutes

1

Shoot

Staff photograph the item in the booth, on the store phone, per the shot list.

2

Read

AI reads the model plate photo — brand, model number, specs.

3

Verify

Current retail price looked up for the compare-at anchor. Facts, never guesses.

4

Write

Listing drafted in the brand voice, grade attached, damage notes matched to mark photos.

5

Approve

Staff review and publish. Online in minutes, not days — one-of-each stock finally listable at scale.

Platform-independent by design: the photo contract and the brand documents are the system. It can publish to WooCommerce or Shopify equally.

brand/photography-policy.md §4 (machine contract) · brand/voice.md §7
Internal · decision pending
Infrastructure · deliberately still open

POS + online store: two viable routes

WooCommerce + POS

Builds on the current site's bones. Lower running cost, maximum customisability, no per-transaction platform fees on top of the gateway. POS integration to be scoped against till workflows at the three stores.

Shopify + Shopify POS

Working prototype already built as part of this exercise (branded storefront, grading data model, store pages). Tighter native POS/inventory/channels integration; higher monthly + transaction cost on a third-party gateway.

The point of this deck: everything before this slide — positioning, grades, proofs, voice, photography, the Lister concept — carries over unchanged to either platform. The brand decision and the platform decision are independent, and the brand one is the urgent one.

decision criteria: cost · customisability · POS fit · migration effort
Internal
What we need from you

Does this match where you want the business to go?

  • The positioning call: commit to "brand new, never owned, explained price" as the single story — and retire "We Buy, We Sell, We Rock!" everywhere.
  • Warranty terms per grade — 6 months is the working value; your confirmation locks it into copy, policies and feeds.
  • Company details: VAT / registration number for the site, and the business address for invoices.
  • Modderfontein: shop number and trading hours, plus a Google Business Profile — currently the store is invisible on Maps.
  • Photography engagement: green-light the once-off booth + training model (R8 000–R10 000 guidance).
  • Platform steer: weigh WooCommerce vs Shopify on cost and POS fit — no commitment needed today; the brand work is ready either way.
Homeware&Tech
Working session · iBall Media
Part 2 · Putting the brand on the current site

Signed off. Now we build it — on WooCommerce.

The owners have approved everything in Part 1, unchanged. What follows is the execution pack for the existing WordPress/WooCommerce site and the ads account: homepage hero, grade badges, product cards, display banners, Facebook carousel — plus the asset list and the fixes we found while preparing it.

All product photos and prices in these mockups come from the live site (fetched 2026-07-14). Nothing is stock imagery.

Working session · iBall Media
Mockup 1 · Homepage top of fold — recommended (Variant A)
homewaretech.co.za
Homeware&Tech
Brand new. Never owned.
Well under retail — and we’ll show you why.

Retailer returns, demo units and damaged-box stock: every item tested working, graded honestly, and covered by our 6-month warranty. See it at Sunnyside, Mall@Reds or Modderfontein — or order online with free delivery over R2 000.

See new arrivals How New – Unboxed works
New · Unboxed SMEG upright fridge photographed in store at Mall@Reds Mall@Reds
SMEG Full Fridge — Stainless Steel
R9 999Retail R11 999Save R2 000
One available — see it at Mall@Reds or collect today.
Tested before sale
6-month warranty
Returns accepted
See it in store
Free delivery over R2 000

Copy: brand/voice.md §6 rewrite 1 — approved verbatimPhoto & R9 999 price: live listing, fetched 2026-07-14Retail anchor pair: voice.md rewrite 2Grade shown is illustrative — assigned on inspection

brand/voice.md §6 · DESIGN.md · homewaretech.co.za 2026-07-14
Working session · iBall Media
Mockup 1b · Mobile, and a lighter alternative
Homeware&Tech
Brand new. Never owned.
Well under retail — and we’ll show you why.

Every item tested working, graded honestly, 6-month warranty. Three Gauteng stores or free delivery over R2 000.

See new arrivals
New · Unboxed SMEG fridge in store Mall@Reds
SMEG Full Fridge — Stainless Steel
R9 999Retail R11 999Save R2 000
Variant B — light, photo-led
Brand new. Never owned.
Well under retail.

And we’ll show you why: the price drops because of the box, not the product. Tested working, graded, 6-month warranty.

See new arrivals
Mall@Reds storefront with balloon arch Mall@Reds · Centurion

Recommendation: launch with Variant A. The dark band with the full trust strip carries most of the anti-suspicion load at the moment of rebrand; Variant B is a strong A/B test once the story has landed. Mobile keeps the H1, one CTA and one proof-carrying product card above the fold.

Storefront photo: brand/identity/ (real store)One orange CTA per view — DESIGN.md

DESIGN.md (buttons, imagery) · brand/photography-policy.md §8
Working session · iBall Media
Mockup 2 · Grade badges — the condition system, visible

Three badges replace “Condition: Used · Grade: B”

New · Sealed

Ink on white. Factory sealed, shown sealed. Data value stored in WooCommerce: “New – Sealed”.

New · Unboxed

Orange — the hero grade, box opened, product flawless. Data value: “New – Unboxed”.

New · Unboxed · Light Marks

Outlined. Never appears without its located, photo-referenced note: “Light scratch on left panel — shown in photo 4.”

Wiring for WooCommerceDetail
One global attributepa_grade with exactly three terms. Global (not per-product custom field) — that’s what the Google feed plugin can map condition from. Retire the current Condition and Grade attributes.
Badge renderingCSS classes on the shop-loop and product images (top-left; store tag bottom-right). Implementation pack ready in the repo: brand/design-system/assets/badges/ — badges.css, three SVGs, README with rules.
The uppercase treatmentNEW · UNBOXED is a CSS display style. The stored string is always the full en-dash form — never abbreviated, paraphrased or restyled in data, titles or feeds.
brand/positioning.md §5 · DESIGN.md · research/woocommerce-channel-plugins.md §1.1
Working session · iBall Media
Mockup 3 · The product card, rebuilt — real listing, live today

Same monitor. The card now argues its own price.

Live site today

Acer Portable Monitor PM161Q 15.6″ Full HD (1920×1080) IPS 16:9 6ms 250nits HDR10 AdaptiveSync MiniHDMI 2xType-C Black

R1799,00

Condition: Used  ·  Grade: B

Eleven specs in the title, zero reasons in the price. “Used · Grade B” is false (never owned), off the grading ladder — and banned vocabulary.

New · Unboxed · Light Marks Acer portable monitor, actual item photo Sunnyside
Acer PM161Q 15.6″ Portable Monitor — Full HD IPS, USB-C — New – Unboxed, Light Marks
Faint mark on rear casing — shown in photo 4.
R1 799Retail R —†
Tested working. 6-month warranty. One available — collect at Sunnyside.

Title formula: Brand + model + two selling specs + grade. Damage note flat, located, photo-numbered. Price in rand format R1 799, never R1799,00.

† The struck retail is blank on purpose: it comes from the item record, and under the new system a listing cannot publish without it. The grade, store and damage note here are illustrative — assigned at inspection.

Under R2 000 — so the card offers collection, never claims free deliveryPhoto: live listing, fetched 2026-07-14

brand/voice.md §6 rewrite 3 · homewaretech.co.za/shop/laptops-computers/acer-portable-monitor-2/
Working session · iBall Media
Mockup 4 · Google display banners — pixel-exact core set
Leaderboard · 728×90
Homeware&Tech
Brand new. Never owned.
Well under retail — and we’ll show you why.
R9 999Retail R11 999Save R2 000
Shop now
Medium rectangle · 300×250
Homeware&Tech
New · Unboxed
SMEG fridge in store
Brand new. Never owned.
R9 999Retail R11 999
Shop now
Mobile leaderboard · 320×50
H&T
Brand new. Never owned.
Well under retail — see why
Shop now

One message per banner: the primary line plus a price that carries its reason. No starbursts, no percentages, no countdowns — the discount is explained, not shouted. Every size links to the homepage hero (message match).

Also to export: 336×280 · 160×600 · 300×600 · 970×2501200×628 for PMax / Demand GenDelivery: PNG set (HTML5 optional later)

brand/positioning.md §7, §9 (no blanket %) · DESIGN.md · price pair: voice.md rewrite 2
Working session · iBall Media
Mockup 5 · Large formats & the Facebook page cover
Half page · 300×600 (shown 63%)
Homeware&Tech
Brand new.
Never owned.
Well under retail — and we’ll show you why.
New · Unboxed SMEG fridge Mall@Reds
R9 999Retail R11 999Save R2 000
Shop now
Facebook page cover · 820×312 (shown 75%)
Brand new. Never owned.
Well under retail.
Sunnyside  ·  Mall@Reds  ·  Modderfontein
Mall@Reds storefront

The cover is the gradient panel from the physical storefront sign — white display type is the only text allowed on it. Right side: the real Mall@Reds shopfront, balloons and all. Profile picture: the favicon mark on the gradient. Safe zone: Facebook crops covers to ~640×312 on phones — the store names row stays inside the left two-thirds.

Same art adapts to GBP covers ×3 storesSkyscraper 160×600 follows the 300×600 layout

DESIGN.md (identity devices: gradient, white display text only) · brand/identity/
Working session · iBall Media
Mockup 6 · Facebook / Instagram carousel — launch ad
H&T
Homeware & Tech
Sponsored ·
New and never owned. You pay less because of the box, not the product — tested, graded honestly, 6-month warranty.
Brand new.
Never owned.
Well under retail — here’s why
Brand new. Never owned.
Three Gauteng stores
Shop now
New · UnboxedSMEG fridge
SMEG Full Fridge — New – Unboxed
R9 999 · Retail R11 999
Shop now
New · SealedDefy upright fridge
Defy 343L Fridge — New – Sealed
R7 699 · Retail R9 999
Shop now
New · SealedBang and Olufsen Beosound A1 sealed box with store price sticker
B&O Beosound A1 — New – Sealed
R6 499 · One available
Shop now

Why these four cards

Card 1 states the story; then one hero-grade item, one sealed appliance, one sealed premium-brand box — the range in one swipe. The B&O photo still wears its Mall@Reds price sticker: shown sealed, exactly as it sits in the store.

Inside every limit

Primary text 114/125 characters. Headlines 23–32/40. Card images 1080×1080. One “brand new” per surface, zero exclamation marks, scarcity stated flatly. Card 4 gets its retail anchor from the item record before launch — no price ships alone.

What comes later

This is the manual launch creative. Once the feed work is in place (grade → condition, custom labels), Advantage+ catalog ads generate per-store and per-grade carousels automatically from the same product data.

brand/voice.md §5 · positioning.md §7 · channels/feed-architecture.md §7 · prices: live site 2026-07-14
Working session · iBall Media
The full asset review — what exists, what’s needed, who makes it

Asset & overlay checklist

AssetSpec / formatStatusOwner
Homepage heroBuild from Variant A (slide 19); desktop + mobile breakpointsMockup ready — decide A/B todayMark (Elementor) · copy+photo from us
Grade badges + store tagspa_grade attribute + CSS pack + SVGs, in repoReady to implementMark
Trust stripFive proofs, icon row — sitewide under header + PDPCopy final; icons in mockupMark · SVG icons from us
Display banner set300×250 · 336×280 · 728×90 · 320×50 · 300×600 · 160×600 · 970×250 + 1200×628Mockups today → PNG exports after sign-offUs
FB carousel cards4× 1080×1080 PNG + copy deck (slide 25)Mockup todayUs
FB page cover + profile820×312 cover · favicon mark on gradient as profileMockup todayUs
Google Business ProfilesModderfontein profile creation + covers ×3 (reuse cover art)Blocked: Modderfontein has no GBPKarl + us
OG share image + favicon1200×630 default share card from hero artTo produce with banner exportsUs
Product photographyBooth per store + staff training — feeds every future assetApproved model, schedulingStores · photographer once-off
brand/photography-policy.md · DESIGN.md · research/store-details.md
Working session · iBall Media
Found while building these mockups — all fixable in WooCommerce settings

Fix list for the current site

Finding (live site, 2026-07-14)Fix
Schema declares the business a PawnShop — the structured data on every page tells Google exactly the category the rebrand exists to escapeChange the SEO plugin’s organization type to Store (or HomeGoodsStore), one per-store LocalBusiness with hours + geo to follow
“Condition: Used · Grade: B” on every graded product — false (never owned), off the ladder, banned vocabularyReplace with the three-term pa_grade attribute + badges (slide 21); bulk edit existing products
Prices render as “R1799,00” and struck prices appear with no reason attachedWoo currency settings: space thousand separator, no decimals → R1 799; compare-at retail + grade always shown together
Products miscategorised — LG 9kg washing machine under “keyboard-mouses”, Bosch washer under “furniture”Category cleanup pass. Categories drive google_product_category in the feed; if bad categories ship, they become an ads problem
Homepage still says “quality pre-owned” + “We Buy, We Sell, We Rock!” framingHero replacement (slide 19) + banned-vocabulary sweep of all page copy, menus, footer
Titles are spec dumps (11 specs, no grade)Title formula: Brand + model + two selling specs + grade (slide 22); AI Lister automates this at listing time
homewaretech.co.za source, fetched 2026-07-14 · brand/positioning.md §5, §9
Working session · iBall Media
For the ads account — the rules that keep us unsuspended

Feeds & Google Ads: three non-negotiables

Condition mapping

New – Sealed → new. Both Unboxed grades → refurbished (interim used until the warranty per grade is published on the site). An opened box is never submitted as new — Google suspends for condition misrepresentation “without prior warning”.

Price anchors

Compare-at = verifiable current retail at mainstream ZA retailers, never an inflated RRP. Both prices visible on the product page. No blanket “-30%” claims anywhere in ads — per-item explained pricing only.

Qty-1 churn

Sold → out of stock via sync, never deleted (keeps Meta engagement history). Both platforms name a sold item still serving in ads as a policy violation — the sync isn’t optional.

PipeRoute on WooCommerce
Google Merchant CenterGoogle for WooCommerce (official, free): syncs catalog, condition mappable from the global pa_grade attribute with per-product override. Gap: no local inventory ads — closable later with CTX Feed Pro (~$119/yr), one filtered local feed per store.
Meta catalog + pixelMeta for WooCommerce (official): catalog + Pixel + Conversions API in one. Reviews are rough — we verify events fire after install, with the feed-URL + separate pixel plugin as the fallback path.
channels/feed-architecture.md §3–5, §8 · research/woocommerce-channel-plugins.md §1–2
Working session · iBall Media
To close today

Four decisions, then a four-week run order

1 · Hero Variant A or B2 · Badges: CSS route or theme builder3 · Banner handoff: PNG or HTML54 · Who owns the Modderfontein GBP
WeekWork
1 — FoundationsSchema type fix · banned-vocabulary sweep · pa_grade attribute + badges live · price format · category cleanup
2 — FaceHomepage hero build · trust strip sitewide · product-card pattern on shop loop + PDP · title formula on top 50 sellers
3 — FeedsGoogle for WooCommerce onboarding · condition mapping verified in GMC · Meta catalog + pixel/CAPI verified · retail anchors entered per item
4 — Air coverDisplay set + FB carousel live · page cover swap · GBP covers · first weekly GMC diagnostics review

Sequence matters: ads before the vocabulary sweep would pay to send already-sceptical shoppers to a page that confirms their scepticism. Fix the shelf, then shout.

Homeware&Tech
run order proposal — adjust with Mark’s capacity
Draft for sign-off · Vincent & Karl
Policy drafts · returns — full text in content/policies/returns-policy.md · not yet published

Returns: if it is not right, bring it back

Changed your mind? 7 days

Return within 7 days of receiving it, no reason needed, full refund. For online orders this is the law (ECTA cooling-off, delivery fee refunded too); the draft extends the same 7 days to in-store purchases so there is one promise, not two. Customer pays the return courier; bringing it to a store is free.

Faulty within 6 months

Repair, replacement or refund — the customer’s choice, per CPA section 56. Our 6-month warranty honours it in person at any store: no couriering to a manufacturer, no service-centre queue. Applies identically to all three grades.

What doesn’t count

The disclosed, photographed mark on a New – Unboxed, Light Marks item is not a defect — it was part of the price. Damage after purchase through misuse isn’t either. A real fault is always covered, whatever the grade.

Decision neededWorking position in the draft
Extend the 7-day change-of-mind to in-store purchases? Law only requires it online; extending is a brand promise with a real costDraft assumes YES — one unified window
Refund processing time5–10 business days, original payment method; store credit only ever as the customer’s choice
Final gateSA attorney review before anything is published
content/policies/returns-policy.md (draft 2026-07-14) · ECTA s44 · CPA s56 · research/existing-site-policies.md
Draft for sign-off · Vincent & Karl
Policy drafts · terms & conditions — full text in content/policies/terms-and-conditions.md · not yet published

T&Cs: what changes, and what we need from you

The warranty flips

The current site says the store “cannot warrant performance”. The draft replaces that with our 6-month in-store warranty on every grade — and drops the blanket “not liable for delivery delays” disclaimer, which doesn’t survive the CPA anyway.

One-of-each, in writing

“One available” means one. If two orders race, first completed payment wins and the other is refunded in full within 5–10 business days — never a substitute the customer didn’t choose. The retail reference price is defined: the mainstream SA retail price on the date we listed the item.

Legal identity gaps

ECTA requires the registered entity name, registration number and address on the site — currently none of these appear anywhere. The grading ladder goes into the terms verbatim, so listings, shelf tickets and legal text all match.

Needed before publicationFrom
Registered entity name + company registration number + VAT number — draft has [TBD] slots; cannot publish without themKarl
Payment gateway confirmation (draft says Yoco; old site says SnapScan) · courier coverage for outlying areas · Modderfontein trading hoursKarl / Vincent
Final gateSA attorney review
content/policies/terms-and-conditions.md (draft 2026-07-14) · ECTA s43–44 · CPA s19, s56 · POPIA
Proposal · Karl & Vincent
Part 4 · List once, sell everywhere — the distribution model

List once. Everywhere at once.

One listing · one source of truth

Website

Product page with grade badge, price pattern, damage note and home-store tag — live the moment staff hit approve.

Google

Shopping ads, Performance Max and free listings run off one synced feed — with per-store local listings the closable next step, so "near me" sees it on the shelf at Sunnyside.

Facebook & Instagram

One catalog feeding the shop tab and Advantage+ catalog ads, with product sets by grade, store and availability.

In store

The same record prints the label, loads the till and drives the shelf ticket. What the shelf says is what the feed says — never two versions of the truth.

Staff do one thing — photograph and approve the listing. The system does the rest: every channel inherits the same grade, price-with-reason and photos, with each channel’s technical condition fields mapped by rule, never by hand. The next two slides are the two pipes that make this real on WooCommerce; the section after is the till that closes the loop.

channels/feed-architecture.md §1–2 · research/woocommerce-channel-plugins.md
Proposal · Karl & Vincent
Pipe one · Google for WooCommerce (official plugin, free)

The Google pipe: one feed, three surfaces

Synced, not uploaded

The plugin talks to Merchant Center over Google’s API — no spreadsheets, no feed files. Price and stock changes flow through as they happen, which is what qty-one stock demands: the moment an item sells anywhere, its listing follows.

Condition mapped by rule

The grade attribute maps to Google’s machine condition field by category rule, with a per-product override. Sealed stock feeds as new; an opened box never does — the honesty rule that keeps the Merchant Center account safe is enforced by configuration, not by memory.

Sold ≠ deleted

A sold item flips to out of stock and drops out of ads and listings on its own. We never delete it — the listing keeps its history for the 1–2 week tail where Google and Meta still use it to steer shoppers to similar in-stock items.

What runs on itDetail
Free listingsUnpaid product results across Google Search and the Shopping tab — the zero-budget baseline every item gets.
Shopping ads + Performance MaxCampaigns run off the same synced catalog, segmented by grade, store and price band via the custom labels the feed carries.
Local listings per store — next stepThe official plugin doesn’t do local inventory feeds yet; CTX Feed Pro (~$119/yr) adds one local feed per store so Maps and “near me” can say in stock at Mall@Reds.
research/woocommerce-channel-plugins.md §1 (fetched 2026-07-08) · channels/feed-architecture.md §3, §5
Proposal · Karl & Vincent
Pipe two · Meta for WooCommerce (official plugin, free)

The Meta pipe: ads that manage themselves

One catalog, three jobs

The plugin syncs the catalog to Meta and installs the Pixel and Conversions API in one go. That single catalog powers the Facebook and Instagram shop tab, Advantage+ catalog ads, and retargeting — and can link to a WhatsApp Business catalog for free.

Built for stock that comes and goes

This is the piece designed for our reality: a new arrival lands in the catalog and Advantage+ starts showing it — nobody builds an ad. It sells, the availability flips, and it leaves the ads on its own. With one-of-each stock, the ad account maintains itself.

Product sets do the targeting

Sets are saved filters on the catalog: everything in stock, per-store stock for radius ads around each branch, Sealed-only, or deal sets filtered on how far an item sits below its retail anchor. Campaigns point at a set once; stock flows through it forever.

Eyes open: this official plugin has the roughest reviews in the whole stack, so the plan is install, verify events fire, and keep the tested fallback ready — a feed-plugin catalog URL with the official plugin kept only for Pixel and Conversions API duty. Either route ends at the same Meta catalog and the same self-managing ads.

research/woocommerce-channel-plugins.md §2 (fetched 2026-07-08) · channels/feed-architecture.md §5, §7
Proposal · Karl & Vincent
Part 5 · Point of sale

One catalog. Three tills. Yoco closes the circle.

The website went to WooCommerce. The feeds run off WooCommerce. The last system still living on its own island is the till. This section is the scoping the “two viable routes” slide promised — the plan to fix that, and why the till should be Yoco.

Homeware&Tech
research/woocommerce-pos-viability.md (2026-07-22/23)
Proposal · Karl & Vincent
The problem on the counter today

Why Pilot goes

Two systems, two truths

Every item is captured twice — once in Pilot, once on the website — and the two never agree for long. Double the admin on the way in, silent mismatches on the way out.

No door in

Pilot publishes no public API or developer documentation; its known integrations (Sage, Xero, delivery platforms) run through partner arrangements with Pilot, not anything we can build on ourselves.

The suspicion cost

An item sells in store and keeps advertising online. Google names that exact situation a misrepresentation trigger — and a customer who drives out for it feels cheated. The brand exists to remove suspicion; a disconnected till manufactures it.

We assessed the whole field — POS plugins, cloud platforms, a desktop POS, a newcomer, and keeping Pilot — against the same checklist: three stores, Rand, barcodes, VAT invoices, and one catalog. The comparison is at the end of this section.

research/woocommerce-pos-viability.md §1, §6 · pilot.co.za + developer-subdomain check (2026-07-22)
Proposal · Karl & Vincent
The architecture — list once, sell everywhere, settle once

Five steps. One truth.

1

List once

Item is captured in WooCommerce only: photos, grade, damage note, price, per-unit SKU.

2

Print the label

Woo prints the SKU as a barcode label at intake. The label on the box is the unit — grade and damage note included.

3

Load the tills

A generated file carries new items into Yoco each morning — same-day once Yoco confirms automation (question 1, final slide).

4

Sell anywhere

Cashier scans the label, takes card or cash on the same device. Staff can only scan what is physically in the room.

5

One ledger

Seconds later the sale is a real WooCommerce order. The website, Google and Meta drop the item automatically.

VAT invoice from Woo

Every till sale mirrors into WooCommerce, so the proper VAT tax invoice prints or emails from one system. The Yoco slip is just the card receipt.

Blended revenue, one report

Online and all three stores land in the same order list, tagged per store. The number this whole project is measured on comes from one screen.

One settlement stream

With Yoco as the online gateway too, card money from the website and all three tills settles through one account — and can even deposit per store if we ever want that.

research/woocommerce-pos-viability.md §6c (mirror-order architecture, Yoco developer docs verified 2026-07-23)
Proposal · Karl & Vincent
The till itself — supported hardware, SA company, help centre

The counter runs on Yoco

Yoco Counter

Yoco Counter — R2 999

All-in-one countertop till with the Neo Touch card machine included. Runs on wifi with battery backup for load shedding. Takes the barcode scanner and Yoco receipt printer. Was R4 999.

Yoco Khumo handheld

Khumo Print 2 — R1 499

Handheld till with the receipt printer built in, its own multi-network SIM (R49/month) and an 18-hour battery — sells through wifi outages. Khumo 2 without printer: R699.

Yoco barcode scanner and printer

Scanner & printer add-ons

Bluetooth barcode scanner (1D + QR) and the Yoco receipt printer pair with the Counter. Add-on pricing per store confirmed with the rep.

Card, cash & split paymentsRefunds at the tillStaff profiles & permissionsSIM-equipped handhelds as outage backupSA support: chat 08:00–17:00 daily + help centre

The custom part of this solution is deliberately small: one lightweight sync service we own. The part cashiers touch all day is purpose-built hardware from a South African company with local support.

yoco.com/za/point-of-sale (prices & images, 2026-07-23) · support.yoco.help
Proposal · Karl & Vincent
Running costs — software is free; the card rate is the price

What it costs

ItemCore plan (R0/month)Pro plan (R499/month per location)
POS softwareFree — included on every deviceAdds advanced accounting integrations, staff permissions, fast payouts, multi-location tools
Card rate — debit2.30% · 1.35% in the R50 000–R200 000/month band1.95% · 1.20% in the R50 000–R200 000/month band
Card rate — credit2.30%2.15%
Above R200 000/month per storeCustom rates — negotiated with the rep. At our volumes this is the conversation that matters most.
Hardware, once-offCounter R2 999 per store · Khumo Print 2 R1 499 (+R49/month SIM) · label printer for intake ±R2 000–R4 000 · scanner/printer add-ons priced with the rep
The sync serviceBuilt and owned in-house; runs on our existing Cloudflare setup at effectively R0/month

Rates from yoco.com/za/fees, July 2026, excl. VAT; lower bands apply once volume qualifies (Yoco reviews after three months — lowered rates never go back up). A middle Plus tier (R249/month) sits between these two. Cash sales carry no processing fee. For contrast: the plugin alternatives cost R2 400–R44 000 per year in licences — and still leave card payments as a separate, manually reconciled machine.

yoco.com/za/fees (2026-07-23, excl. VAT) · research/woocommerce-pos-viability.md §6b
Proposal · Karl & Vincent
Every option, one checklist

The field we tested

Yoco + syncFooSalesOliver POSWCPOS ProHikeWooPOS
Card machine integrated with tillYes — same deviceNo — manualNo — manualNo — manualNo — manualNo — manual
Till survives wifi / website outageYes — SIM handhelds; Counter on battery backupClaimedClaimedNo — browse onlyLimitedYes — local database
Support in South AfricaSA company, daily chatCape Town vendor, emailOverseas, complaintsSolo developerOverseasJoburg partner
New items reach the till automaticallyMorning file — asking Yoco to automateYes — nativeYes — nativeYes — nativeVia connectorVia connector
Software cost / year, 3 storesR0–R18k*≈R8k≈R9k≈R2.4k≈R13–22k (per-outlet pricing TBC)≈R43k+

*R0 on Yoco’s free plan; R499/month per location (≈R18 000/year across three stores) if we take the Pro tier for its lower card rates — which the rates themselves pay back. Also assessed and set aside: Posoria (two months old, unproven) and keeping Pilot (no integration path).

research/woocommerce-pos-viability.md §6b–6c · vendor sites verified 2026-07-22/23 · costs at ±R18/USD
Decision needed · Karl
Where this stands

95% sure. Five questions close the rest.

#To confirm with YocoIf the answer is no
1Can we push products and stock programmatically each morning? (API or supported automation)The morning file import stays a two-minute manual step
2Does the Counter support a cash drawer that kicks open on a sale?Manual-key drawer at the counter
3Does re-importing the product file update existing items?Sold items cleared from the till during the daily check
4Laybys on Yoco POS?Laybys run as deposit orders in WooCommerce
5Can different terminals settle to different bank accounts?One Yoco account per store achieves the same

Happy with this direction? Then we ask Yoco for an on-site visit.

Yoco · WhatsApp +27 79 074 3720 · live chat at yoco.com, 08:00–17:00 daily · help centre: support.yoco.help. First step after sign-off: the five questions above, then a one-store proof run at Sunnyside alongside Pilot.

contact channels: yoco.com/za/contact (2026-07-23) · plan: research/woocommerce-pos-viability.md §6c