Skip to contentLatest products on sale
Browse our Categories
Don’t miss a sale
Sign up for our Newsletter
Latest News
February 19, 2025
Cloud Vape Supply offers a premium selection of Bang disposable vapes designed for convenience, flavor [...]
November 19, 2024
The holiday season is upon us, and what better way to surprise the vaping enthusiasts [...]
November 19, 2024
In a significant move toward harm reduction, Australia has introduced new legislation allowing adults to [...]
November 19, 2024
The world is increasingly focused on sustainability, an inspiring example of ingenuity has emerged—a creative [...]
November 19, 2024
Recent news has highlighted an important warning for vapers who drive, particularly during the colder [...]
November 19, 2024
A recent TikTok video by Sheldon Shuffield from Fort Worth, Texas, has gone viral, shedding [...]
November 8, 2024
For those seeking a compact, easy-to-use vape with robust flavor options, the SKE Crystal Bar [...]
November 8, 2024
For vape enthusiasts looking for durability, premium flavors, and advanced technology, the Al Fakher Crown [...]
/* Cloud Supply Vapes — Inquiry Mode v1 (2026-11-09)
------------------------------------------------------------------
WHAT IT DOES
Turns the current "fake online shop" into a B2B WhatsApp enquiry site,
WITHOUT editing 351 products, installing plugins or changing theme options.
1. Hides Add to cart / Buy now / quantity / header cart / €0.00
2. Adds a product-page quote box (qty + destination market + prefilled
WhatsApp message with product name, SKU, qty and market)
3. Adds a site-wide floating WhatsApp button (bottom-left, so it does
not collide with the cookie banner on the bottom-right)
4. Adds the 6 missing policy links to the footer and hides
cart / checkout / my-account links
5. Fires a GA4 / GTM lead event on every quote click
HOW TO USE
Append this whole block AFTER the existing Compliance Bundle in the same
footer script box. Do NOT delete the compliance code. Do NOT paste twice.
To revert: delete this block and save. Nothing was written to products.
CONFIG: only the CFG object below ever needs editing (phone, MOQ, etc).
------------------------------------------------------------------- */
(function () {
'use strict';var CFG = {
wa: '8615678874024', // WhatsApp number, digits only, no +
email: '[email protected]',
moq: 30,
tiers: '30 / 50 / 100 / 200 pcs tier pricing',
delivery: '2-6 days from local EU / US / AU stock',
btnText: 'Get Wholesale Quote on WhatsApp',
policies: [
['Shipping & Delivery', '/shipping-policy/'],
['Wholesale Terms', '/wholesale-terms/'],
['Refund & Returns', '/refund_returns/'],
['Terms of Service', '/terms-of-service/'],
['FAQ', '/faq/'],
['Cookie Policy', '/cookie-policy/']
]
};var FLAG = 'data-csvq-v1';/* ---------- helpers ---------- */
function el(tag, cls, html) {
var n = document.createElement(tag);
if (cls) n.className = cls;
if (html != null) n.innerHTML = html;
return n;
}
function q(sel, root) { try { return (root || document).querySelector(sel); } catch (e) { return null; } }
function qa(sel, root) { try { return Array.prototype.slice.call((root || document).querySelectorAll(sel)); } catch (e) { return []; } }
function txt(sel) { var n = q(sel); return n ? (n.textContent || '').replace(/\s+/g, ' ').trim() : ''; }
function waUrl(msg) { return 'https://wa.me/' + CFG.wa + '?text=' + encodeURIComponent(msg); }
function track(label, detail) {
try {
if (typeof gtag === 'function') gtag('event', 'generate_lead', { method: 'WhatsApp', label: label, value: detail });
if (window.dataLayer && window.dataLayer.push) window.dataLayer.push({ event: 'csv_whatsapp_click', label: label, detail: detail });
} catch (e) {}
}/* ---------- 1. hide the shop shell ---------- */
function injectCSS() {
if (q('#csvq-css')) return;
var css = [
'form.cart, .woocommerce-variation-add-to-cart, .single_add_to_cart_button,',
'.add_to_cart_button, button[name="add-to-cart"], input.qty, .quantity,',
'.header-cart, .cart-icon, .mini-cart, .ux-cart, .header-cart-link,',
'.cart-price, a[href*="/cart/"], a[href*="/checkout/"], a[href*="/my-account/"]',
'{ display:none !important; }',
'.csvq-box{border:1px solid #d9e2ec;border-radius:12px;padding:18px 20px;margin:18px 0;',
'background:#f7fafc;font:14px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:#1f2933}',
'.csvq-box .csvq-title{font-size:17px;font-weight:700;margin:0 0 6px;color:#102a43}',
'.csvq-box .csvq-meta{margin:0 0 14px;color:#486581;font-size:13px}',
'.csvq-row{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:14px}',
'.csvq-row label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#486581;font-weight:600}',
'.csvq-row input,.csvq-row select{border:1px solid #bcccdc;border-radius:7px;padding:7px 9px;',
'font:inherit;background:#fff;color:#1f2933;min-width:110px}',
'.csvq-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;',
'background:#128c7e;color:#fff!important;text-decoration:none!important;',
'padding:11px 18px;border-radius:8px;font-weight:700;font-size:14px;border:0;cursor:pointer}',
'.csvq-btn:hover{background:#0e7268}',
'.csvq-btn.ghost{background:#fff;color:#128c7e!important;border:1px solid #128c7e;margin-left:8px}',
'.csvq-actions{display:flex;flex-wrap:wrap;align-items:center;gap:0}',
'#csvq-float{position:fixed;left:20px;bottom:20px;z-index:9998;background:#128c7e;color:#fff;',
'padding:12px 18px;border-radius:999px;text-decoration:none!important;font:600 14px/1.2 -apple-system,',
'BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;box-shadow:0 6px 20px rgba(0,0,0,.22)}',
'#csvq-float:hover{background:#0e7268}',
'.csvq-links{margin:12px 0 0;padding:10px 0 0;border-top:1px solid rgba(255,255,255,.15);',
'font-size:12px;line-height:1.9;width:100%}',
'.csvq-links a{color:inherit;opacity:.85;text-decoration:none;margin-right:14px;white-space:nowrap}',
'.csvq-links a:hover{opacity:1;text-decoration:underline}',
'@media(max-width:600px){#csvq-float{left:12px;bottom:12px;padding:10px 14px;font-size:13px}',
'.csvq-btn.ghost{margin:8px 0 0}}'
].join('\n');
var s = el('style', null, css);
s.id = 'csvq-css';
(document.head || document.documentElement).appendChild(s);
}/* ---------- 2. product page quote box ---------- */
function productInfo() {
var name = txt('h1.product_title') || txt('h1.entry-title') || txt('h1') || document.title.split('|')[0].trim();
var sku = txt('.sku') || txt('[itemprop="sku"]') || '';
// Some products carry a bogus 1-3 digit SKU (e.g. "30"). Never expose that to buyers.
if (!sku || /^\d{1,3}$/.test(sku)) sku = '';
return { name: name, sku: sku };
}
function isProductPage() {
return !!(document.body && (document.body.classList.contains('single-product') ||
q('form.cart') || q('h1.product_title') || q('.woocommerce-product-details__short-description')));
}
function quoteMessage(name, sku, qty, market) {
return "Hi Cloud Supply, I'd like a wholesale quote: " + name +
(sku ? ' (SKU ' + sku + ')' : '') + ' x ' + qty + ' pcs -> ' + market +
'. Please confirm local stock, tier price and delivery time.';
}
function injectProductBox() {
if (q('#csvq-box')) return;
if (!isProductPage()) return; // never on home / category / blog pages
var form = q('form.cart') || q('.product-info') || q('.summary') || q('.product-summary') ||
q('h1.product_title') || q('.entry-content');
if (!form) return;
var info = productInfo();
var box = el('div', 'csvq-box');
box.id = 'csvq-box';
box.innerHTML =
'B2B Wholesale Enquiry
' +
'MOQ ' + CFG.moq + ' pcs · ' + CFG.tiers + ' · ' + CFG.delivery +
' · ' + CFG.email + '
' +
'' +
'' +
'' +
'
' +
'';
var parent = form.parentNode;
if (!parent) return;
parent.insertBefore(box, form);var qtyEl = q('#csvq-qty'), marketEl = q('#csvq-market'), btn = q('#csvq-wa');
function sync() {
var n = parseInt(qtyEl && qtyEl.value, 10);
if (!n || n < CFG.moq) n = CFG.moq;
var m = marketEl ? marketEl.value : 'EU';
btn.setAttribute('href', waUrl(quoteMessage(info.name, info.sku, n, m)));
}
[qtyEl, marketEl].forEach(function (n) {
if (!n) return;
['change', 'input', 'blur'].forEach(function (ev) { n.addEventListener(ev, sync); });
});
btn.addEventListener('click', function () { sync(); track(info.name, qtyEl ? qtyEl.value : CFG.moq); });
sync();
}/* ---------- 3. site-wide floating button ---------- */
function injectFloat() {
if (q('#csvq-float')) return;
var a = el('a', null, '💬 WhatsApp Quote');
a.id = 'csvq-float';
a.target = '_blank'; a.rel = 'noopener noreferrer';
a.href = waUrl("Hi Cloud Supply, I'd like a wholesale quote. Please send me your catalogue, MOQ and tier prices.");
a.addEventListener('click', function () { track('floating_button', 'site-wide'); });
document.body.appendChild(a);
}/* ---------- 4. footer policy links ---------- */
function injectFooterLinks() {
if (q('#csvq-links')) return;
var f = q('footer') || q('.footer-wrapper') || q('#footer') || q('.footer');
if (!f) return;
var d = el('div', 'csvq-links');
d.id = 'csvq-links';
CFG.policies.forEach(function (p) {
var a = el('a', null, p[0]); a.href = p[1]; d.appendChild(a);
});
f.appendChild(d);
}/* ---------- boot: immediate + retries, fully idempotent ---------- */
var booted = false;
function boot() {
if (booted) return;
if (!document.body) return;
booted = true;
document.documentElement.setAttribute(FLAG, '1');
try { injectCSS(); } catch (e) {}
try { injectProductBox(); } catch (e) {}
try { injectFloat(); } catch (e) {}
try { injectFooterLinks(); } catch (e) {}
}
// LiteSpeed can delay DOMContentLoaded for a long time on this site,
// so mount immediately, then retry on several schedules.
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', boot);
}
boot();
[200, 900, 2500, 6000].forEach(function (ms) { setTimeout(boot, ms); });
})();