Published 2026-06-25

How Pikapet unified Shopify and Square loyalty (case study)

How a Melbourne pet retailer unified 4,500+ loyalty profiles across Shopify online and Square in-store — architecture, staff scripts, and lessons for hybrid retailers.

By Lance · Founder, SamePoints (Shopify + Square loyalty)

Flow diagram of Pikapet Shopify online and Square store syncing to one SamePoints loyalty ledger

Short answer: Pikapet — a premium pet retailer in Melbourne with Shopify online and Square in-store at QV Centre — unified loyalty by replacing split systems with one payment-webhook ledger. Today 4,500+ customer profiles share one balance visible on the Shopify site, with Square earn flowing in automatically when staff capture phone at checkout. SamePoints is the product that grew out of that deployment.

This is the merchant-facing case study behind the homepage quote: "On busy weekends someone would ask if we had a membership — and we had to say it only counted on the website."

Store profile

Brand Pikapet — premium pet food and accessories
Online Shopify storefront
In-store Square POS, QV Centre Melbourne
Challenge Online-only loyalty while foot traffic asked about membership at the till
Outcome One balance on website; Square payments earn into same ledger

Inventory sync was solved by other apps. Loyalty was not — until we built the pipe documented in From n8n to SamePoints.

The pain (before sync)

Three recurring moments:

  1. The membership question — weekend queue, customer asks if in-store purchases count. Staff could only offer website-only points. Visible disappointment.
  2. Split profiles — same person as email@shopify online and anonymous Square payment in-store.
  3. Refund anxiety — partial returns on heavy SKUs; manual spreadsheets do not reverse points fairly.

Alternatives evaluated:

Option Why we passed
Square Loyalty Separate program; no Shopify balance; extra subscription
Smile.io on Shopify Strong for online; no Square payment earn on free/paid tiers we tested
Manual CSV exports Broke every busy Saturday

We needed Shopify + Square sync loyalty — not another marketing hub.

What we built (high level)

Shopify orders/paid ──┐
                      ├──► Ledger (Postgres) ──► Shopify metafields
Square payment.updated ┘              │
                                      └──► Gift card at threshold (optional)

Principles:

  • Payment webhooks, not Square Loyalty API — avoids double earn
  • Postgres ledger as source of truth; Shopify metafields as display layer
  • Refund-safe — proportional point reversal on Shopify and Square refunds
  • Phone-first matching for AU in-store (phone guide)

Same architecture now ships as SamePoints on the Shopify App Store. Technical deep dive: n8n → product story.

Rollout timeline (operator view)

Phase 1: Online-only baseline (Shopify)

  • Points per dollar on paid orders
  • Theme wallet on customer account (show points guide)
  • Gift card auto-issue at threshold — not discount codes (why gift cards)

Phase 2: Square connect

Phase 3: Staff behaviour

Printed script at till:

"Same rewards as our website — what's your mobile? I'll add it before we tap."

Not optional on loyalty asks. Without identity, payment completes but no earn row attaches.

Phase 4: Historical cleanup

Results (qualitative + operational)

We report operational metrics, not guaranteed ROI:

Signal Observation
Loyalty profiles unified 4,500+ customers in one ledger
Points in circulation 650,000+ points tracked (earn minus redemptions/refunds)
Till conversation "Online only" script removed
Support theme "Wrong balance" tickets dropped after merge pass
Customer-facing surface One number on Shopify account / Rewards launcher

Numbers reflect Pikapet's deployment scale as of product launch marketing — your store will differ. The pattern — sync beats split — is what generalizes.

What we deliberately did not build

Aligned with SamePoints positioning:

  • No built-in ESP or Smile-style email suite — Shopify gift-card notification + merchant Klaviyo/Flow
  • No VIP tiers or referral engine in v1 — sync accuracy first
  • No Square Customer Display loyalty injection — Square does not expose that surface to third-party apps

Honesty here increases trust with hybrid merchants evaluating apps.

Lessons for other Shopify + Square retailers

1. Pick one earn authority

If the website shows the balance, the website's ledger must own earn from both channels. Two programs = two truths.

2. Identity is the product

Technology is table stakes. Phone at Square checkout is the behavioural product. Train it like opening the till.

3. Refunds are loyalty moments

Pet SKUs get returned (wrong size, pet refused new food). Automatic reversal beats awkward manual adjustments. See Shopify refunds + loyalty.

4. Display on Shopify, earn everywhere

Customers check balance on the Shopify theme wallet, not on Square Customer Display. Staff direct shoppers to phone browser or account page when asked at till.

5. Migrate before you market

If you are on Smile or Square Loyalty, migrate balances first, then announce "one program everywhere."

Comparison: before vs after

Before After
Online earn Yes Yes
In-store earn No / separate program Yes — Square payments
Customer sees Website only One balance on site
Staff script "Online only" "Same mobile as website"
Refunds Manual / inconsistent Ledger automation
Double earn risk Square Loyalty + app Square Loyalty off

If you are a pet store (or any hybrid retailer)

You do not need Pikapet's exact SKU mix to copy the playbook:

  1. Read why pet stores lose loyalty with Square + Shopify
  2. Install SamePoints from Shopify Admin (free tier: 300 processed syncs/month)
  3. Connect Square; disable Square Loyalty
  4. Enable Rewards launcher in theme editor
  5. Run one-week staff drill on phone capture

Broader AU context: omnichannel loyalty for Australian merchants.

FAQ

Is Pikapet still using SamePoints?

Yes — SamePoints began as their production integration and remains the reference deployment for Shopify + Square hybrid loyalty.

Can I get the same results without a physical store?

Shopify-only merchants use SamePoints for online earn, refund-safe ledger, and gift cards. Square is optional — connect when you add in-store.

Did Pikapet use Square Loyalty?

No. Square Loyalty was turned off to prevent a second points currency. Payment webhooks feed the same ledger as Shopify orders.

How long did rollout take?

Online baseline in days; Square staff habit + duplicate merge took two to three weeks of part-time ops attention — not a six-month IT project.

What is SamePoints?

SamePoints is a Shopify app that syncs loyalty across Shopify paid orders and optional Square completed payments into one refund-safe ledger, displayed via Shopify customer metafields and theme wallet sections. Optional auto gift cards at your threshold.

Start free on Shopify Admin or read the Square setup guide. Built because nothing else synced Pikapet's till and website — now available to any merchant with the same pain.

Related articles

Ready to unify Shopify and Square loyalty? Install the app, connect Square in Settings, and verify events in Logs.