<!--NOLIM--><!--NLM011--><!--settings{"applyTo":"1","elemClass":"animat"}settingsend--> <script> (function(){ function t_ready(e) { "loading" != document.readyState ? e() : document.addEventListener ? document.addEventListener("DOMContentLoaded", e) : document.attachEvent("onreadystatechange", function() { "loading" != document.readyState && e() }) } var t396_waitForFinalEvent = function() { var e = {}; return function(t, n, o) { o || (o = "Don't call this twice without a uniqueId"), e[o] && clearTimeout(e[o]), e[o] = setTimeout(t, n) } }(); function checkscale() { let e = document.querySelectorAll(".t396__artboard_scale .animat .tn-atom"); Array.prototype.forEach.call(e, function(e) { let t = window.getComputedStyle(e.closest(".tn-atom__scale-wrapper")).transform; if(t!='none') { e.closest(".tn-atom__scale-wrapper").style.removeProperty("transform"), e.closest(".animat").style.transform = t } }) } t_ready(function() { if (window.isFirefox || window.isOpera) { let e = document.querySelector("body"), t = document.createElement("style"); if (e.appendChild(t), t.setAttribute("id", "nlm011delete"), t.type = "text/css", t.styleSheet ? t.styleSheet.cssText = ".animat{display:none!important;" : t.appendChild(document.createTextNode(".animat{display:none!important;")), document.querySelectorAll(".t396__artboard_scale").length > 0) { let elList = 0; let count = 0; let int = setInterval(function() { let e = document.querySelectorAll(".t396__artboard_scale .animat"); let elList2 = e.length; if (elList == elList2) { count += 1; if (count == 3) { clearInterval(int); if (e.length == document.querySelectorAll(".t396__artboard_scale .animat .tn-atom").length) { checkscale(); setTimeout(function() { checkscale(); }, 0); let e = document.querySelector("#nlm011delete"); null !== e.parentNode && e.parentNode.removeChild(e), window.addEventListener("resize", function(e) { t396_waitForFinalEvent(function() { window.isMobile ? document.documentElement.clientWidth !== window.tn_window_width && checkscale() : checkscale() }, 500, "resizeruniqueid") }, !0); window.addEventListener("orientationchange", function() { t396_waitForFinalEvent(function() { window.isMobile ? document.documentElement.clientWidth !== window.tn_window_width && checkscale() : checkscale() }, 500, "resizeruniqueid") }); } } } else { count = 0; elList = elList2; } },50); } } }); })() </script> <style> .animat{ overflow:hidden!important; } </style>
Improved website interface for an online store of automobile spare parts
<!--NOLIM--><!--NLM011--><!--settings{"applyTo":"1","elemClass":"animat"}settingsend--> <script> (function(){ function t_ready(e) { "loading" != document.readyState ? e() : document.addEventListener ? document.addEventListener("DOMContentLoaded", e) : document.attachEvent("onreadystatechange", function() { "loading" != document.readyState && e() }) } var t396_waitForFinalEvent = function() { var e = {}; return function(t, n, o) { o || (o = "Don't call this twice without a uniqueId"), e[o] && clearTimeout(e[o]), e[o] = setTimeout(t, n) } }(); function checkscale() { let e = document.querySelectorAll(".t396__artboard_scale .animat .tn-atom"); Array.prototype.forEach.call(e, function(e) { let t = window.getComputedStyle(e.closest(".tn-atom__scale-wrapper")).transform; if(t!='none') { e.closest(".tn-atom__scale-wrapper").style.removeProperty("transform"), e.closest(".animat").style.transform = t } }) } t_ready(function() { if (window.isFirefox || window.isOpera) { let e = document.querySelector("body"), t = document.createElement("style"); if (e.appendChild(t), t.setAttribute("id", "nlm011delete"), t.type = "text/css", t.styleSheet ? t.styleSheet.cssText = ".animat{display:none!important;" : t.appendChild(document.createTextNode(".animat{display:none!important;")), document.querySelectorAll(".t396__artboard_scale").length > 0) { let elList = 0; let count = 0; let int = setInterval(function() { let e = document.querySelectorAll(".t396__artboard_scale .animat"); let elList2 = e.length; if (elList == elList2) { count += 1; if (count == 3) { clearInterval(int); if (e.length == document.querySelectorAll(".t396__artboard_scale .animat .tn-atom").length) { checkscale(); setTimeout(function() { checkscale(); }, 0); let e = document.querySelector("#nlm011delete"); null !== e.parentNode && e.parentNode.removeChild(e), window.addEventListener("resize", function(e) { t396_waitForFinalEvent(function() { window.isMobile ? document.documentElement.clientWidth !== window.tn_window_width && checkscale() : checkscale() }, 500, "resizeruniqueid") }, !0); window.addEventListener("orientationchange", function() { t396_waitForFinalEvent(function() { window.isMobile ? document.documentElement.clientWidth !== window.tn_window_width && checkscale() : checkscale() }, 500, "resizeruniqueid") }); } } } else { count = 0; elList = elList2; } },50); } } }); })() </script> <style> .animat{ overflow:hidden!important; } </style>
Retail & eCommerce
Industry
The client based in the United Kingdom owns an online store selling automobile spare parts.
Client
  • B2B Commerce Cloud
  • Visualforce Pages
  • Data Migration
  • Custom Logic
