SK700-II AdBlue

Proud to be Powered by Vontier. Sharing a united vision that is driven by innovation. Find out more

For over two decades, Gilbarco Veeder-Root has been committed to working closely with its customers and industry associations to introduce environmentally friendly alternative fuels at the forecourt. Over the last few years, the use of environmentally friendly alternatives has grown significantly. To support this growth, Gilbarco Veeder-Root introduced its first AdBlue® dispenser four years ago.

One of the reasons for this growth can be attributed to the fact that vehicle manufacturers are coming under ever increasing pressure to meet stringent European emission targets and the Euro VI standards due to be introduced from September 2014. In order to meet these regulations, manufacturers are adopting Selective Catalytic Reduction (SCR) technology, which uses Diesel Exhaust Fluid (DEF) or AdBlue®.

So what is AdBlue®? In summary, AdBlue® is an additive that is used in the SCR process. It is particularly known for its ability to reduce harmful emissions and is injected into exhaust gases, cleaning them before they enter the atmosphere.

AdBlue® dispensing does pose some unique challenges however. Due to AdBlue® properties such as compatibility only with stainless steel and few grades of plastics, freezing at -11°C, and crystallisation on contact with air, even the most minor impurities can damage the expensive catalytic systems of vehicles.

Gilbarco Veeder-Root’s modular SK700-II AdBlue® pump range has been uniquely designed and field proven to meet the rigorous demands that AdBlue suppliers face when it comes to AdBlue® filling, whilst at the same time fitting seamlessly with the rest of the solutions and systems on your forecourt. 

AdBlue® pumps are available in lane orientated single or double sided configuration, or in combination with other fuel grades, with different options for nozzle protection and heaters suited to different climatic conditions.

Gilbarco Veeder-Root’s dispensers and above-ground container range provide a plug and play solution, making it very easy for you to add AdBlue® refuelling facilities on your forecourt. In addition, Gilbarco Veeder-Root’s modular SK700-II AdBlue® range is also available in ATEX.

AdBlue® is a registered trademark of Verband Der Automobilindustrie (VDA).

Fail safe
The pressure delivery system avoids crystallisation, the dispenser hydraulics are corrosion proof, while automatic heating and a smart door prevents freezing. The SK700-II AdBlue® ensures maximum uptime and damage free filling.

Proven 
SK700-II AdBlue® installations have continuously performed in Finland at temperatures as low as -25°c, especially important as AdBlue® freezes at -11°c.

Versatile 
SK700-II AdBlue® will fit seamlessly with the rest of the solutions and systems on your forecourt. Choose from Standalone, Combi or Integrated configuration and options to build the right AdBlue® filling solution for your forecourt. The ATEX version of AdBlue® is also available so you can combine with petrol and diesel grades.

Design matters 
AdBlue® when not being regularly distributed and if in contact with oxygen can crystalise. The SK700-II AdBlue® incorporates a corrosion proof electromagnetic flow meter, which is highly advanced in the industry. It has no moving parts and no drifts to ensure it will not block and maximises uptime, while providing very accurate measurement, eliminating product loss.

Temperature operating range

-25°C to +40°C (-40°C option)

Adblue dispensing

4 to 40 litres / min

Metering technology

Electromagnetic flow meter

Built in heaters

FuHeat or Heated Hose

Heaters power consumption

0 - 950 Watts / hr  

Communication protocol options

As per standard SK700-II



Request a Quote


<script>

// CONFIG: map UTM parameter names -> input selectors
const fieldMap = {
utm_source: 'input[name="1097612_221968pi_1097612_221968"]',
utm_medium: 'input[name="1097612_221965pi_1097612_221965"]',
utm_campaign: 'input[name="1097612_221959pi_1097612_221959"]',
utm_content: 'input[name="1097612_221962pi_1097612_221962"]'
};

// CONFIG: whether to save values read from the URL into sessionStorage
const saveUrlToSession = true;

function safeSessionGet(key) {
try {
return sessionStorage.getItem(key);
} catch (e) {
return null;
}
}

function safeSessionSet(key, value) {
if (!saveUrlToSession) return;
try {
sessionStorage.setItem(key, value);
} catch (e) {
// ignore storage write failures
}
}

function getUrlParam(paramName) {
const urlParams = new URLSearchParams(window.location.search);
return urlParams.get(paramName); // returns null if not present
}

function setFieldValue(el, value) {
if (!el) return;
el.value = value;
// trigger input/change events for libraries that listen for them
el.dispatchEvent(new Event('input', { bubbles: true }));
el.dispatchEvent(new Event('change', { bubbles: true }));
}

function populateKey(paramName, selector) {
const el = document.querySelector(selector);

// 1) Try sessionStorage first
const sessVal = safeSessionGet(paramName);
if (sessVal !== null && sessVal !== '') {
setFieldValue(el, sessVal);
return;
}

// 2) Fallback to URL param
const urlVal = getUrlParam(paramName);
if (urlVal !== null && urlVal !== '') {
setFieldValue(el, urlVal);
safeSessionSet(paramName, urlVal); // store for future pages if enabled
}
}

