Migrating a florist, flowers & plants store from WooCommerce to Shopify (2026)
How to migrate a florist, flower delivery, or plant nursery WooCommerce store to Shopify — delivery date selection, seasonal availability, same-day delivery, care instructions, and floristry Shopify setup.
Florists and flower delivery stores are operationally similar to food delivery — products are perishable, delivery timing is critical, and seasonal availability changes the product catalogue week by week. Unlike most retail, a florist's inventory is genuinely live: certain flowers are only available at specific times of year, and "in stock" might mean "we can source this for delivery on Tuesday but not Wednesday." WooCommerce floristry stores typically built around WooCommerce Bookings or a custom delivery calendar. Shopify has a cleaner solution — Zapiet for delivery scheduling and local delivery management.
Floristry product types
- Fresh cut flower bouquets: Hand-tied, box arrangements, seasonal bundles — perishable, 5–7 day vase life
- Letterbox flowers: Flat-pack bouquets delivered through the letterbox — popular for next-day nationwide delivery
- Plants (houseplants): Potted indoor plants — longer shelf life, can be posted via standard courier
- Garden plants: Seasonal bedding, perennials, shrubs — outdoor plants, seasonal availability
- Dried flowers: Preserved arrangements — not perishable, can be posted with standard lead times
- Funeral flowers: Wreaths, sprays, tributes — specific delivery timing requirement (funeral service time)
- Wedding and event flowers: Bespoke arrangements for events — custom quote, not standard product flow
- Subscription flowers: Weekly or fortnightly fresh flower delivery — recurring revenue
- Workshops: Flower arranging workshops — bookable events, not physical products
Delivery date selection
Fresh flowers require delivery date selection at checkout — customers must choose when they want delivery, and the florist needs to control which dates are available based on their capacity and supply:
- Zapiet (Store Pickup + Delivery): The standard Shopify app for delivery date/time selection. Supports: specific available delivery dates, time slot selection, cut-off times per day ("order by 12pm for same-day delivery"), capacity limits per day, blackout dates (bank holidays, full delivery days), postcode-based delivery zones.
- Same-day delivery: Configure Zapiet cut-off time for same-day (e.g., "order by 1pm for same-day within [city]"). After cut-off, same-day date is removed from available dates.
- Next-day delivery: Available nationwide for letterbox flowers (flat-pack, posted). For fresh hand-tied bouquets, next-day typically requires same-day courier (expensive). Configure delivery zones accordingly.
- Funeral flower delivery timing: Funeral arrangements need to arrive at a specific time. Use the time slot feature in Zapiet, and add a product-specific note field for "Delivery time required" — funeral flowers need AM delivery before a service.
Seasonal availability
Fresh flowers are inherently seasonal — peony season is May–June, tulips are available winter through spring, sunflowers peak in summer. Managing this in Shopify:
- Product status: set products to draft when a flower is out of season. Restore to active when back in season. Create a quarterly calendar of seasonal changes.
- Seasonal collections: "Spring Flowers", "Summer Bouquets", "Christmas Flowers" — automatically update by tagging seasonal products
product.metafields.flowers.available_months(list.single_line_text) — "March", "April", "May" — months this flower/product is available. Used for informational display on product pages.- Seasonal substitution: fresh flower bouquets are assembled from whatever's in stock. Note on product pages: "As flowers are seasonal, colours and stems may vary slightly from the photo." This is standard floristry practice and important for setting expectations.
- Out-of-season notice: if a customer searches for "peonies" in November, show a graceful out-of-season message with alternative suggestions.
Plant and flower care metafields
Flower care
product.metafields.flowers.vase_life_days(number_integer) — expected vase life in daysproduct.metafields.flowers.care_instructions(multi_line_text_field) — "Trim stems at a diagonal. Change water every 2 days. Keep away from direct sunlight and fruit."product.metafields.flowers.fragrance_level(single_line_text) — "Strongly fragrant", "Lightly fragrant", "Unscented" — important for allergy-sensitive recipientsproduct.metafields.flowers.pollen_free(boolean) — pollen-free varieties suitable for allergy sufferers or fabric-sensitive environmentsproduct.metafields.flowers.toxic_to_pets(boolean) — lilies, for example, are highly toxic to cats — display warning prominently
Plant care
product.metafields.plants.light_requirement(single_line_text) — "Full sun", "Partial shade", "Low light"product.metafields.plants.watering_frequency(single_line_text) — "Water weekly", "Allow to dry between waterings", "Keep soil moist"product.metafields.plants.difficulty_level(single_line_text) — "Easy", "Intermediate", "Expert" — useful for gift buyersproduct.metafields.plants.mature_height_cm(number_integer) — expected mature heightproduct.metafields.plants.pet_safe(boolean) — non-toxic to petsproduct.metafields.plants.air_purifying(boolean) — marketing-friendly for houseplantsproduct.metafields.plants.pot_size_cm(single_line_text) — "Supplied in 12cm nursery pot"
Local delivery management
- Delivery radius: most fresh flower florists deliver locally (within 10–20 miles of the shop). Use Zapiet's postcode zone feature to restrict delivery to your service area.
- Local vs nationwide: if offering both local hand-delivery and nationwide letterbox posting, configure two separate rate groups: (1) local delivery with same-day option, (2) nationwide posting with next-day only and no same-day.
- Delivery charge by zone: local delivery may have a flat fee (£5) while remote areas within the zone have a higher fee (£10). Configure in Shopify Shipping rates or via Zapiet.
- Store pickup: if customers can collect from the shop, configure local pickup in Zapiet with available collection time slots.
Flower subscriptions
- ReCharge: fresh flower subscriptions (weekly, fortnightly, monthly) set up as subscription products. Customer portal allows pause (important for holidays), skip, and address change.
- Subscription product options: "Fresh Seasonal Bouquet — Fortnightly Subscription" — price includes delivery. Cheaper per delivery than one-time purchase (subscription discount drives conversion).
- Address change for subscriptions: essential functionality — subscribers move, go on holiday, or want to send flowers to a different address for a specific delivery. ReCharge customer portal supports address changes per delivery.
- Subscription gift: gift a 3-month flower subscription — wrap as a gift code rather than an active subscription. Rise.ai supports gift subscriptions.
Wedding and event floristry
Bespoke wedding flowers don't fit the standard product/checkout flow — they require consultation, custom quote, and deposit:
- Wedding enquiry form: create a dedicated wedding floristry page with a contact form capturing event date, venue, flower preferences, and budget.
- Mood board: link to a Pinterest board or in-page gallery for inspiration. This page should rank for "wedding florist [location]" searches.
- Deposit product: create a simple "Wedding Flowers Deposit" product at a fixed price (e.g., £200). The florist sends the customer a direct link to pay this product at checkout.
- Do not try to build a wedding quoting flow in Shopify — it's too complex. Keep it as enquiry → offline quote → deposit payment via Shopify.
Florist migration checklist
- Install Zapiet — configure delivery dates, cut-off times, and capacity limits
- Set up postcode zones for local delivery radius
- Configure same-day cut-off time for local flower delivery
- Configure nationwide letterbox delivery as separate rate
- Create flower care metafields: vase_life_days, care_instructions, pollen_free, toxic_to_pets
- Create plant care metafields: light_requirement, watering_frequency, difficulty_level, pet_safe
- Add seasonal availability metafield to all fresh flower products
- Display toxic-to-pets warning on lily, daffodil, and other toxic species product pages
- Install ReCharge for flower subscription setup
- Create wedding floristry enquiry page with contact form
- Build seasonal collections (Spring, Summer, Autumn, Winter, Christmas)
- Set products to draft for currently out-of-season flowers
- Test: same-day delivery cut-off — order before cut-off shows today as option, after cut-off shows tomorrow
- Test: flower subscription → subscriber changes delivery address for single delivery → correct address used
The toxic-to-pets metafield is the most consequential compliance item for a floristry migration — and the easiest to miss. Lilies (all species) are extremely toxic to cats and can cause fatal kidney failure. If a lily product doesn't display a visible "Not suitable for households with cats" warning and a customer's cat is harmed, the reputational and potential legal consequences are significant. Migrate this warning from WooCommerce custom fields to a metafield, render it prominently on all affected product pages, and add it to every lily, daffodil, tulip bulb, and cyclamen product. It takes minutes to set up — the consequence of omitting it is permanent.
Migrate your store with k-sync
Connect your WooCommerce store, validate your products, and push to Shopify in minutes. Free for up to 50 products.
Get started freeRelated reading
Migrating a luggage and travel accessories store from WooCommerce to Shopify (2026)
How to migrate a luggage, travel bags, or travel accessories WooCommerce store to Shopify — luggage specifications, airline compliance, TSA lock, warranty and durability claims, and luggage retail Shopify setup.
Migrating a motorcycle accessories store from WooCommerce to Shopify (2026)
How to migrate a motorcycle accessories, biker gear, or motorbike parts WooCommerce store to Shopify — helmet safety standards, CE-rated protective clothing, type approval for parts, fitment compatibility, and motorcycle retail Shopify setup.