Salesforce Solutions
  • Uncomfortable to use the site, weak user interface and experience
  • A lack of data synchronization
Challenges Outline
>1 month
Duration
1 Salesforce Developer
Vimera Team
<!--NOLIM--><!--NLM011--><!--settings{"applyTo":"1","elemClass":"animat"}settingsend--> <script> (function(){ function t_ready(e) { "loading" != document.readyState ? e() : document.addEventListener ? document.addEventListener("DOMContentLoaded", e) : document.attachEvent("onreadystatechange", function() { "loading" != document.readyState && e() }) } var t396_waitForFinalEvent = function() { var e = {}; return function(t, n, o) { o || (o = "Don't call this twice without a uniqueId"), e[o] && clearTimeout(e[o]), e[o] = setTimeout(t, n) } }(); function checkscale() { let e = document.querySelectorAll(".t396__artboard_scale .animat .tn-atom"); Array.prototype.forEach.call(e, function(e) { let t = window.getComputedStyle(e.closest(".tn-atom__scale-wrapper")).transform; if(t!='none') { e.closest(".tn-atom__scale-wrapper").style.removeProperty("transform"), e.closest(".animat").style.transform = t } }) } t_ready(function() { if (window.isFirefox || window.isOpera) { let e = document.querySelector("body"), t = document.createElement("style"); if (e.appendChild(t), t.setAttribute("id", "nlm011delete"), t.type = "text/css", t.styleSheet ? t.styleSheet.cssText = ".animat{display:none!important;" : t.appendChild(document.createTextNode(".animat{display:none!important;")), document.querySelectorAll(".t396__artboard_scale").length > 0) { let elList = 0; let count = 0; let int = setInterval(function() { let e = document.querySelectorAll(".t396__artboard_scale .animat"); let elList2 = e.length; if (elList == elList2) { count += 1; if (count == 3) { clearInterval(int); if (e.length == document.querySelectorAll(".t396__artboard_scale .animat .tn-atom").length) { checkscale(); setTimeout(function() { checkscale(); }, 0); let e = document.querySelector("#nlm011delete"); null !== e.parentNode && e.parentNode.removeChild(e), window.addEventListener("resize", function(e) { t396_waitForFinalEvent(function() { window.isMobile ? document.documentElement.clientWidth !== window.tn_window_width && checkscale() : checkscale() }, 500, "resizeruniqueid") }, !0); window.addEventListener("orientationchange", function() { t396_waitForFinalEvent(function() { window.isMobile ? document.documentElement.clientWidth !== window.tn_window_width && checkscale() : checkscale() }, 500, "resizeruniqueid") }); } } } else { count = 0; elList = elList2; } },50); } } }); })() </script> <style> .animat{ overflow:hidden!important; } </style>
Business Goals
  • Make a website user-friendly and increase sales
  • Reduce workload of sales managers