function populateHiddenFields() {
Object.keys(fieldMap).forEach(paramName => {
populateKey(paramName, fieldMap[paramName]);
});
}

if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', populateHiddenFields);
} else {
populateHiddenFields();
}

// Optional: allow manual calls from other scripts
window.populateHiddenFields = populateHiddenFields;

(function () {
// CONFIG
const fieldMap = {
utm_source: 'input[name="1097612_221968pi_1097612_221968"]',
utm_medium: 'input[name="1097612_221965pi_1097612_221965"]',
utm_campaign: 'input[name="1097612_221959pi_1097612_221959"]',
utm_content: 'input[name="1097612_221962pi_1097612_221962"]'
};
const saveUrlToSession = true;

// Safe session helpers
function safeSessionGet(key) {
try { return sessionStorage.getItem(key); } catch (e) { return null; }
}
function safeSessionSet(key, value) {
if (!saveUrlToSession) return;
try { sessionStorage.setItem(key, value); } catch (e) {}
}

// URL helper
function getUrlParam(paramName) {
const urlParams = new URLSearchParams(window.location.search);
return urlParams.get(paramName);
}

// DOM helper
function setFieldValue(el, value) {
if (!el) return;
el.value = value;
el.dispatchEvent(new Event('input', { bubbles: true }));
el.dispatchEvent(new Event('change', { bubbles: true }));
}

// Core: check session first, then URL
function populateKey(paramName, selector) {
const el = document.querySelector(selector);
const sessVal = safeSessionGet(paramName);
if (sessVal !== null && sessVal !== '') {
setFieldValue(el, sessVal);
return;
}
const urlVal = getUrlParam(paramName);
if (urlVal !== null && urlVal !== '') {
setFieldValue(el, urlVal);
safeSessionSet(paramName, urlVal);
}
}

// Populate all configured fields
function populateHiddenFields() {
Object.keys(fieldMap).forEach(paramName => {
populateKey(paramName, fieldMap[paramName]);
});
}

// Init
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', populateHiddenFields);
} else {
populateHiddenFields();
}
window.populateHiddenFields = populateHiddenFields;
})();
</script>

<script>
document.addEventListener('DOMContentLoaded', function() {
// Function to get URL parameters
function getUrlParam(paramName) {
const urlParams = new URLSearchParams(window.location.search);
return urlParams.get(paramName);
}

// Get the utm_source value
const utmSource = getUrlParam('utm_source');
const utmMedium = getUrlParam('utm_medium'); // Also get others
const utmCampaign = getUrlParam('utm_campaign');
const utmContent = getUrlParam('utm_content');

// --- Method 1: Direct Assignment (if form fields exist) ---
// Find your form fields by name/ID and set their value
const sourceField = document.querySelector('input[name="1097612_221968pi_1097612_221968"]'); // Adjust selector
if (sourceField && utmSource) {
sourceField.value = utmSource;
}
const mediumField = document.querySelector('input[name="1097612_221965pi_1097612_221965"]'); // Adjust selector
if (mediumField && utmMedium) {
mediumField.value = utmMedium;
}
const campaignField = document.querySelector('input[name="1097612_221959pi_1097612_221959"]'); // Adjust selector
if (campaignField && utmCampaign) {
campaignField.value = utmCampaign;
}
const contentField = document.querySelector('input[name="1097612_221962pi_1097612_221962"]'); // Adjust selector
if (contentField && utmContent) {
contentField.value = utmContent;
}
// Repeat for medium, campaign, etc.

// --- Method 2: Store in Session Storage (Recommended for multi-page) ---
// This keeps data across page views before form submission
if (utmSource) {
sessionStorage.setItem('utm_source', utmSource);
}
if (utmMedium) {
sessionStorage.setItem('utm_medium', utmMedium);
}
if (utmCampaign) {
sessionStorage.setItem('utm_campaign', utmCampaign);
}
if (utmContent) {
sessionStorage.setItem('utm_content', utmContent);
}
});

// Function to populate form on any page load (using session storage)
function populateHiddenFields() {
const utm_source = sessionStorage.getItem('utm_source');
const utm_medium = sessionStorage.getItem('utm_medium');
const utm_campaign = sessionStorage.getItem('utm_campaign');
const utm_content = sessionStorage.getItem('utm_content');

const sourceInput = document.querySelector('input[name="1097612_221968pi_1097612_221968"]');
if (sourceInput && utm_source) {
sourceInput.value = utm_source;
}
const mediumInput = document.querySelector('input[name="1097612_221965pi_1097612_221965"]');
if (mediumInput && utm_medium) {
mediumInput.value = utm_medium;
}
const campaignInput = document.querySelector('input[name="1097612_221959pi_1097612_221959"]');
if (campaignInput && utm_campaign) {
campaignInput.value = utm_campaign;
}
const contentInput = document.querySelector('input[name="1097612_221962pi_1097612_221962"]');
if (contentInput && utm_content) {
contentInput.value = utm_content;
}
}

// Run this when the form loads on the *final* page (e.g., the form page itself)
// Call populateHiddenFields(); when your form element is ready or on DOMContentLoaded again.
</script>