WooCommerce Plugin

March Guard

TH March Insurance for WooCommerce lets jewelry and watch retailers sell real, underwritten insurance at the point of purchase, issuing a live MarchGuard policy automatically the moment an order is processed.

March Guard Insurance Widget on a WooCommerce Product Page
POWERED BY MARCHGUARD API

Project Details

Client

T.H. March & Co. Limited

Industry

Insurance / WooCommerce E-Commerce

Year

2026

Duration

Ongoing

Technologies

WordPressWooCommercePHPMarchGuard XML APIMySQLHPOS

Detailed Project Overview

TH March Insurance for WooCommerce (v1.0.3) is a WordPress/WooCommerce plugin that sells jewelry and watch insurance, branded March Guard, from T.H. March & Co. Limited as an add-on at the point of purchase. A customer picks a term, consents to the policy documents, pays for it as part of the order, and the plugin automatically issues a real insurance policy via the MarchGuard XML API once the order is processed.

The Challenge

Jewelry and watch retailers had no way to offer point-of-sale insurance without sending customers to a separate underwriter and losing the sale in the process. Verifying eligibility (item value, UK residency, product category), calculating premiums, and issuing a real policy for every order isn't something a storefront can do safely without a dedicated integration.

Our Solution

We built a 7-module plugin architecture: an XML API client driving MarchGuard's 4-step get_quote to finalize_quote to accept_quote to get_certificate flow, a validator enforcing item value, UK postcode/country, and term rules, a product-page widget with a term picker, consent flow, and T&Cs modal, and an order handler that automatically issues the underlying policy as soon as the order reaches processing or completed.

Platform Blueprint Implementations

WooCommerce Product Page

Product Page Insurance Widget

Insurance selection happens once, directly on the product page, not buried in checkout. Eligible jewelry and watch items show a collapsible insurance card the moment they qualify.

Platform Threat Challenge

Insurance add-ons bolted onto checkout get ignored or feel like a bait-and-switch, and customers need to review policy terms before committing to a taxable line item.

Our Implementation

class-thmarch-checkout.php renders a collapsible widget with a 1yr/3yr term picker, a consent checkbox, and a full T&Cs modal. The selection travels with the add-to-cart submission into the WC session and cart item, and is re-validated at checkout with a 24-hour consent expiry.

Platform Specs

  • Collapsible Insurance Card UI
  • Consent Checkbox + T&Cs Modal
  • Cart/Session Persistence (thmarch_insured_products)
  • Server-Side Premium Recalculation

Shield Data Flow

Eligibility Check

get_quote confirms the item qualifies; cached 1hr eligible / 15min ineligible.

Term & Consent

Customer picks a 1 or 3-year term and accepts the policy terms.

Cart Attachment

Selection is stored on the cart item and WC session, shown as a taxable fee.

Live Policy Activity Console

march_guard_console v1.0.3
LIVE
Streaming live MarchGuard API activity:
15:43:01ISSUEDPolicy Certificate Generated
REF: MG-2847193Watches
15:42:48QUOTEDget_quote — 1yr Term
REF: Order #10482Fine Jewelry
15:42:30LOGGEDfinalize_quote Accepted
REF: MG-2847188Diamonds
15:42:15QUOTEDEligibility Check Passed
REF: Order #10479Watches
15:41:59ISSUEDCertificate PDF Downloaded
REF: MG-2847171Fine Jewelry

Key Features & Technical Implementations

MarchGuard XML API Integration

A dedicated client drives the full get_quote to finalize_quote to accept_quote to get_certificate flow, so every policy sold is a real, underwritten product.

Product-Page Insurance Widget

A collapsible card on the product page itself offers a 1yr/3yr term picker, consent checkbox, and full T&Cs modal, the sole selection point since v1.0.2.

Dedicated Policy & Log Tables

Custom thmarch_policies and thmarch_api_logs tables track every issued policy and API call, with a success-rate view in the admin.

HPOS-Compatible Order Handling

Hooks into WooCommerce order status changes for both the legacy post-based orders table and High-Performance Order Storage.

Server-Side Eligibility & Pricing

UK-only residency, a £50 to £1,000,000 item value range, and 1 or 3-year terms are enforced server-side, premiums are never trusted from the client.

Admin Tools & Reporting

Dedicated Settings, Logs, and Policies admin screens, plus an Insurance status column added to the WooCommerce orders list.

Key Results

7 Focused Plugin Modules
4-Step Quote-to-Certificate API Flow
1yr / 3yr Insurance Terms Supported
£50 – £1,000,000 Insurable Item Range

Business Impact & ROI Analysis

By moving insurance selection onto the product page and automating policy issuance through the order lifecycle, jewelry and watch retailers can offer real, underwritten coverage without manual underwriting work, extra checkout friction, or added admin overhead, turning what used to require a separate purchase flow into a recurring revenue line at checkout.

Services Provided

Custom WooCommerce DevelopmentInsurance API IntegrationWordPress Plugin Architecture

“March Guard let us offer real, underwritten protection on every watch and jewelry sale without sending customers anywhere else to buy it, and the whole quote-to-certificate flow just runs in the background.”

S
E-Commerce ManagerJewelry & Watch Retailer

Frequently Asked Questions

Who is eligible to buy insurance through this plugin?

Only UK residents, and only on jewelry or watch items valued between £50 and £1,000,000. Free gifts, accessories, and any product already tagged, SKU’d, or categorized as an insurance product itself are excluded.

Where does the customer choose their insurance term?

Entirely on the product page. As of v1.0.2/1.0.3, the collapsible insurance widget, with its 1 or 3-year term picker, consent checkbox, and T&Cs modal, is the sole selection point; it is no longer part of the checkout flow.

Is the premium ever trusted from the browser?

No. The premium is recalculated server-side from the authoritative order quantity and price every time, both when the item is added to cart and again at checkout, so a tampered client value can never change what the customer is actually charged.

What happens if the MarchGuard API is temporarily unavailable?

The quote endpoint falls back to a local pricing formula so shoppers still see an estimated premium, and eligibility results are cached (1 hour for eligible items, 15 minutes for ineligible ones) to reduce live API calls.

Does a failed policy issuance block the order?

No. If MarchGuard can’t issue the policy when an order moves to processing or completed, the failure is logged to the API logs and noted on the order for follow-up, but the order itself is never blocked or cancelled.