<!--NOLIM--><!--NLM011--><!--settings{"applyTo":"1","elemClass":"animat"}settingsend--> <script> (function(){ function t_ready(e) { "loading" != document.readyState ? e() : document.addEventListener ? document.addEventListener("DOMContentLoaded", e) : document.attachEvent("onreadystatechange", function() { "loading" != document.readyState && e() }) } var t396_waitForFinalEvent = function() { var e = {}; return function(t, n, o) { o || (o = "Don't call this twice without a uniqueId"), e[o] && clearTimeout(e[o]), e[o] = setTimeout(t, n) } }(); function checkscale() { let e = document.querySelectorAll(".t396__artboard_scale .animat .tn-atom"); Array.prototype.forEach.call(e, function(e) { let t = window.getComputedStyle(e.closest(".tn-atom__scale-wrapper")).transform; if(t!='none') { e.closest(".tn-atom__scale-wrapper").style.removeProperty("transform"), e.closest(".animat").style.transform = t } }) } t_ready(function() { if (window.isFirefox || window.isOpera) { let e = document.querySelector("body"), t = document.createElement("style"); if (e.appendChild(t), t.setAttribute("id", "nlm011delete"), t.type = "text/css", t.styleSheet ? t.styleSheet.cssText = ".animat{display:none!important;" : t.appendChild(document.createTextNode(".animat{display:none!important;")), document.querySelectorAll(".t396__artboard_scale").length > 0) { let elList = 0; let count = 0; let int = setInterval(function() { let e = document.querySelectorAll(".t396__artboard_scale .animat"); let elList2 = e.length; if (elList == elList2) { count += 1; if (count == 3) { clearInterval(int); if (e.length == document.querySelectorAll(".t396__artboard_scale .animat .tn-atom").length) { checkscale(); setTimeout(function() { checkscale(); }, 0); let e = document.querySelector("#nlm011delete"); null !== e.parentNode && e.parentNode.removeChild(e), window.addEventListener("resize", function(e) { t396_waitForFinalEvent(function() { window.isMobile ? document.documentElement.clientWidth !== window.tn_window_width && checkscale() : checkscale() }, 500, "resizeruniqueid") }, !0); window.addEventListener("orientationchange", function() { t396_waitForFinalEvent(function() { window.isMobile ? document.documentElement.clientWidth !== window.tn_window_width && checkscale() : checkscale() }, 500, "resizeruniqueid") }); } } } else { count = 0; elList = elList2; } },50); } } }); })() </script> <style> .animat{ overflow:hidden!important; } </style>
Challenges
Solutions
Our client is using B2B Commerce Cloud with standard pages and needed to implement a custom solution to make the usage of the commerce site interface more effective. Based on the business requirements, the Vimera team has configured and implemented Visualforce pages, additionally, our experts have provided data migration and custom logic for price synchronization.
In order to build the custom user-friendly interface for mobile and desktop and enhance user experience, Visualforce pages have been implemented and configured instead of standard ones. Now there is no need to constantly change the HTML layout mainly, adding or removing products. Now the client can get an up-to-date list of goods. On the Visualforce page, a template is created for the list of products. Data is dynamically inserted into the template. The page with updated information is displayed in the browser.

To adapt all data and information to the Commerce Cloud platform, the Vimera team has provided data migration to B2B/CloudCraze.

The idea was to create a custom logic that would be responsible for price synchronization between Salesforce CPQ and Salesforce B2B/CloudCraze objects. It allows sales teams to speed up and facilitate the process of setting quotes and prices.
Visualforce

