Skip to content
Client projectE-commerce · Flower delivery

Valeriia Flowers

Moved off WordPress with zero traffic loss, and Google clicks grew 3.5x.

Client
valeriiaflowers.md
City
Chișinău
Year
2026
Status
Live
Valeriia Flowers — E-commerce · Flower delivery
+257%Google clicks in the 28 days after migration
383products in three languages
1 581URLs in the sitemap
43geo landing pages for cities and districts
// Challenge

Challenge

Valeriia Flowers ran on WordPress + WooCommerce with plugins. The site was slow, delivery outside the city cost the same as within Chișinău, and paid orders sometimes stayed “unpaid” because bank notifications got lost. The migration couldn’t cost them their Google rankings or break old links.

// Solution

Solution

We moved the store to Nuxt 4 + Strapi 5, kept every URL with 301 redirects, rewrote the Paynet integration with double payment status checks, priced delivery by real road distance and added an AI consultant that an operator can take over from the admin panel.

// Project screens

Project screens

Mobile home page
AI consultant suggests three bouquets with prices
AI consultant finds a product by request
Home page: flower delivery across Chișinău and Moldova
Home page sections: catalog and benefits
Cross-sell: balloons, sweets and toys to go with a bouquet
Home page sections: reviews and trust
Product photo from the catalog
// What we built

What we built

Online store

  • Nuxt 4 SSR in RU, RO and EN, old root URLs preserved
  • Catalog with filters and sorting, filter state kept in the URL
  • Cart, wishlist and a “Complete the gift” cross-sell block
  • Checkout: delivery date and time, recipient details, card message
  • 43 geo landing pages for Moldovan cities and districts in three languages
  • Blog: 22 articles × 3 languages, dynamic OG images, llms.txt

Paynet payments

  • Signed redirect form, payment page in the site’s language
  • Status is verified by querying the Paynet API, not by trusting the notification body
  • Safeguard against delayed notifications, plus notifications accepted at the old WordPress URL
  • Retry payment on the same order after a card decline
  • Full or partial refunds straight from the admin panel

Delivery pricing

  • Price based on real road distance from the studio, anywhere in Moldova
  • Address autocomplete with Cyrillic transliteration
  • Free OpenStreetMap services instead of paid APIs, with caching and a fallback router
  • Signed quote: the customer pays exactly the amount they saw
  • Checkout never waits more than 8 seconds, so the order always goes through

AI consultant and admin

  • On-site chat picks bouquets by the meaning of the request, from the real catalog
  • Custom Strapi “Chat” plugin: an operator replies and takes over the conversation
  • Orders with 8 statuses, totals always recalculated on the server
  • Product rating updates itself with every new review
  • After delivery, the customer automatically gets a request to leave a Google review
// Outcome

Outcome

01

The migration kept organic traffic intact: in the 28 days after launch, Google clicks grew from 98 to 350 and impressions from 3,492 to 12,951.

02

The Romanian-speaking audience grew from 7 to 89 clicks over the same period.

03

Out-of-town delivery is now priced by the kilometer, which ended losses on long-distance orders.

04

Payments no longer get lost thanks to double status checks and retry payment on the same order.

05

The shop has a 24/7 consultant, and the owner runs the catalog, orders, refunds and chat from one admin panel.

// Stack

Stack

Nuxt 4Vue 3TypeScriptPiniaStrapi 5Socket.IOGSAPDigitalOcean · Cloudflare
// Integrations

Integrations

PaynetMIAOpenStreetMap · OSRMOpenRouter (AI)GA4 · Google AdsMerchant CenterSearch Console
Next case →getCartelA QR sticker on your windshield: anyone can message you, and no one ever sees your number.
getCartel

Want the same?

Tell us about your challenge — within 24 hours we’ll come back with a solution, timeline and launch plan.