Guides
Technical guides for South African operators.
The install and configuration guides we refer clients to — payments, pixels, couriers, POPIA and the dev stack. Written for Rand revenue, SA couriers, and the real quirks vendor docs gloss over.
Analytics
Measurement setup that actually reflects South African traffic — first-party, POPIA-aware, and tuned for Rand revenue reporting.
-
GA4 Shopify Setup for South African Stores
This guide installs Google Analytics 4 on a South African Shopify store so that purchase revenue reports in Rand and behavioural events respect POPIA. Shopify routes checkout on a second subdomain on every plan below Plus, which breaks GA4 sessions unless you configure it correctly. We cover the install, the cross-domain fix, ZAR currency tagging, and POPIA consent wiring.
Read guide -
Google Tag Manager Setup for South African Sites
Google Tag Manager gives South African marketers a single place to manage GA4, Meta Pixel, TikTok, and Google Ads tags without pestering a developer every sprint. This guide covers the GTM install, POPIA-aligned Consent Mode, a data layer that works on Shopify and custom stacks, and the triggers you need before any tag fires. Written for SA teams running Payfast or Peach checkouts.
Read guide -
Cloudflare Web Analytics Setup for South Africa
Cloudflare Web Analytics is the easiest privacy-first measurement tool for South African sites. It is cookieless by design, so it does not need a POPIA banner, and it is free on every Cloudflare plan. This guide walks through adding it to a Cloudflare-proxied domain, a non-proxied site, and Shopify — plus how to read the Core Web Vitals report that matters for Google rankings on Telkom and Vumatel home fibre.
Read guide -
Microsoft Clarity Setup for South African Stores
Microsoft Clarity gives South African operators free session replays, heatmaps, and rage-click detection — unlimited, no plan tiers. It is the fastest way to see why Cape Town mobile users bail at checkout, or why the Johannesburg fibre crowd hovers the size selector and leaves. This guide covers install, POPIA-safe PII masking, and wiring it to GA4 so you can jump from a revenue dip straight into the replay.
Read guide -
PostHog Setup for South African Products
PostHog is the analytics and product suite South African SaaS and ecommerce teams reach for when GA4 runs out of depth. This guide covers picking EU Cloud (closest region to SA), installing the JS SDK with POPIA-aligned defaults, wiring Shopify checkout events, and running the first funnel. We also cover reverse-proxying through Cloudflare to beat ad blockers on Telkom ADSL.
Read guide
Pixels
Server-side and client-side pixel install guides for SA stores, including iOS 14 + consent-mode realities the vendor docs skip.
-
Meta Pixel Setup for South African Shopify Stores
Meta Pixel on a South African Shopify store has to survive iOS 17 tracking restrictions, POPIA consent, and Shopify's checkout domain split. This guide installs the Pixel via Shopify's native integration, adds the standard events Meta expects (ViewContent, AddToCart, Purchase) with ZAR values, and sets you up to pair with Conversions API so you recover the 30 to 45 percent of iOS signal Apple strips client-side.
Read guide -
Meta CAPI Setup for Shopify in South Africa
The Meta Conversions API (CAPI) is how South African Shopify stores recover the 30 to 45 percent of iOS and Safari conversions that client-side Pixel now loses. This guide covers the CAPI install options — Shopify native, Stape server-side GTM, or a custom Cloudflare Worker — plus event deduplication, POPIA-safe hashing of SA identifiers, and the Meta Event Match Quality score you need above 7.0 for Advantage+ shopping to bid aggressively.
Read guide -
Google Ads Conversion Tracking for South African Stores
Google Ads Conversion Tracking tells Google which clicks end in a Rand. Smart Bidding strategies like tROAS depend on it being accurate. This guide installs the conversion tag on Shopify (or any SA site), fires Purchase in ZAR, sets up Value Rules for VAT-inclusive vs VAT-exclusive reporting, and walks through the deduplication trap that halves revenue in Ads reports for most SA merchants.
Read guide -
Google Ads Enhanced Conversions for South Africa
Enhanced Conversions send hashed first-party data (email, phone, name, address) alongside the standard Google Ads conversion so Google can match signed-in users across devices. For South African merchants losing iOS 17 and ITP signal, this typically recovers 10 to 15 percent of unreported conversions and makes Smart Bidding behave again. This guide covers both modes: Enhanced Conversions for Web (tag-based) and via API (server-side), with SA-specific data normalisation.
Read guide -
TikTok Pixel Setup for South African Stores
TikTok has exploded in South Africa since 2023 and the Pixel is how you feed Spark Ads and Shop Ads the conversion signal they need. This guide installs the TikTok Pixel via the Shopify app or a custom install, fires Purchase in ZAR, adds the TikTok Events API for server-side reliability, and handles the POPIA consent flow that most TikTok docs skip because they assume US / EU.
Read guide -
LinkedIn Insight Tag Setup for South Africa
LinkedIn Insight Tag is the B2B measurement layer most South African agencies and SaaS teams need but skip. It powers Matched Audiences, conversion tracking, and demographic reports for SA decision-makers (IT procurement, finance, fintech). This guide installs the tag, fires a purchase or lead conversion in ZAR, configures the Conversions API for server-side reliability, and handles POPIA consent for LinkedIn's EU processor stack.
Read guide
Payments
Local payment gateway integrations — Payfast, Yoco, Peach, Ozow, Stitch and Stripe — configured for ZAR, EFT, and SA fraud patterns.
-
Payfast Shopify integration for South African stores
Payfast has been the default Shopify payment rail for most South African merchants since the early 2010s, long before Stripe opened a local entity. It covers card, Instant EFT, Mobicred, SnapScan and Masterpass from a single checkout, but Shopify does not ship a native Payfast app — you integrate it as a Manual Payment Method or through a third-party bridge. This guide walks through the direct cart redirect flow, signature generation, the ITN (Instant Transaction Notification) callback, and the sandbox-to-live swap every ZA merchant trips over on launch day.
Read guide -
Yoco online payments setup for South African stores
Yoco built its brand on the little blue card reader you see at every Cape Town coffee shop, but the Online Payments product is a separate SKU with its own API, dashboard section and fee structure. If you already use Yoco in-person, the online integration is the cleanest way to unify settlement. This guide covers the Online Checkout API, creating one-off checkout links, verifying webhook HMAC signatures, and the couple of quirks that trip up SA merchants migrating from card-present-only.
Read guide -
Peach Payments Shopify integration for South African stores
Peach Payments leans enterprise — it is the gateway behind a large slice of South African mid-market and corporate ecommerce, with a product stack built on the old Oppwa/ACI engine. That heritage means more knobs (multiple channels, risk rules, recurring, tokenisation) and slightly more paperwork than a Yoco or Ozow signup. Peach ships a native Shopify app, so the integration path is much cleaner than the Manual Payment Method dance Payfast and Yoco require. This guide covers both the drop-in COPYandPAY widget and the Hosted Payment Page (HPP) redirect, plus webhook validation.
Read guide -
Ozow Instant EFT setup for South African stores
Ozow pioneered instant EFT in South Africa — the buyer authenticates inside their own internet banking session with FNB, Absa, Standard Bank, Nedbank, Capitec, Investec or Tyme, and Ozow confirms the clearing to you in near real time. It is not a card processor, it is a bank-to-bank rail, which means lower fees but zero chargeback protection. Most SA Shopify stores offer Ozow alongside a card gateway rather than as the only option. This guide covers the SiteCode plus HashCheck flow, SHA512 hash generation, and the notify/redirect split.
Read guide -
Stitch Money integration for South African stores
Stitch is the newer-generation pay-by-bank stack out of South Africa — think open-banking-style connectivity across FNB, Standard Bank, Absa, Nedbank, Capitec and Investec, with a GraphQL API and proper OAuth2. Where Ozow is a one-shot redirect, Stitch gives you PaymentInitiation, LinkPay (tokenised recurring pulls from a linked bank account), and account-to-account refunds. It is the gateway we reach for when a SA merchant needs recurring debit without card rails. This guide covers the client-credentials OAuth flow, the PaymentInitiation GraphQL mutation, and webhook verification.
Read guide -
Stripe South Africa setup guide
Stripe went GA in South Africa in 2024 after years of Atlas-only access, and it is now a realistic option for SA-registered businesses that want a modern card-processing stack. You get ZAR payouts to a local bank account, the usual Stripe SDKs, Checkout, Payment Links and Apple Pay. The rough edges are real though: dispute/chargeback tooling in South Africa is more limited than in the US/EU, recurring billing via Stripe Billing works for some currencies but not fully for ZAR in every scenario, and payout timing is slower than a local gateway. This guide walks through account activation, Apple Pay domain verification, webhook setup and the constraints to budget for.
Read guide
Shipping
Courier and locker integrations tuned for the South African last mile, with real pricing and service-area caveats.
-
Courier Guy Shopify Integration for South African Stores
A Courier Guy Shopify integration is the default shipping choice for most South African Shopify stores, and for good reason: national overnight coverage, solid tracking, and pricing that makes sense from Cape Town to Polokwane. This guide walks through three install paths — the official Shipnode app, a Bob Go aggregator setup, and a direct REST API build for waybill generation and POD webhooks. You will see the real trade-offs around suburb-level rate shopping, outlying-area surcharges, overnight versus economy, and the tracking page customers actually open from SMS and WhatsApp. Everything here assumes a Shopify store selling into South Africa with a live Courier Guy account number.
Read guide -
PUDO Locker Integration for South African Shopify Stores
A PUDO locker integration in South Africa unlocks the cheapest legitimate ecommerce shipping tier in the country — roughly R60 to R120 per parcel, with 24/7 self-service collection at PEP stores and standalone PUDO units. PUDO (run by The Courier Guy) covers more than 500 lockers across South Africa, and Shopify stores can plug in via Bob Go, Shiplogic, or a direct API build. This guide covers locker-to-locker versus door-to-locker flows, size classifications from XS to XL, the 7-day collection window, pickup-code delivery, and the Shopify checkout mechanics that make customers actually pick the locker option instead of defaulting to door delivery.
Read guide -
Bob Go Shopify Integration for South African Ecommerce
A Bob Go Shopify integration lets a South African store rate-shop across Courier Guy, PUDO, Aramex, Fastway and other couriers from one dashboard, one API, and one invoice. Bob Go (formerly Shiplogic) is the aggregator most SA Shopify stores reach for once they outgrow a single-courier setup. This guide covers the account setup, API key generation, the Bob Go Shopify app install, webhook registration for collections and tracking, label and commercial invoice generation, and the fallback logic you need when an upstream courier's rates API goes stale. Expect a working multi-courier checkout inside an afternoon.
Read guide -
Aramex South Africa Shopify Integration
An Aramex South Africa Shopify integration is the go-to when you ship internationally from South Africa or serve B2B contracts requiring the Aramex brand. Aramex SA covers domestic overnight, economy, and international exports from Johannesburg, Cape Town and Durban, with stronger lanes into the Middle East, Europe and rest-of-Africa than most local couriers. This guide walks through account setup, the Aramex Shopify app versus Bob Go aggregation, live rates at checkout, and the international shipping details that matter: HS codes per product, commercial invoice fields, incoterms, and the customs declaration flow that keeps SARS happy on export.
Read guide
Compliance
POPIA cookie consent, SARS VAT, and the regulatory plumbing SA operators keep asking us about.
-
POPIA Cookie Consent Banner for South African Sites
A POPIA cookie consent banner is a legal requirement for any South African website that uses cookies or pixels to process identifiable personal information — which is almost every ecommerce store. The Protection of Personal Information Act (POPIA), specifically section 69 and the direct marketing provisions, treats identifying cookies, pixels, and fingerprinting as processing that requires informed consent. This guide gives you the legal context, a compliant banner in plain language, a Google Consent Mode v2 default-deny implementation for GTM, a clean custom HTML and JS example, and the GTM triggers that stop Meta Pixel, GA4 and TikTok from firing until the visitor actually consents. Note that this is practical guidance, not legal advice — confirm with your Information Officer.
Read guide -
SARS VAT Shopify Setup for South African Stores
A correct SARS VAT Shopify setup is what separates a store that survives a SARS audit from one that owes hundreds of thousands in back-taxes. The rules are specific: 15 percent VAT on taxable supplies, mandatory VAT registration once 12-month turnover crosses R1 million (voluntary below that), consumer-facing prices must be VAT-inclusive under the Consumer Protection Act, and exports qualify for zero-rating only if you hold proof of export for five years. Shopify's default tax settings and the 'Automatic' tax option are not reliable for South Africa — manual configuration is required. This guide walks through VAT registration thresholds, Shopify tax settings, zero-rated exports, digital services rules, and the compulsory SARS tax invoice fields for orders over R5,000. None of this is legal or tax advice; verify with a registered SA tax practitioner before filing.
Read guide
Dev Stack
Deployment, hosting, and data-stack guides for SA teams — Cloudflare Workers, Shopify Hydrogen, Supabase, and the email layer.
-
Deploy Astro to Cloudflare Workers from South Africa
If you host a .co.za site on Afrihost, Xneelo or WebAfrica shared hosting, you already know the pain — TTFB north of 600ms from a Johannesburg visitor, and PHP stack tax on every request. Moving an Astro build onto Cloudflare Workers lands your site on the JNB and CPT points of presence, so a fibre user in Sandton or Claremont sees first-byte in under 40ms. This guide documents the exact wrangler.jsonc pattern we run on ecomsolve.co.za and a dozen client builds, including the custom domain binding that lets you keep your .za domain registered with Afrihost or domains.co.za while serving from Cloudflare. No SSR adapter, no origin server, no surprise renewal invoices in dollars.
Read guide -
Shopify Hydrogen in South Africa: setup and hard-won gotchas
South African brands scaling past R500k/month on a Liquid theme usually hit the same wall — Online Store 2.0 gives you flexibility but not performance, and Checkout Extensibility forces changes you do not want to ship. Hydrogen is Shopify's React + Remix framework running on Oxygen, Shopify's hosted edge (which is itself Cloudflare Workers under the hood). For a .co.za shop with a .co.uk or .com.au sister site, Hydrogen gives you one codebase, per-market currencies (ZAR, USD, GBP), and proper server-rendered performance. The caveats are real: Payfast is not a native Shopify Payments partner on Hydrogen headless checkout the way it is on Liquid, Oxygen egress bills in USD, and Hydrogen usually lags Remix major versions by 6–12 months. This guide walks the setup we use for SA merchants who have already outgrown Dawn.
Read guide -
Supabase from South Africa: latency, regions and caching patterns
Supabase does not host in South Africa. The closest regions are eu-west-1 (Ireland) and eu-central-1 (Frankfurt), and your cold Postgres query round trip from a Johannesburg fibre line sits around 170–180ms before you add TLS and connection overhead. That is fine for an internal tool; it is painful for a consumer app where a logged-in dashboard fires five queries on mount. This guide is the honest version — we run Supabase on several .co.za products, most visitors come through Vumatel, Openserve or MTN fibre, and the fix is not magic, it is caching reads at Cloudflare's JNB and CPT edges and keeping writes thin. We cover region choice, Supavisor connection pooling, edge function placement and the free-tier traps that will bite a SA indie builder before they even launch.
Read guide -
Resend email setup for South African senders
Most South African SaaS and ecommerce builders reach for SendGrid out of habit, then spend a day fighting the UI. Resend is the cleaner option — a clean API, React Email templates, and domain verification that completes in 10 minutes instead of 48 hours. For a .co.za sender, the hard part is not Resend itself, it is getting your DNS right at Afrihost, Xneelo or Cloudflare so that SPF, DKIM and DMARC align, and doing it in a way that does not send your first batch straight to the iAfrica, Mweb and Webmail junk folders. This guide walks the setup we use for our own transactional email (hi@ecomsolve.co.za), including POPIA-friendly double opt-in and the warming schedule we run for cold .co.za sender domains. Pricing is USD — the free tier covers 3,000 emails/month, Pro is $20/month for 50k — so budget for exchange-rate swings.
Read guide -
Cloudflare Workers email for South African teams
Cloudflare Email Routing is the quietly brilliant feature that every South African indie builder should know about. For a .co.za domain on Cloudflare DNS, you can route hi@yoursite.co.za, orders@yoursite.co.za and support@yoursite.co.za to a single Gmail or Outlook inbox — for free. Add Email Workers on top and you can parse inbound email, trigger webhooks, store messages in KV or D1, and send automated replies via Resend or Postmark. What Cloudflare Workers cannot do is send email directly over SMTP (no port 25 outbound), so the pattern is always: inbound via Email Routing → process in a Worker → outbound via a provider API. This guide documents the setup we use for ecomsolve.co.za and SA client stores where Shopify order webhooks kick off custom notification flows, all running at the JNB and CPT edge.
Read guide