< link rel="stylesheet" media="all" onload="this.media='all'" id="ecom-vendors-modal_css" href="https://cdn.ecomposer.app/vendors/css/ecom_modal.css" />< link rel="stylesheet" media="all" id="ecom-vendors-css_ecomposer_base" href="https://cdn.ecomposer.app/vendors/css/ecom-base.css?v=1.6" />

The John Muir window.EComposer = window.EComposer || {}; window.EComposer.TEMPLATE_ID="64d4b9e87bd17ff8ff0cfc82"; window.EComposer.TEMPLATE = {"template_id":"64d4b9e87bd17ff8ff0cfc82","title":"product","type":"product","slug":"ecom-product","plan_id":2};
Country Store

Home

Select from our Range of 

£5.30
0 selected Reset
  • Butter Shortbread Rounds
Add to cart
Wooley’s of Arran - Seriously Coconut Rounds

Wooley’s of Arran - Raspberry Infused Cranberry Rounds

< link rel="stylesheet" media="all" id="ecom-vendors-css_ecomposer_base" href="https://cdn.ecomposer.app/vendors/css/ecom-base.css?v=2.1" />
window.EComposer = window.EComposer || {}; window.EComposer.TEMPLATE_ID="64d4cd6c58f2bda826061ec2"; window.EComposer.FOOTER = {"template_id":"64d4cd6c58f2bda826061ec2","title":"Footer","type":"footer","slug":"ecom-footer","plan_id":2};
Empire Biscuits - Twin Pack  COFFEE BREAK FAVOURITES
Terms & Conditions
Caramel Tarts Twin Pack
Copyright 2026. All Rights Reserved by The John Muir Country Store. Site by
Fifth House

Caramel Tarts Twin Pack

