Place an Order
Store Owner Setup
🔎
How this works: fill in one sample below, tick the tests you need, then click "Add this sample to my order."
Repeat for every sample you're sending us — you can add as many as you like before checking out.
Step 01
Tell us about this sample
Give it a name so you can recognise it later, and add any notes for our lab team.
✓
Free sample registration is included automatically
Every sample gets a tracking tag at no cost, so your results are easy to find later in Fusinite Lens. You don't need to do anything for this — it's added for you.
Step 02
Choose your tests
Tap a card to select it. You can pick as many as you need for this sample.
Full testing packages Package A – G
Extra & specialist tests Add-ons
Clear this sample
+ Add this sample to my order
Your Order
0 samples
Every sample listed here will be sent together as one order.
🧪
No samples added yet.
Fill in the form on the left and click "Add this sample to my order."
Samples in this order 0
Free registration tags 0
Total to pay £0.00
Continue to Checkout →
View technical order details
Store Owner Setup
Add this page to your Shopify store
1 Create the page template
In Online Store → Themes → Edit code , create a new file at templates/page.package-builder.liquid and paste in the code below.
templates/page.package-builder.liquid
Copy code
<!-- Fusinite Sample Testing Order Page -->
<div class="page-width fusinite-builder" style="max-width:1100px;margin:40px auto;padding:0 20px;font-family:inherit;">
<div style="text-align:center;margin-bottom:28px;">
<h1>Order Your Sample Testing</h1>
<p>Tell us about your sample, choose your tests, and add as many samples as you like before checking out.</p>
</div>
<div style="display:grid;grid-template-columns:1fr 380px;gap:28px;">
<div style="background:#fffdf8;border:1px solid #e1d8c2;border-radius:14px;padding:24px;">
<h2 style="font-size:1.15rem;margin-bottom:10px;">Sample #<span id="f-pkg-num">1</span></h2>
<div style="background:#eef3ee;border:1px dashed #1e5231;padding:12px;border-radius:10px;margin-bottom:18px;">
<strong style="color:#102a1a;">✓ Free sample registration included</strong>
<p style="font-size:.82rem;color:#4a4436;margin-top:2px;">Added automatically — no action needed.</p>
</div>
<div style="display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px;">
<div>
<label style="display:block;font-size:.82rem;font-weight:600;margin-bottom:4px;">Sample name</label>
<input type="text" id="f-sample-ref" style="width:100%;padding:9px;" placeholder="e.g. Biochar Batch A102">
</div>
<div>
<label style="display:block;font-size:.82rem;font-weight:600;margin-bottom:4px;">Notes for lab</label>
<input type="text" id="f-sample-notes" style="width:100%;padding:9px;" placeholder="Optional">
</div>
</div>
<h3 style="font-size:1rem;margin-bottom:10px;">Choose your tests</h3>
<div style="display:grid;gap:10px;margin-bottom:20px;">
<label style="display:flex;justify-content:space-between;align-items:center;background:#fff;border:1px solid #e1d8c2;padding:12px;border-radius:10px;cursor:pointer;">
<span style="display:flex;align-items:center;gap:10px;">
<input type="checkbox" class="f-svc-cb" value="49737829646674" data-title="Inertinite Benchmarking / Random Reflectance (Ro) - Analysis" data-price="350.00">
<span style="font-weight:600;">Inertinite Benchmarking / Random Reflectance (Ro) - Analysis</span>
</span>
<span style="font-weight:700;color:#b9791f;">£350.00 </span>
</label>
<label style="display:flex;justify-content:space-between;align-items:center;background:#fff;border:1px solid #e1d8c2;padding:12px;border-radius:10px;cursor:pointer;">
<span style="display:flex;align-items:center;gap:10px;">
<input type="checkbox" class="f-svc-cb" value="49482502898002" data-title="Inertinite Gold Certification" data-price="150.00">
<span style="font-weight:600;">Inertinite Gold Certification</span>
</span>
<span style="font-weight:700;color:#b9791f;">£150.00 </span>
</label>
<label style="display:flex;justify-content:space-between;align-items:center;background:#fff;border:1px solid #e1d8c2;padding:12px;border-radius:10px;cursor:pointer;">
<span style="display:flex;align-items:center;gap:10px;">
<input type="checkbox" class="f-svc-cb" value="49594817839442" data-title="Premium Membership" data-price="95.00">
<span style="font-weight:600;">Premium Membership</span>
</span>
<span style="font-weight:700;color:#b9791f;">£95.00 </span>
</label>
<label style="display:flex;justify-content:space-between;align-items:center;background:#fff;border:1px solid #e1d8c2;padding:12px;border-radius:10px;cursor:pointer;">
<span style="display:flex;align-items:center;gap:10px;">
<input type="checkbox" class="f-svc-cb" value="49446987792722" data-title="Consultancy Service" data-price="250.00">
<span style="font-weight:600;">Consultancy Service</span>
</span>
<span style="font-weight:700;color:#b9791f;">£250.00 </span>
</label>
</div>
<button type="button" id="f-add-btn" class="button button--primary" style="width:100%;padding:13px;">+ Add this sample to my order</button>
</div>
<div style="background:#fffdf8;border:1px solid #e1d8c2;border-radius:14px;padding:24px;">
<h2 style="font-size:1.15rem;margin-bottom:10px;">Your Order (<span id="f-staged-count">0</span>)</h2>
<div id="f-staged-list" style="margin-bottom:18px;"><p style="color:#726b5a;font-size:.85rem;">No samples added yet.</p></div>
<div style="border-top:1px solid #e1d8c2;padding-top:12px;margin-bottom:18px;display:flex;justify-content:space-between;font-weight:700;">
<span>Total to pay:</span><span id="f-grand-total">£0.00</span>
</div>
<button type="button" id="f-checkout-btn" class="button button--full-width button--primary" style="width:100%;padding:14px;">Continue to Checkout →</button>
</div>
</div>
</div>
<script>
const BASE_VARIANT_ID = "50022792593746";
let stagedPayload = [];
let pkgNum = 1;
document.getElementById('f-add-btn').addEventListener('click', function () {
const selected = document.querySelectorAll('.f-svc-cb:checked');
const ref = document.getElementById('f-sample-ref').value.trim() || ('Sample #' + pkgNum);
const notes = document.getElementById('f-sample-notes').value.trim();
const sampleId = 'FSN-' + Date.now().toString(36).toUpperCase() + '-' + pkgNum;
stagedPayload.push({
id: BASE_VARIANT_ID, quantity: 1,
properties: {
'Fusinite Sample ID': sampleId, 'Sample Index': pkgNum, 'Sample Reference': ref,
...(notes ? { 'Testing Notes': notes } : {}), '_role': 'Free Sample Registration'
}
});
selected.forEach(cb => {
stagedPayload.push({
id: cb.value, quantity: 1,
properties: { 'Fusinite Sample ID': sampleId, 'Sample Index': pkgNum, 'Sample Reference': ref }
});
cb.checked = false;
});
pkgNum++;
document.getElementById('f-pkg-num').innerText = pkgNum;
document.getElementById('f-sample-ref').value = '';
document.getElementById('f-sample-notes').value = '';
});
document.getElementById('f-checkout-btn').addEventListener('click', function () {
if (stagedPayload.length === 0) { alert('Please add at least one sample before checking out.'); return; }
this.innerText = 'Redirecting to Checkout...';
this.disabled = true;
fetch('/cart/add.js', {
method: 'POST', headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ items: stagedPayload })
}).then(res => res.json()).then(() => { window.location.href = '/checkout'; })
.catch(err => { console.error(err); this.disabled = false; this.innerText = 'Continue to Checkout →'; });
});
</script>
2 Publish the page
Go to Online Store → Pages → Add page , give it a title like "Order Sample Testing," and set the theme template to page.package-builder. Save, and the page is live.
3 Check your product handles
Make sure the product handles listed in the code (e.g. random-reflectance-analysis1) match the exact handles of your products in Shopify — you can find a product's handle in its admin URL.