CloudCraze
2
1
<!--NOLIM--><!--NLM011--><!--settings{"applyTo":"1","elemClass":"animat"}settingsend--> <script> (function(){ function t_ready(e) { "loading" != document.readyState ? e() : document.addEventListener ? document.addEventListener("DOMContentLoaded", e) : document.attachEvent("onreadystatechange", function() { "loading" != document.readyState && e() }) } var t396_waitForFinalEvent = function() { var e = {}; return function(t, n, o) { o || (o = "Don't call this twice without a uniqueId"), e[o] && clearTimeout(e[o]), e[o] = setTimeout(t, n) } }(); function checkscale() { let e = document.querySelectorAll(".t396__artboard_scale .animat .tn-atom"); Array.prototype.forEach.call(e, function(e) { let t = window.getComputedStyle(e.closest(".tn-atom__scale-wrapper")).transform; if(t!='none') { e.closest(".tn-atom__scale-wrapper").style.removeProperty("transform"), e.closest(".animat").style.transform = t } }) } t_ready(function() { if (window.isFirefox || window.isOpera) { let e = document.querySelector("body"), t = document.createElement("style"); if (e.appendChild(t), t.setAttribute("id", "nlm011delete"), t.type = "text/css", t.styleSheet ? t.styleSheet.cssText = ".animat{display:none!important;" : t.appendChild(document.createTextNode(".animat{display:none!important;")), document.querySelectorAll(".t396__artboard_scale").length > 0) { let elList = 0; let count = 0; let int = setInterval(function() { let e = document.querySelectorAll(".t396__artboard_scale .animat"); let elList2 = e.length; if (elList == elList2) { count += 1; if (count == 3) { clearInterval(int); if (e.length == document.querySelectorAll(".t396__artboard_scale .animat .tn-atom").length) { checkscale(); setTimeout(function() { checkscale(); }, 0); let e = document.querySelector("#nlm011delete"); null !== e.parentNode && e.parentNode.removeChild(e), window.addEventListener("resize", function(e) { t396_waitForFinalEvent(function() { window.isMobile ? document.documentElement.clientWidth !== window.tn_window_width && checkscale() : checkscale() }, 500, "resizeruniqueid") }, !0); window.addEventListener("orientationchange", function() { t396_waitForFinalEvent(function() { window.isMobile ? document.documentElement.clientWidth !== window.tn_window_width && checkscale() : checkscale() }, 500, "resizeruniqueid") }); } } } else { count = 0; elList = elList2; } },50); } } }); })() </script> <style> .animat{ overflow:hidden!important; } </style>
Results
User experience improvement. The client has gained a user-friendly interface with configured automation.
Reduced workload. Now sales managers can concentrate on more prioritized tasks accelerating closing tasks duties.
<!--NOLIM--><!--NLM011--><!--settings{"applyTo":"1","elemClass":"animat"}settingsend--> <script> (function(){ function t_ready(e) { "loading" != document.readyState ? e() : document.addEventListener ? document.addEventListener("DOMContentLoaded", e) : document.attachEvent("onreadystatechange", function() { "loading" != document.readyState && e() }) } var t396_waitForFinalEvent = function() { var e = {}; return function(t, n, o) { o || (o = "Don't call this twice without a uniqueId"), e[o] && clearTimeout(e[o]), e[o] = setTimeout(t, n) } }(); function checkscale() { let e = document.querySelectorAll(".t396__artboard_scale .animat .tn-atom"); Array.prototype.forEach.call(e, function(e) { let t = window.getComputedStyle(e.closest(".tn-atom__scale-wrapper")).transform; if(t!='none') { e.closest(".tn-atom__scale-wrapper").style.removeProperty("transform"), e.closest(".animat").style.transform = t } }) } t_ready(function() { if (window.isFirefox || window.isOpera) { let e = document.querySelector("body"), t = document.createElement("style"); if (e.appendChild(t), t.setAttribute("id", "nlm011delete"), t.type = "text/css", t.styleSheet ? t.styleSheet.cssText = ".animat{display:none!important;" : t.appendChild(document.createTextNode(".animat{display:none!important;")), document.querySelectorAll(".t396__artboard_scale").length > 0) { let elList = 0; let count = 0; let int = setInterval(function() { let e = document.querySelectorAll(".t396__artboard_scale .animat"); let elList2 = e.length; if (elList == elList2) { count += 1; if (count == 3) { clearInterval(int); if (e.length == document.querySelectorAll(".t396__artboard_scale .animat .tn-atom").length) { checkscale(); setTimeout(function() { checkscale(); }, 0); let e = document.querySelector("#nlm011delete"); null !== e.parentNode && e.parentNode.removeChild(e), window.addEventListener("resize", function(e) { t396_waitForFinalEvent(function() { window.isMobile ? document.documentElement.clientWidth !== window.tn_window_width && checkscale() : checkscale() }, 500, "resizeruniqueid") }, !0); window.addEventListener("orientationchange", function() { t396_waitForFinalEvent(function() { window.isMobile ? document.documentElement.clientWidth !== window.tn_window_width && checkscale() : checkscale() }, 500, "resizeruniqueid") }); } } } else { count = 0; elList = elList2; } },50); } } }); })() </script> <style> .animat{ overflow:hidden!important; } </style>
Our testimonials
We continue to work with them, and we highly recommend them.
Nicholas Chang
VP of Sales & Marketing
Flower Company
Miami, Florida, US
They generally are happy to work on all aspects of custom Salesforce development.
Fedor Orth
Head of Software Engineering
Clear Aligner Provider
Berlin, Germany
Discuss your task with our team
<!--NOLIM--><!--NLM011--><!--settings{"applyTo":"1","elemClass":"animat"}settingsend--> <script> (function(){ function t_ready(e) { "loading" != document.readyState ? e() : document.addEventListener ? document.addEventListener("DOMContentLoaded", e) : document.attachEvent("onreadystatechange", function() { "loading" != document.readyState && e() }) } var t396_waitForFinalEvent = function() { var e = {}; return function(t, n, o) { o || (o = "Don't call this twice without a uniqueId"), e[o] && clearTimeout(e[o]), e[o] = setTimeout(t, n) } }(); function checkscale() { let e = document.querySelectorAll(".t396__artboard_scale .animat .tn-atom"); Array.prototype.forEach.call(e, function(e) { let t = window.getComputedStyle(e.closest(".tn-atom__scale-wrapper")).transform; if(t!='none') { e.closest(".tn-atom__scale-wrapper").style.removeProperty("transform"), e.closest(".animat").style.transform = t } }) } t_ready(function() { if (window.isFirefox || window.isOpera) { let e = document.querySelector("body"), t = document.createElement("style"); if (e.appendChild(t), t.setAttribute("id", "nlm011delete"), t.type = "text/css", t.styleSheet ? t.styleSheet.cssText = ".animat{display:none!important;" : t.appendChild(document.createTextNode(".animat{display:none!important;")), document.querySelectorAll(".t396__artboard_scale").length > 0) { let elList = 0; let count = 0; let int = setInterval(function() { let e = document.querySelectorAll(".t396__artboard_scale .animat"); let elList2 = e.length; if (elList == elList2) { count += 1; if (count == 3) { clearInterval(int); if (e.length == document.querySelectorAll(".t396__artboard_scale .animat .tn-atom").length) { checkscale(); setTimeout(function() { checkscale(); }, 0); let e = document.querySelector("#nlm011delete"); null !== e.parentNode && e.parentNode.removeChild(e), window.addEventListener("resize", function(e) { t396_waitForFinalEvent(function() { window.isMobile ? document.documentElement.clientWidth !== window.tn_window_width && checkscale() : checkscale() }, 500, "resizeruniqueid") }, !0); window.addEventListener("orientationchange", function() { t396_waitForFinalEvent(function() { window.isMobile ? document.documentElement.clientWidth !== window.tn_window_width && checkscale() : checkscale() }, 500, "resizeruniqueid") }); } } } else { count = 0; elList = elList2; } },50); } } }); })() </script> <style> .animat{ overflow:hidden!important; } </style>
We assign a wide range of services
Salesforce Implementation & Customization

Salesforce Consulting & System Architecture

Salesforce Integration

Salesforce Org Audit

Salesforce Org Support

Salesforce Quick Start

Salesforce AppExchange Applications Development

Data Management & Migration

Migration to Salesforce Lightning