Multi-partner tourism booking website case study showing three tour brands on one site

How I Built a FareHarbor Booking Site for a Caribbean Tourism Company

A few months ago, a tourism operator in Aruba came to me with a problem that’s more common than people think: they were managing three separate tour brands, each with bookable inventory, and customers had no single place to discover and book all of it. Each brand had its own following, but there was no unified web presence tying them together.

This post walks through exactly how I approached the project — the technical decisions, the challenges that came up, and what I’d tell anyone facing a similar setup.

The Starting Point

The client operated under one umbrella business, working with three partner tour companies — each running their own activities, each with their own FareHarbor account for managing availability and payments. The goal was simple to state and harder to execute: build one WordPress website where a visitor could browse all three brands’ tours, check real-time availability, and book directly — without ever needing to leave the site or figure out which company to contact.

Before this project, customers were finding tours through scattered channels — direct partner websites, social media, word of mouth — with no consistent booking experience and no way for the operator to present everything as one cohesive offering.

✅ Pro Tip: If you’re in a similar position — managing multiple service providers or brands under one umbrella — don’t try to force everything into a single generic page. Customers need to understand which experience belongs to which brand, even while booking everything in one place.

Why FareHarbor

FareHarbor was already the booking system each partner used individually, which made it the obvious technical foundation rather than introducing a new platform and asking three separate businesses to migrate their existing booking workflows. FareHarbor’s Partner Network feature was the key piece that made a unified site possible — it allows one “operator” account to be granted booking permissions across multiple partner accounts, while each partner retains full control of their own inventory and payments on their end.

This meant the WordPress site didn’t need to store or manage any booking data itself. It just needed to display the right widgets, pointed at the right partner inventory, in the right places.

Planning the Site Structure

Before writing any code, the site needed a structure that made sense to a first-time visitor who had no idea three separate companies were involved. I settled on:

  • A homepage introducing the umbrella brand with a clear primary call-to-action
  • A single “Book a Tour” page as the main booking destination
  • Within that page, three distinct sections — one per partner brand — each with its own short introduction, photos, and a FareHarbor Flow widget scoped to that partner’s specific tours
  • Individual tour landing pages for the most popular activities, each with its own booking widget, for better SEO and easier sharing on social media

This structure meant a customer could land on the main booking page and immediately understand: here’s a boat tour company, here’s a party bus company, here’s an adventure sports company — pick what interests you.

The Technical Build

The site was built on WordPress using Elementor for the front-end design, which gave the flexibility to create custom layouts for each partner section without needing to write a custom theme from scratch.

FareHarbor integration approach:

Each partner section used a FareHarbor Flow widget, filtered to that specific partner’s item IDs using the operator shortname and a comma-separated list of item IDs in the embed URL. This was the cleanest way to keep inventory separated visually while still pulling everything through one connected account.

<a href="https://fareharbor.com/embeds/book/operatorshortname/items/12345,67890/?full-items=yes">
  Book [Partner Name] Tours
</a>

Design decisions that mattered:

  • Each partner section used a distinct accent color matching that brand’s existing identity, while keeping the overall page layout consistent — so it felt unified, not chaotic
  • Mobile-first build, since the overwhelming majority of tourists browse and book from their phones, often on hotel wifi or a tourist SIM with limited data
  • WhatsApp contact buttons placed throughout, because in this market a lot of customers want to ask a quick question before committing to a booking, and WhatsApp converts far better than a contact form for this audience

⚠️ Watch Out: When working with multiple FareHarbor partner accounts, every partner has to individually approve your operator account in their FareHarbor Partner settings before their inventory will show up in your widgets. This isn’t something you control from your side — it requires the partner logging into their own FareHarbor dashboard. Build this into your project timeline, because it’s a common bottleneck.

Challenges Along the Way

Coordinating partner approval timing

Since each of the three partners needed to separately approve the operator account inside their own FareHarbor dashboard, the project timeline depended partly on three different businesses responding promptly — not something a developer can speed up directly. The lesson here was building this dependency into the project plan from day one rather than assuming it would happen instantly.

Keeping brand identity intact within a unified site

The client was understandably protective of each partner’s individual brand identity — none of the three wanted to feel like they’d been absorbed into a generic “tours” page. Solving this meant treating each section almost like its own mini-landing-page within the larger site, with distinct photography, color accents, and copy tone, while still sharing the same booking mechanics underneath.

Page speed with multiple embedded widgets

Loading three separate Flow widgets on one page risked slowing things down if not handled carefully. The fix was loading the FareHarbor script tag once in the site header rather than once per widget instance, and lazy-loading each partner section’s widget so it only initialized as the visitor scrolled to that section.

The Result