Choosing a selection results in a full page refresh.
£4.00 //SendWILL APPS COMMON JS CODE window.EcomSendApps = window.EcomSendApps || {} window.EcomSendApps.design_mode = false window.EcomSendApps.common = window.EcomSendApps.common || {} window.EcomSendApps.common.shop = { permanent_domain: 'john-muir-country.myshopify.com', currency: "GBP", money_format: "£{{amount}}", id: 80637690163, } window.EcomSendApps.common.customer = { id: null, tags: null, email: null, accepts_marketing: null, first_name: null, } window.EcomSendApps.common.template = 'product'
/** @description storefront main bundle asset url */ const ECOMSEND_MAIN_SCRIPT_URL = 'https://cdn.shopify.com/extensions/019e5ed4-05ab-7270-b5f5-a246fd0d5eaa/ecomsend-149/assets/ecomsend.js' /** @description storefront style asset url */ const ECOMSEND_MAIN_STYLE_URL = 'https://cdn.shopify.com/extensions/019e5ed4-05ab-7270-b5f5-a246fd0d5eaa/ecomsend-149/assets/style.css' /** @description storefront wasm asset url for runtime signature module */ const ECOMSEND_WASM_ASSET_URL = 'https://cdn.shopify.com/extensions/019e5ed4-05ab-7270-b5f5-a246fd0d5eaa/ecomsend-149/assets/client_safe.wasm' /** @description fallback delay when requestIdleCallback is unavailable */ const ECOMSEND_IDLE_TIMEOUT_MS = 800 /** @description user interaction events used to trigger lazy init earlier */ const ECOMSEND_INTERACTION_EVENTS = ["pointerdown", "keydown", "touchstart"] /** @description global flag key for emergency immediate loading */ const ECOMSEND_FORCE_IMMEDIATE_FLAG = window.EcomSendApps?.forceImmediateLoad === true /** @description create main stylesheet node for storefront runtime */ function createEcomSendMainStyleEle() { const ecomsendMainStyleEle = document.createElement("link") ecomsendMainStyleEle.rel = "stylesheet" ecomsendMainStyleEle.href = ECOMSEND_MAIN_STYLE_URL ecomsendMainStyleEle.dataset.ecomsendTag = "main-style" return ecomsendMainStyleEle } /** @description append runtime stylesheet exactly once */ function ensureEcomSendMainStyleLoaded() { if (document.querySelector('link[data-ecomsend-tag="main-style"]')) { return } const ecomsendMainStyleEle = createEcomSendMainStyleEle() document.head.appendChild(ecomsendMainStyleEle) } /** @description remove interaction listeners after first lazy-init trigger */ function clearInteractionListeners() { ECOMSEND_INTERACTION_EVENTS.forEach((eventName) => { window.removeEventListener(eventName, scheduleMainBundleLoad) }) } /** @description run low-priority task via idle callback with timeout fallback */ function scheduleLowPriorityTask(taskRunner, timeoutMs) { if (window.requestIdleCallback) { window.requestIdleCallback(() => { taskRunner() }, { timeout: timeoutMs }) return } window.setTimeout(() => { taskRunner() }, timeoutMs) } /** @description load main storefront bundle once and keep rollback override */ function loadEcomsendMainBundle() { if (window.__ecomsendMainBundleLoaded) { return } window.__ecomsendMainBundleLoaded = true clearInteractionListeners() /** @description ensure storefront runtime css is loaded together with main bundle */ ensureEcomSendMainStyleLoaded() const ecomsendMainScriptEle = document.createElement("script") ecomsendMainScriptEle.src = ECOMSEND_MAIN_SCRIPT_URL ecomsendMainScriptEle.async = true ecomsendMainScriptEle.dataset.ecomsendTag = "main-script" document.body.appendChild(ecomsendMainScriptEle) } /** @description schedule heavy bundle with idle-first strategy to reduce main-thread contention */ function scheduleMainBundleLoad() { if (window.__ecomsendMainBundleLoadScheduled) { return } /** @description dedupe idle scheduling from DOMContentLoaded and first interactions */ window.__ecomsendMainBundleLoadScheduled = true if (ECOMSEND_FORCE_IMMEDIATE_FLAG) { loadEcomsendMainBundle() return } scheduleLowPriorityTask(loadEcomsendMainBundle, ECOMSEND_IDLE_TIMEOUT_MS) } /** @description cache marketing params for pixel/report flows before heavy bundle starts */ function cacheMarketingParams() { const urlParams = new URLSearchParams(window.location.search) const marketingId = urlParams.get("ec_marketing_id") const ecEmailId = urlParams.get("ec_email_id") const ecMarketingSign = urlParams.get("ec_marketing_sign") if (marketingId && window.localStorage) { window.localStorage.setItem("ec_marketing_id", marketingId) } if (ecEmailId && window.localStorage) { window.localStorage.setItem("ec_email_id", ecEmailId) } if (ecMarketingSign && window.localStorage) { window.localStorage.setItem("ec_marketing_sign", ecMarketingSign) } } try { cacheMarketingParams() } catch (e) {} /** @description inject wasm asset url into shared namespace before main bundle executes */ window.EcomSendApps = window.EcomSendApps || {} window.EcomSendApps.wasmURL = ECOMSEND_WASM_ASSET_URL ECOMSEND_INTERACTION_EVENTS.forEach((eventName) => { window.addEventListener(eventName, scheduleMainBundleLoad, { once: true, passive: true }) }) if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", scheduleMainBundleLoad, { once: true }) } else { scheduleMainBundleLoad() }
Add to cartwindow.shopLocale = 'en' /** @description timeout used for deferred discount request scheduling */ const ECOMSEND_DISCOUNT_IDLE_TIMEOUT_MS = 1500 /** @description apply discount code from url query only when parameter exists */ function applyWillDiscountCode() { const urlParams = new URLSearchParams(window.location.search) const willDiscountCode = urlParams.get("willDiscountCode") if (!willDiscountCode) { return } fetch("/cart/update.js", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ discount: willDiscountCode, }), }) } try { if (!window.__ecomsendDeferredTasksScheduled) { /** @description global guard to avoid duplicate deferred task scheduling */ window.__ecomsendDeferredTasksScheduled = true if (window.requestIdleCallback) { window.requestIdleCallback(() => { applyWillDiscountCode() }, { timeout: ECOMSEND_DISCOUNT_IDLE_TIMEOUT_MS }) } else { window.setTimeout(() => { applyWillDiscountCode() }, ECOMSEND_DISCOUNT_IDLE_TIMEOUT_MS) } } } catch (error) {} if (window.EcomSendApps?.common?.shop?.id) { window.localStorage.setItem("ECOMSEND:ES_SHOP_ID", window.EcomSendApps.common.shop.id) }
window.hextom_fsb_meta = { p1: [ "tiucsib" ], p2: { }, p3: [ { "v1": "true" } ], p4:8624432251187, p5:[455940243763,455940342067], p6:455940342067, }; window.hextom_fsb_config = {"shop_active":"yes","record":false,"bars":[],"theme":{"theme_id":"156626583859","is_xhr":true}};