Fusinite Lens — Order Your Sample Testing
Fusinite Lens · Sample Intake

Order Your Sample Testing

Simple, guided ordering — built for the lab, not the laptop.

🔎
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.

Optional — we'll number it for you if left blank.
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

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 order0
Free registration tags0
Total to pay£0.00
Store Owner Setup

Add this page to your Shopify store

1Create 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
<!-- 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>

2Publish 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.

3Check 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.

Notification