The umbrella operator now has a single website where visitors can discover and book tours across all three partner brands, with live availability pulled directly from FareHarbor — no manual updates required on the WordPress side when a partner’s schedule changes. Each partner retains full control of their own pricing, availability, and payment processing through their existing FareHarbor account, while benefiting from a more polished, unified web presence than any of them had individually before.

For the operator, it meant turning three disconnected booking experiences into one coherent customer journey — without anyone needing to change how they actually run their day-to-day tour operations.

What I’d Tell Anyone in a Similar Situation

If you’re running multiple brands, partner businesses, or service providers under one umbrella and considering a similar setup, here’s what actually matters most:

  • Confirm partner buy-in and FareHarbor approval timelines before committing to a launch date
  • Design each section to preserve individual brand identity, not flatten everything into one generic look
  • Build mobile-first from day one if your audience is tourists booking on their phones
  • Load shared scripts once, not per widget, to protect page speed
  • Put WhatsApp or a similarly low-friction contact option front and center if your audience prefers chat over forms

If you’re managing something similar — multiple service providers, partner brands, or locations that all need to come together under one booking experience — Contact me and I can walk you through how this could work for your situation.

Gloria Food restaurant ordering page vs WooCommerce restaurant website side by side comparison

How to Migrate a Restaurant from Gloria Food to WooCommerce (Step-by-Step Guide)

Table of Contents

  1. Why Restaurants Are Leaving Gloria Food
  2. What You Need Before You Start
  3. Step 1 — Set Up WordPress and WooCommerce
  4. Step 2 — Rebuild Your Menu in WooCommerce
  5. Step 3 — Configure Online Ordering and Delivery
  6. Step 4 — Set Up Payment Gateways
  7. Step 5 — Handle Your Domain and DNS
  8. Step 6 — Go Live and Test Everything
  9. Common Problems and How to Fix Them
  10. Gloria Food vs WooCommerce — Quick Comparison

1. Why Restaurants Are Leaving Gloria Food

Gloria Food was a popular choice for small restaurants when it launched — it was free, quick to set up, and had a decent ordering interface. But over time, restaurant owners started running into the same walls.

The platform was acquired by Oracle in 2021, and since then the free tier has become increasingly limited. Features that used to be free now require paid plans. Customization is almost nonexistent — you get what Gloria Food gives you, and that’s it. Your menu lives on their servers, your customer data is theirs, and if they change their pricing or shut down a feature, you have no control.

The restaurants I worked with in Denmark made the switch for a simple reason: they wanted to own their online ordering system. With WooCommerce, your menu, your customer data, your orders — everything lives on your own WordPress site. You control the design, the fees, the integrations, and the customer experience.

Here’s what you actually gain by switching:

  • Full control over your menu layout and design
  • No platform commission on orders (just payment gateway fees)
  • Your own customer database — build loyalty programs, send emails, run promotions
  • Integration with any payment provider you choose
  • A real website, not just a Gloria Food subdomain

📸 Image 1 Alt text: Gloria Food restaurant ordering page vs WooCommerce restaurant website side by side comparison AI Prompt: Split-screen comparison image showing a basic Gloria Food ordering page on the left (simple white layout, limited branding) versus a fully designed WooCommerce restaurant website on the right (custom colors, logo, beautiful food photos, add to cart buttons). Clean flat design, no people.


2. What You Need Before You Start

Before you touch anything, gather these:

  • Your current Gloria Food menu — take screenshots or export if possible. You’ll be rebuilding this in WooCommerce, so having it documented saves significant time.
  • Your domain name login — you’ll need to update DNS records. Know which registrar controls your domain (GoDaddy, Namecheap, or in the case of Danish restaurants, often Punkt.um or One.com).
  • WordPress hosting — you need a hosting account where WordPress will be installed. Hostinger, SiteGround, or any cPanel host works fine.
  • A list of your payment methods — do you want to accept card online? Cash on delivery? Specific local payment gateways?
  • Your restaurant’s photos — logo, food photos, interior shots. These will make your WooCommerce site look significantly better than Gloria Food ever did.

Pro Tip: Before migrating, keep Gloria Food running in parallel. Don’t shut it down until your WooCommerce site is fully tested and live. Run both simultaneously for at least one week.


3. Step 1 — Set Up WordPress and WooCommerce

Install WordPress

Most hosting providers have a one-click WordPress installer. In Hostinger it’s under hPanel → Websites → Auto Installer. In SiteGround it’s under Site Tools → WordPress installer. Run it, set your admin username and password, and you’re in.

Install WooCommerce

