Case study
Happy V – aplikacja Shopify na zamówienie
Happy V to amerykańska marka z obszaru zdrowia kobiet działająca w modelu direct-to-consumer, sprzedająca poparte badaniami klinicznymi probiotyki i suplementy przez Shopify, z istotnym udziałem subskrypcji i wielokanałowymi działaniami marketingowymi obejmującymi Meta, Google, TikTok i sieci afiliacyjne.
Projekt
Atrybucja marketingowa i automatyzacja cyklu życia klienta w Happy V działały na starzejącej się, współdzielonej aplikacji webowej opartej na SQL Server, obok zestawu niepowiązanych narzędzi konsolowych uruchamianych ręcznie. Taki układ był trudny w obsłudze, nie dawał żadnego wglądu w awarie i nie mógł skalować się wraz z rozwojem marki.
Zaprojektowaliśmy i dostarczyliśmy dedykowaną aplikację osadzoną w Shopify, która konsoliduje wszystkie integracje i procesy back-office w jednym, obserwowalnym systemie - i przenieśliśmy na nią całą operację bez przerywania ruchu produkcyjnego.
Wyzwanie
- Dane atrybucji marketingowej (500 000+ rekordów) znajdowały się na starym SQL Server współdzielonym z niepowiązanymi systemami.
- Zdarzenia konwersji wysyłane do platformy danych klienta często traciły identyfikatory kliknięć, co obniżało dokładność raportowania w platformach reklamowych i skuteczność retargetingu.
- Procesy biznesowe, takie jak tagowanie promocyjne i generowanie rabatów dla specjalistów, były wykonywane ręcznie przez aplikacje konsolowe.
- Nie było żadnego logowania, mechanizmu ponawiania ani sposobu, by stwierdzić, czy przychodzący webhook został faktycznie przetworzony.
Co zbudowaliśmy
Aplikacja osadzona w Shopify (API w .NET 8 + interfejs administracyjny w React Router 7) podzielona na samodzielne moduły, każdy z własnym interfejsem operacyjnym:
- Atrybucja marketingowa - publiczny endpoint zapisuje identyfikatory kliknięć (Meta, Google, TikTok) przy składaniu zamówienia i wzbogaca każdą konwersję wysyłaną do Twilio Segment, wraz z przeszukiwalnym podglądem pełnego zbioru danych.
- Potok konwersji - webhooki Shopify i Recharge generują wzbogacone zdarzenia Order Completed, ze ścisłą gwarancją jednej konwersji na zamówienie.
- Program próbek - Shopify Flow powiadamia aplikację, gdy klient otrzymuje próbkę produktu; aplikacja zapisuje ten fakt i przekazuje właściwości profilu oraz zdarzenia niestandardowe do Klaviyo, aby uruchomić dalsze przepływy.
- Tagowanie kupujących promocyjnych - skanuje zamówienia złożone w czasie promocji automatycznych i nadaje dedykowany tag klienta dla każdej kampanii.
- Rabaty dla specjalistów - odczytuje arkusz Google Sheet, generuje unikalne kody rabatowe dla każdego specjalisty i tworzy je masowo w Shopify, ze stronicowanym podglądem przed wykonaniem.
- Integracja afiliacyjna - uzgadnianie konwersji Refersion i ShareASale, w tym automatyczne anulowanie przy zwrotach i weryfikacja rejestracji afiliantów pod kątem sygnałów oszustwa.
- Narzędzia operacyjne - wspólny log aplikacji, licznik użycia endpointów pokazujący, które integracje są faktycznie używane, oraz inspektor webhooków z ręcznym ponowieniem.
Najważniejsze rozwiązania inżynieryjne
- Migracja danych bez przestoju - 550 000+ rekordów atrybucji przeniesiono z SQL Server do PostgreSQL, a następnie wykonano migrację różnicową w momencie przełączenia, tak aby żaden rekord zarejestrowany w trakcie przejścia nie został utracony.
- Trwałe przetwarzanie webhooków - przychodzące webhooki są natychmiast utrwalane i przetwarzane przez proces działający w tle, z ograniczoną współbieżnością, ponawianiem z wykładniczym opóźnieniem i kluczami idempotencji. Nic nie ginie przy restartach ani wdrożeniach, a nagłe skoki ruchu nie są w stanie przeciążyć usługi.
- Scalanie atrybucji - identyfikatory kliknięć są konsolidowane pomiędzy zamówieniami danego klienta, dzięki czemu konwersja nigdy nie jest raportowana z pustym polem, gdy wartość zapisano podczas wcześniejszej wizyty, co zauważalnie poprawia współczynniki dopasowania w platformach reklamowych.
- Optymalizacja wydajności - profilowanie działającego systemu wykazało warstwę dostępu do danych, która materializowała całe tabele w pamięci. Przepisanie krytycznych ścieżek na zapytania SQL wykonywane po stronie serwera zmniejszyło zużycie pamięci przez aplikację z 1,7 GB do 175 MB i wyeliminowało przekroczenia limitu czasu żądań przy obciążeniu produkcyjnym.
- Stopniowe przełączanie - każdy endpoint integracji odzwierciedla swoją starą ścieżkę, więc migracja każdego dostawcy webhooków sprowadzała się do jednej zmiany hosta, wykonywanej i weryfikowanej integracja po integracji.
Rezultat
Happy V prowadzi teraz cały stos atrybucji marketingowej i automatyzacji cyklu życia klienta na jednej, łatwej w utrzymaniu platformie. Ręczne procedury konsolowe stały się samoobsługowymi ekranami administracyjnymi, awarie integracji są widoczne i możliwe do ponowienia zamiast pozostawać niezauważone, a zależność od starego SQL Server została wycofana. Pokrycie atrybucji poprawiło się w mierzalny sposób dzięki scalaniu identyfikatorów kliknięć i wyeliminowaniu utraconych zdarzeń webhooków.
Technologie
.NET 8
C#
PostgreSQL
React
Shopify Admin GraphQL API- Twilio Segment
- Klaviyo