Case study

WYSE London: a six-system integration estate, migrated to Patchworks Core.

Cirql Works delivered the migration of WYSE London’s multi-system integration estate from Patchworks Tapestry to Patchworks Core. Six connected endpoints, multi-currency, global locale, millions of transactions a month, and a returns and refunds topology that fans out across web, point-of-sale, and a try-before-you-buy concierge service. Twelve-month migration, live and under SLA.

  • Client WYSE London
  • Sector Premium ecommerce, global
  • Platforms in estate Shopify · NetSuite · Torque · GlobalE · SWAP · Harper
  • Engagement Engineering delivery partner; direct 1:1 support with eCirql
  • Migration scope Patchworks Tapestry to Patchworks Core
  • Migration duration 12 months (2025 to 2026)
  • Volume Millions of transactions per month
  • Catalogue ~5,000 products, multi-locale, multi-currency
  • Status Live, under SLA

Background

Same engineer. Different agency. By mutual agreement.

Gavin Hanson spent five years at Patchworks as Principal Engineer, two of those as WYSE London’s dedicated engineer on the account. The original Shopify-to-NetSuite integration on Patchworks’ legacy Tapestry platform was his work. Every connector edge case, every record-type decision, every late-night incident on that estate was already on his desk.

When Patchworks announced that Tapestry deprecation was imminent and that integrations would need to migrate to Patchworks Core, WYSE faced the usual question: hand the rebuild to a new team and lose the institutional knowledge, or follow it. By mutual agreement between WYSE and the parties involved, the engagement transferred to Cirql Works with Gavin again as the engineer on the work. The history doesn’t reset; the relationship continues at the same level of depth it always had.

“I have worked with Gavin over five years and am very pleased to be working with such an ethically astute person. Gavin is thorough and makes sure he takes the time to understand the business so as to ensure the solution works.”
Claire Collins Finance Director, WYSE London

The estate

Six endpoints, one iPaaS.

WYSE London’s operation isn’t a pair. Six systems run the business, each with its own role, its own data model, and its own way of expecting events. Patchworks Core sits in the centre and reconciles them.

Patchworks Core Integration canvas
  • Storefront Shopify Global locale and currency split, Shopify Markets
  • ERP NetSuite Subsidiary-aware finance and stock system of record
  • 3PL / WMS Torque Pick, pack, dispatch and returns receipt
  • Cross-border GlobalE Local payments, taxes and duties for international markets
  • Returns platform SWAP Customer-facing returns and exchange experience
  • Concierge service Harper Try-before-you-buy concierge fulfilment and return path

The migration

Tapestry to Core, no service interruption.

Patchworks Tapestry ran in production for WYSE for years. When Patchworks signalled that Tapestry deprecation was imminent, with no fixed end-of-life date but the writing on the wall, the Core migration began. The rebuild ran for twelve months from 2025 into 2026, against Patchworks’ new platform, without an outage window that would interrupt trading.

Each flow was reimplemented in the Core canvas, run in parallel against the live Tapestry equivalent, reconciled against real traffic, and cut over only when the Core flow matched output byte-for-byte. The cutover happened endpoint by endpoint rather than in a single high-risk big-bang. By the time the last flow moved, the operations team had already lived with the new platform for months.

Production scenarios

Four scenarios that show the shape of the work.

The visuals below are stylised shapes, not Patchworks process flow screenshots. They show the routing logic and the branches we handle in production, with the implementation detail stripped out. The actual process flows in Patchworks carry the full complexity and error handling each branch needs.

01

Sales

Shopify orders route four ways into NetSuite.

One Shopify storefront, four different downstream postings. The sales router classifies each order by origin and posts it as the right NetSuite transaction with the right customer resolution and the right stock movement for the channel.

Trigger Shopify Order created Web or POS
Router Patchworks Sales router Classifies by origin
  • POS
    NetSuite Cash Sale POS store-tagged customer
  • Harper
    NetSuite Concierge order + stock move Torque to Harper location
  • GlobalE
    NetSuite GlobalE Sales Order Local tax + duties applied
  • Web
    NetSuite Sales Order + Customer Deposit Customer upserted on the way in
02

Harper reconciliation

Concierge sales only post when Harper confirms.

Try-before-you-buy doesn’t become a sale until the customer keeps the items. Posting too early creates phantom revenue and a reconciliation tail; posting too late breaks the customer-facing surface. The integration waits on Harper to mark the parcel reconcilable, then posts the right shape.

Trigger Harper Order reconcilable Customer kept items
Decision Patchworks Net items kept Less any in-window returns
  • Post
    NetSuite Sales Order + Shipped Fulfilment Invoice script fires
03

Fulfilment writeback

Two sources, one customer-facing answer.

Torque dispatches the parcel. NetSuite is the source of truth for the fulfilment. But the underlying NetSuite record differs for a normal order versus a Harper concierge order, and the customer-facing surface in Shopify needs the same outcome either way.

Trigger Torque Shipment sent Carrier + tracking attached
Decision NetSuite Source record type Sales Order or Transfer Order
  • Normal
    Shopify Order fulfilled + tracking Resolved via Sales Order
  • Harper
    Shopify Order fulfilled + tracking Resolved via Transfer Order
04

Returns and refunds

Returns are physical. Refunds are not one event.

Modern returns split into the physical leg (parcel back, stock counted) and the financial leg (refund issued in the right shape for the original transaction). WYSE’s estate fans both legs out across SWAP, Torque, Harper and NetSuite. The refund router below is the financial leg only.

Trigger Shopify Return complete After Torque receipt + approval
Router Patchworks Refund router Five branches
  • Harper
    NetSuite Inventory adjust to Torque Concierge return path
  • POS w/refund
    NetSuite Cash Refund (+ Cash Sale if exchange) In-store tender
  • Gesture (web)
    NetSuite Credit Memo + Customer Refund FX orders notify finance instead
  • Shipping (web)
    NetSuite Credit Memo + Customer Refund Shipping-only refund posting
  • Line items (web)
    NetSuite Credit Memo or Sales Order edit Decided on fulfilment state

None of the branches above are theoretical. Every one runs in production on this estate multiple times an hour, and every one is monitored under SLA.

Engagement model

Engineering partner. Direct support.

Cirql Works is the engineering delivery partner on the WYSE London integration estate. Support and day-to-day technical contact runs direct 1:1 between WYSE and eCirql, under SLA. That direct line is intentional: the engineer who shipped the flow is the engineer answering the support ticket when it matters.

Get in touch

Tell us what you’re trying to connect.

And what’s in the way. We will tell you whether we are the right people to do it. Drop us a line below, or open the chat in the corner of the screen.

Direct: [email protected]