Once inside WordPress:

  1. Go to Plugins → Add New
  2. Search for WooCommerce
  3. Click Install Now → then Activate
  4. WooCommerce will run a setup wizard — go through it and select:
    • Your store location and currency
    • What you’re selling (select Physical products for food items)
    • Payment methods (you can add more later)
    • Shipping (for delivery) or local pickup

Install a Restaurant-Friendly Theme

Your theme controls how your site looks. For restaurants, these free themes work well:

  • Astra — lightweight, fast, works with any page builder
  • Kadence — excellent WooCommerce support out of the box
  • OceanWP — solid free option with restaurant demo sites

If you want a premium look without paying for a theme, use Astra free + Elementor free. This combination gives you full visual control.


4. Step 2 — Rebuild Your Menu in WooCommerce

This is the most time-consuming part, but it’s also where you gain the most control. Every menu item becomes a WooCommerce product.

Set Up Product Categories First

Before adding items, create your menu categories. Go to Products → Categories and add categories that match your menu sections:

  • Starters / Appetizers
  • Pizzas
  • Burgers
  • Pasta
  • Salads
  • Drinks
  • Desserts

Add Menu Items as Products

For each menu item, go to Products → Add New:

  1. Product Name — e.g. “Pepperoni Pizza”
  2. Description — short description of the dish (ingredients, allergens)
  3. Product Image — upload a food photo. This is where WooCommerce destroys Gloria Food — real photos on every item
  4. Price — set the regular price
  5. Product Category — assign to the correct menu section
  6. Product Type — set to Simple Product for standard items

Handling Variations (Size, Extras, Toppings)

This is where WooCommerce gets powerful. For items that come in different sizes or with optional extras, use Variable Products:

  1. In the Product Data panel, change Product Type to Variable product
  2. Go to the Attributes tab
  3. Add attribute: Size → values: Small | Medium | Large
  4. Check “Used for variations”
  5. Go to Variations tab → Generate All Variations
  6. Set individual prices for each variation

For extras and add-ons (extra cheese, extra sauce), install the free plugin WooCommerce Product Add-Ons or use Flexible Checkout Fields.

⚠️ Watch Out: If you have a large menu (50+ items), consider using a bulk product import via CSV. Export your Gloria Food menu data, format it as a WooCommerce-compatible CSV, and import via Products → Import. This can save hours of manual entry.


5. Step 3 — Configure Online Ordering and Delivery

WooCommerce handles ordering natively, but for a restaurant you need to fine-tune a few things.

Install a Restaurant Ordering Plugin

Standard WooCommerce is built for physical product shipping, not food delivery. Install one of these to add restaurant-specific features:

  • Orderable (free tier) — adds time slots, ASAP ordering, minimum order amounts, and a beautiful checkout flow built for restaurants
  • WooCommerce Restaurant Ordering — dedicated plugin for food businesses, adds category-based ordering page

Set Up Delivery Zones

In WooCommerce → Settings → Shipping:

  1. Add a Shipping Zone for your delivery area (e.g. Copenhagen City Center)
  2. Set a flat delivery fee or free delivery above a minimum order
  3. Add a Local Pickup option for customers collecting in person

Set Ordering Hours

With Orderable or similar plugins, you can restrict ordering to your opening hours. This prevents customers from placing orders at 3am when you’re closed.

Minimum Order Amount

Go to WooCommerce → Settings → Minimum Order plugin (or Orderable settings) and set a minimum order value for delivery..


6. Step 4 — Set Up Payment Gateways

This is where Denmark-specific and regional requirements matter. WooCommerce supports almost every payment provider through free plugins.

For Danish Restaurants specifically:

  • MobilePay — install MobilePay WooCommerce plugin (this is essential for Danish customers, almost everyone pays with MobilePay)
  • Stripe — handles Visa, Mastercard, and international cards
  • Cash on Delivery — enable this in WooCommerce → Settings → Payments for cash collection on delivery

For General International Restaurants:

  • Stripe — best all-around choice
  • PayPal — widely trusted
  • Square — good for businesses already using Square POS

Install Stripe for WooCommerce:

  1. Go to Plugins → Add New → search “WooCommerce Stripe Payment Gateway”
  2. Install and activate
  3. Go to WooCommerce → Settings → Payments → Stripe
  4. Enter your Stripe API keys (from your Stripe dashboard)
  5. Enable test mode first, complete a test order, then switch to live

Pro Tip: Always enable at least two payment methods. If Stripe has an outage or a customer’s card fails, they need a fallback option or you lose that order.


7. Step 5 — Handle Your Domain and DNS

This is the step that trips up most people — and it’s where I spent significant time with my Danish restaurant clients, particularly with the Danish registrar Punkt.um.

Understanding What Needs to Change

Your domain is currently pointed to Gloria Food’s servers. To make it point to your new WordPress site, you need to update the DNS records at your domain registrar.

