Zum Hauptinhalt springen
tsecurity.de LIVE
Echtzeit-Radar & Feeds
Alle RSS Feeds
👥 Community & Social
Sichere ProgrammierungRefreshed repository pull requests page generally available(22.09.2026 um 03:25 Uhr)
Sichere ProgrammierungThe Joy of Learning the Basics Again(22.09.2026 um 03:28 Uhr)
Sichere ProgrammierungZero-Code OpenTelemetry Tracing for Dagster(22.09.2026 um 03:39 Uhr)
Linux Tipps & Hardening`prime-all`(22.09.2026 um 02:28 Uhr)
IT Security Toolsopensoho v0.15.2(22.09.2026 um 03:33 Uhr)
IT Security NachrichtenUS Proposes AI Incident Alert System in Talks With China, Bessent Says(22.09.2026 um 04:01 Uhr)
Sichere ProgrammierungRefreshed repository pull requests page generally available(22.09.2026 um 03:25 Uhr)
Sichere ProgrammierungThe Joy of Learning the Basics Again(22.09.2026 um 03:28 Uhr)
Sichere ProgrammierungZero-Code OpenTelemetry Tracing for Dagster(22.09.2026 um 03:39 Uhr)
Linux Tipps & Hardening`prime-all`(22.09.2026 um 02:28 Uhr)
IT Security Toolsopensoho v0.15.2(22.09.2026 um 03:33 Uhr)
IT Security NachrichtenUS Proposes AI Incident Alert System in Talks With China, Bessent Says(22.09.2026 um 04:01 Uhr)
Intelligence View
⚡ tsecurity.de Intelligence

How we built a live has_active_wishlist flag for Shopify (and why it was harder than it looks)

Most Shopify wishlist apps have the same quiet flaw: the wishlist data lives in the app, and the merchant's email platform never sees it. The store knows who wants what — but can't email on it. We built WishList Ninja to fix exactly that. …

0
↗ Quelle (dev.to)
Reagiere als Erste:r — dein Feedback zählt!

Most Shopify wishlist apps have the same quiet flaw: the wishlist data lives in the app, and the merchant's email platform never sees it. The store knows who wants what — but can't email on it.



We built WishList Ninja to fix exactly that. Here's how the interesting bits work.






The core idea: profile properties, not just events



Everyone fires events ("Added to Wishlist"). Events are fine for triggering flows, but useless for segmentation — you can't build a clean segment of "people with items saved right now" from a two-month-old event.



So on every save/remove we write profile properties to Klaviyo, Mailchimp or Omnisend in real time:





  • has_active_wishlist — true only while the wishlist has items in it


  • wishlist_count — items currently saved


  • wishlist_value — what they're worth


  • top_saved_item — the product they want most



That first flag sounds trivial. It isn't.



Why a boolean was the hard part

**

has_active_wishlist has to flip **false
again — otherwise it's just "has ever used the wishlist," which is worthless. So every path that empties a wishlist has to re-evaluate it:




  • shopper removes the last item ✅

  • shopper buys the last item (orders webhook marks items purchased) ✅

  • guest list merges into an account ✅

  • and the subtle one: saved collections don't count. A shopper following a collection but holding zero items is not "active intent." Items only.



One rule, five code paths. The rule lives in exactly one function so the paths can't drift apart.



*7 flow triggers from 2 webhooks

*


The email moments merchants actually want are mostly store-side changes, not shopper actions:



Added to Wishlist · Price Drop · On Sale · Low Stock · Back in Stock · Collection Saved · New in Saved Collection



Five of those seven come from diffing products/update webhooks against what shoppers have saved: price went down → find everyone holding that product → fire Price Drop into their ESP. No polling, no cron scanning the catalog.



*Multi-ESP fan-out without domino failures

*


Supporting three ESPs means three APIs that can each be down, rate-limited, or misconfigured. Early version: Klaviyo throwing meant Mailchimp and Omnisend never got the event. Bad.



Now each delivery is isolated — a failure is caught and logged, and the job only retries if nothing was delivered. One dead API key can't block the other platforms.



*The storefront budget: ~12KB

*


The whole storefront (hearts on product cards, slide-out drawer, wishlist page, share links, save-for-later on the cart) is vanilla JS, minified to under ~12KB. No framework, no fonts, no CSS libraries. Core Web Vitals are a ranking signal; an app that slows the store is stealing from the merchant to fund itself.



*Stack

*


Laravel + MySQL + Redis on Cloudways, Shopify theme app extension for the storefront, Mailjet for transactional email — and a large amount of Claude Code for the build itself.



Launching on the Shopify App Store now. If you run (or build for) a Shopify store, I'd love your take: wishlist-ninja.com 🥷



Happy to go deeper on any of this in the comments — especially the webhook diffing.

Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten How we built a live has_active_wishlist flag for Shopify (and why it was harder than it looks)

Thematisch verwandte Begriffe: built, live, hasactivewishlist, flag · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Zum Aktualisieren ziehen
ZERO-DAY CVE-2026-61647 | NotebookLM MCP is an MCP server and HTTP service for interacting with Go…
Advisory →
TTS Reader • tsecurity.de Voice
tsecurity.de Icon
tsecurity.de App
Offline-Lesen, Eilmeldungen & 0ms Ladezeit

Installiere tsecurity.de direkt auf deinen Home-Bildschirm für das ultimative Vollbild-Magazinerlebnis ohne Browser-Leisten.

Nächster Beitrag
Themen-Radar & Intelligence Matrix
Echtzeit-Taxonomie nach Angriffsvektoren & Plattformen

tsecurity.de Live Threat Radar

🔴 LIVE RADAR
MONITORING
AKTIV
CVE-DATENBANK
LIVE
🔍
Community Radar & Live Chat
Sentinel Bot online • Live-Stream
Dein Cluster: Security Explorer
Match:
lädt…
Verbindung zum Community-Stream wird aufgebaut...
Bearbeitungsmodus — Senden überschreibt deine Nachricht
Community-Puls — was gerade passiert
lädt…
Aktivitäten deiner Analysten
lädt…
Neues Thema oder Eilmeldung einreichen

Reiche interessante Links, Zero-Days oder Debatten ein. Die Community entscheidet per Upvote über die Veröffentlichung.

Heiß diskutierte Einreichungen
🔖 Gespeicherte Artikel
📂 Keine gespeicherten Artikel vorhanden.
Zurück Ziehen Vor
Links: vorheriger Artikel Rechts: nächster Artikel unten: schließen
News NIS-2 Frühwarnung Tier-1 Intel ⏱️ 3 Min vor 10 Min
Artikeldaten werden geladen...

Zurück: vorheriger Vor: nächster
↗ Original-Quelle
Social Reaktionen Deine Reaktion zählt
Einstufung & Relevanz-Poll 0 Stimmen
In sozialen Netzwerken teilen 1-Klick