Find Your New Hosting IP Address

In your hosting control panel (Hostinger hPanel, SiteGround, etc.), find your hosting account’s IP address or nameservers. It’ll look like:

  • IP: 185.XXX.XXX.XXX
  • Or nameservers: ns1.hostinger.com / ns2.hostinger.com

Update DNS at Your Registrar

Log in to wherever your domain is registered:

If using nameservers (recommended):

  1. Find the nameserver settings at your registrar
  2. Replace the current nameservers (which point to Gloria Food or their host) with your new hosting nameservers
  3. Save

If updating A records only:

  1. Find the DNS management section
  2. Edit the A record for @ (root domain) — change the IP to your new hosting IP
  3. Edit the A record for www — same new IP
  4. Save

⏱ DNS Propagation

DNS changes take 15 minutes to 48 hours to fully propagate worldwide. During this time your site may be inaccessible or flipping between old and new. This is normal. You can check propagation status at whatsmydns.net.

⚠️ Watch Out — Punkt.um Specific (Danish registrar): Punkt.um’s DNS interface is in Danish and can be confusing. The nameserver field is under “Navneservere” and the A record section is under “DNS-zoner”. If you change nameservers at Punkt.um, it can take up to 48 hours — longer than most registrars. Don’t panic if it takes a full day.


8. Step 6 — Go Live and Test Everything

Before announcing the switch to your customers, run through this complete checklist:

Ordering Test

  • Place a test order for delivery — go through the full checkout flow
  • Place a test order for local pickup
  • Test with each payment method you’ve enabled
  • Check that the order confirmation email arrives and looks correct
  • Log in to WooCommerce → Orders and confirm the test order appears

Menu Check

  • Every item has a photo
  • Prices match your Gloria Food menu exactly
  • Variations (sizes, extras) work correctly
  • Categories display in the right order

Mobile Check

  • Browse the menu on an iPhone (Safari)
  • Add items to cart on mobile
  • Complete checkout on mobile — this is where most customers will order from

Speed Check

  • Run your site through Google PageSpeed Insights
  • Target a score above 70 on mobile
  • If slow: install LiteSpeed Cache (if on Hostinger) or W3 Total Cache

Turn Off Gloria Food Once everything above passes, log in to Gloria Food and either:

  • Set your store to Closed permanently
  • Or delete your Gloria Food account if you no longer need it

Redirect your old Gloria Food ordering URL to your new WooCommerce ordering page if possible.


9. Common Problems and How to Fix Them

Problem: Customers can’t find the ordering page Fix: Add a prominent “Order Now” button to your homepage hero and your navigation menu. Make it a different color from everything else on the page.

Problem: MobilePay isn’t processing Fix: Make sure you’ve completed MobilePay’s business verification. The plugin won’t process live payments until your MobilePay business account is fully verified.

Problem: Orders aren’t sending email notifications Fix: WooCommerce uses WordPress’s built-in mail which often ends up in spam. Install the free WP Mail SMTP plugin and connect it to Gmail SMTP or Brevo (free tier) for reliable email delivery.

Problem: Menu loads slowly Fix: Compress all food photos before uploading. Use Squoosh.app to convert to WebP format and resize to 800×600px maximum. Uncompressed food photos are the #1 cause of slow restaurant websites.

Problem: Delivery area isn’t restricted correctly Fix: In WooCommerce → Shipping, set up Shipping Zones with specific postcodes or regions. Only customers within those zones will see the delivery option at checkout.


10. Gloria Food vs WooCommerce — Quick Comparison

FeatureGloria FoodWooCommerce
Monthly CostFree / Paid tiersFree (hosting cost only)
Commission on OrdersYes (paid plan to remove)No (only payment gateway %)
Custom DesignVery limitedFull control
Own Customer DataNoYes
Menu VariationsBasicAdvanced (unlimited)
Payment OptionsLimited100+ gateways
SEOPoor (subdomain)Full control
Mobile App for OrdersYesVia plugin
Delivery Zone ControlBasicFull postcode control

11. Final Thoughts

Migrating from Gloria Food to WooCommerce isn’t something you do in an afternoon — but it’s absolutely worth it. Once it’s done, you own your entire ordering system. No platform can change their pricing, shut down features, or limit your customization. Your restaurant’s online presence is yours.

The migration for my Danish restaurant clients took approximately 2–3 days of work per site — one day for setup and menu rebuild, one day for payment and ordering configuration, and one day for DNS, testing, and going live.

If you’re a restaurant owner who wants this done professionally — without the DNS headaches, plugin conflicts, or ordering flow bugs — I’ve done this exact migration multiple times and I’m available for freelance projects.

Get in touch at syedaounraza or WhatsApp directly.