var breeze_prefetch = {"local_url":"https://bidbat.com","ignore_remote_prefetch":"1","ignore_list":["wp-admin","wp-login.php"]};
//# sourceURL=breeze-prefetch-js-extra
Skip to contentWhy Hire Our Shopify VAs
If you’re spending all your time working in your business instead of on it, it’s time to hire someone and win back your precious hours. You didn’t start your entrepreneurial journey to pile on stress, but for freedom and peace of mind.
At Bidbat, we match you with highly qualified Shopify assistants carefully selected to fit your unique requirements and the scope of your operations. With us as your partner, you will never have to worry about a bad hire that might waste your time, energy, and attention.
How Our Shopify Virtual Assistants Can Help
Shopify Store Setup & Customization
Account Creation | Theme Selection | Adding Content | Shipping & Payment Methods Setup | Connecting Apps | Launch
Product Listing & Optimization
High-Quality Images | Compelling Descriptions | Keyword Implementation | Custom Labels | Call to Action | Featuring Reviews
Inventory Management
Inventory Tracking | Inventory Sync | Multi-location Inventory | Purchase Order Management | Demand Forecasting | Reporting
Order Processing & Fulfillment
Order Processing | Inventory Management | Picking & Packing | Shipping | Returns and Exchanges
Customer Service & Support
Creating FAQ Page | Responding to Feedback | Collecting Reviews | Responding to Queries | Implementing Loyalty Programs
Digital Marketing & SEO
Email & Text Marketing | SEM, SMM, SEO, PPC | Content Marketing | Affiliate Marketing | Remarketing | Influencer Marketing
Analytics & Reporting
Finance, Fraud, Order, Acquisition, Inventory & Sales Reports | Live View | 3d Party Reporting App Integration
PPC Campaign Management
Keyword Research | Landing Page & Ad Creation | Budget Setting | Bid Strategy | Campaign Performance Monitoring
Custom Shopify Solutions
Plus, Theme & App Development | Speed Optimization | Headless Ecommerce | Conversion Rate Optimization
40+ Industries
Supporting real estate, e-commerce, healthcare, legal, and other key industries.
98.5% Client Satisfaction
Satisfaction rate reported based on post-onboarding client feedback surveys.
72% Repeat Client Rate
Our clients trust us enough to come back, again and again, for the value we deliver.
Hear from Our Clients
Here’s why our clients love our services and decide to stay with us for the long-term.
Frequently Asked Questions
Work Smarter. Our Pros Will Handle the Rest.
Our friendly client reps are just a click away. Tell us what’s on your mind – this could be the start of something big!
https://bidbat.com/wp-includes/js/jquery/jquery.min.js
https://bidbat.com/wp-includes/js/jquery/jquery-migrate.min.js
https://bidbat.com/wp-content/plugins/breeze/assets/js/js-front-end/breeze-prefetch-links.min.js
// Function to add new logos dynamically with SVG
function addNewLogo(logoName, svgContent = null) {
const marqueeWrapper = document.querySelector('.marquee-wrapper');
const existingLogos = document.querySelectorAll('.marquee-item');
const logoCount = existingLogos.length / 2; // Divide by 2 because of duplication
// Default SVG content if none provided
const defaultSvg = `
<svg class="logo" viewBox="0 0 140 60" fill="currentColor">
<rect x="15" y="20" width="20" height="20" rx="3" fill="currentColor"/>
<text x="45" y="25" font-family="Arial" font-size="12" font-weight="bold">${logoName}</text>
<text x="45" y="38" font-family="Arial" font-size="6">Brand Logo</text>
</svg>
`;
// Create new logo element
const newLogoHtml = `
<div class="marquee-item">
${svgContent || defaultSvg}
</div>
`;
// Add to both sets (original and duplicate)
const middleIndex = Math.floor(existingLogos.length / 2);
existingLogos[middleIndex - 1].insertAdjacentHTML('afterend', newLogoHtml);
existingLogos[existingLogos.length - 1].insertAdjacentHTML('afterend', newLogoHtml);
// Update animation width
const newLogoCount = logoCount + 1;
const itemWidth = window.innerWidth <= 480 ? 120 : window.innerWidth <= 768 ? 150 : 200;
marqueeWrapper.style.width = `calc(${itemWidth}px * ${newLogoCount * 2})`;
// Update animation
updateAnimation(newLogoCount, itemWidth);
}
// Function to add logo with custom SVG
function addCustomSVGLogo(svgContent) {
const marqueeWrapper = document.querySelector('.marquee-wrapper');
const existingLogos = document.querySelectorAll('.marquee-item');
const logoCount = existingLogos.length / 2;
const newLogoHtml = `
<div class="marquee-item">
${svgContent}
</div>
`;
const middleIndex = Math.floor(existingLogos.length / 2);
existingLogos[middleIndex - 1].insertAdjacentHTML('afterend', newLogoHtml);
existingLogos[existingLogos.length - 1].insertAdjacentHTML('afterend', newLogoHtml);
const newLogoCount = logoCount + 1;
const itemWidth = window.innerWidth <= 480 ? 120 : window.innerWidth <= 768 ? 150 : 200;
marqueeWrapper.style.width = `calc(${itemWidth}px * ${newLogoCount * 2})`;
updateAnimation(newLogoCount, itemWidth);
}
function updateAnimation(logoCount, itemWidth) {
const styleSheet = document.styleSheets[0];
const keyframeRule = Array.from(styleSheet.cssRules).find(rule =>
rule.type === CSSRule.KEYFRAMES_RULE && rule.name === 'scroll'
);
if (keyframeRule) {
styleSheet.deleteRule(Array.from(styleSheet.cssRules).indexOf(keyframeRule));
}
const newKeyframe = `
@keyframes scroll {
0% { transform: translateX(0); }
100% { transform: translateX(-${itemWidth * logoCount}px); }
}
`;
styleSheet.insertRule(newKeyframe, styleSheet.cssRules.length);
}
// Example: Add new logo after 5 seconds
// setTimeout(() => {
// addNewLogo('Microsoft');
// }, 5000);
// Handle responsive changes
window.addEventListener('resize', () => {
const logoCount = document.querySelectorAll('.marquee-item').length / 2;
const itemWidth = window.innerWidth <= 480 ? 120 : window.innerWidth <= 768 ? 150 : 200;
document.querySelector('.marquee-wrapper').style.width = `calc(${itemWidth}px * ${logoCount * 2})`;
updateAnimation(logoCount, itemWidth);
});
window.addEventListener('load', function() {
const blurElements = document.querySelectorAll('.parallax-scroll');
// Clear zone settings - desktop and mobile
const blurSettings = {
desktop: {
clearZone: 300, // Center - 300px clear zone
maxBlur: 5
},
mobile: {
clearZone: 250, // Mobile center 150px clear zone
maxBlur: 3
}
};
const isMobile = window.innerWidth <= 768;
const currentSettings = isMobile ? blurSettings.mobile : blurSettings.desktop;
function updateBlur() {
const scrollY = window.pageYOffset;
const windowHeight = window.innerHeight;
const viewportCenter = scrollY + windowHeight / 2;
blurElements.forEach(element => {
const rect = element.getBoundingClientRect();
const elementTop = rect.top + scrollY;
const elementHeight = rect.height;
const elementCenter = elementTop + elementHeight / 2;
const distanceFromCenter = Math.abs(viewportCenter - elementCenter);
let blur = 0;
if (distanceFromCenter > currentSettings.clearZone) {
const blurDistance = distanceFromCenter - currentSettings.clearZone;
const blurProgress = Math.min(1, blurDistance / currentSettings.clearZone);
blur = blurProgress * currentSettings.maxBlur;
}
element.style.filter = `blur(${blur}px)`;
});
}
let isScrolling = false;
function handleScroll() {
if (!isScrolling) {
requestAnimationFrame(() => {
updateBlur();
isScrolling = false;
});
isScrolling = true;
}
}
window.addEventListener('scroll', handleScroll, { passive: true });
updateBlur();
});
document.addEventListener("DOMContentLoaded", function () {
if (typeof jQuery !== "undefined") {
jQuery(function ($) {
$(window).scroll(function () {
var scrollTop = $(window).scrollTop();
if (scrollTop > 100) {
$(".header-wrapper").addClass("fixed");
} else {
$(".header-wrapper").removeClass("fixed");
}
});
});
} else {
console.log("jQuery is not loaded!");
}
});
// Add interactive click effect
const container = document.querySelector('.custom-icon-container');
container.addEventListener('click', function() {
// Create ripple effect on click
const ripple = document.createElement('div');
ripple.style.position = 'absolute';
ripple.style.width = '100%';
ripple.style.height = '100%';
ripple.style.borderRadius = '50%';
ripple.style.border = '3px solid rgba(255, 75, 51, 0.8)';
ripple.style.animation = 'ripple 0.6s ease-out';
ripple.style.pointerEvents = 'none';
this.appendChild(ripple);
setTimeout(() => {
ripple.remove();
}, 600);
});
document.addEventListener("DOMContentLoaded", function () {
const btn = document.getElementById("schedule-demo");btn.addEventListener("click", function (e) {
e.preventDefault(); // prevent page reload
Calendly.initPopupWidget({
url: 'https://calendly.com/bidbatva/bidbat',
prefill: {},
pageSettings: {
backgroundColor: 'ffffff',
hideEventTypeDetails: false,
hideLandingPageDetails: false,
primaryColor: '0073e6',
textColor: '000000'
}
});
return false;
});
});
const lazyloadRunObserver = () => {
const lazyloadBackgrounds = document.querySelectorAll( `.e-con.e-parent:not(.e-lazyloaded)` );
const lazyloadBackgroundObserver = new IntersectionObserver( ( entries ) => {
entries.forEach( ( entry ) => {
if ( entry.isIntersecting ) {
let lazyloadBackground = entry.target;
if( lazyloadBackground ) {
lazyloadBackground.classList.add( 'e-lazyloaded' );
}
lazyloadBackgroundObserver.unobserve( entry.target );
}
});
}, { rootMargin: '200px 0px 200px 0px' } );
lazyloadBackgrounds.forEach( ( lazyloadBackground ) => {
lazyloadBackgroundObserver.observe( lazyloadBackground );
} );
};
const events = [
'DOMContentLoaded',
'elementor/lazyload/observe',
];
events.forEach( ( event ) => {
document.addEventListener( event, lazyloadRunObserver );
} );
var wpilFrontend = {"ajaxUrl":"/wp-admin/admin-ajax.php","postId":"2174","postType":"post","openInternalInNewTab":"0","openExternalInNewTab":"0","disableClicks":"0","openLinksWithJS":"0","trackAllElementClicks":"0","clicksI18n":{"imageNoText":"Image in link: No Text","imageText":"Image Title: ","noText":"No Anchor Text Found"}};
//# sourceURL=wpil-frontend-script-js-extra
https://bidbat.com/wp-content/plugins/link-whisper/js/frontend.min.js
https://bidbat.com/wp-content/plugins/elementor/assets/js/webpack.runtime.min.js
https://bidbat.com/wp-content/plugins/elementor/assets/js/frontend-modules.min.js
https://bidbat.com/wp-includes/js/jquery/ui/core.min.js
var elementorFrontendConfig = {"environmentMode":{"edit":false,"wpPreview":false,"isScriptDebug":false},"i18n":{"shareOnFacebook":"Share on Facebook","shareOnTwitter":"Share on Twitter","pinIt":"Pin it","download":"Download","downloadImage":"Download image","fullscreen":"Fullscreen","zoom":"Zoom","share":"Share","playVideo":"Play Video","previous":"Previous","next":"Next","close":"Close","a11yCarouselPrevSlideMessage":"Previous slide","a11yCarouselNextSlideMessage":"Next slide","a11yCarouselFirstSlideMessage":"This is the first slide","a11yCarouselLastSlideMessage":"This is the last slide","a11yCarouselPaginationBulletMessage":"Go to slide"},"is_rtl":false,"breakpoints":{"xs":0,"sm":480,"md":576,"lg":992,"xl":1440,"xxl":1600},"responsive":{"breakpoints":{"mobile":{"label":"Mobile Portrait","value":575,"default_value":767,"direction":"max","is_enabled":true},"mobile_extra":{"label":"Mobile Landscape","value":767,"default_value":880,"direction":"max","is_enabled":true},"tablet":{"label":"Tablet Portrait","value":991,"default_value":1024,"direction":"max","is_enabled":true},"tablet_extra":{"label":"Tablet Landscape","value":1199,"default_value":1200,"direction":"max","is_enabled":true},"laptop":{"label":"Laptop","value":1300,"default_value":1366,"direction":"max","is_enabled":false},"widescreen":{"label":"Widescreen","value":2400,"default_value":2400,"direction":"min","is_enabled":false}},"hasCustomBreakpoints":true},"version":"3.30.3","is_static":false,"experimentalFeatures":{"e_font_icon_svg":true,"additional_custom_breakpoints":true,"container":true,"e_optimized_markup":true,"theme_builder_v2":true,"nested-elements":true,"e_element_cache":true,"home_screen":true,"global_classes_should_enforce_capabilities":true,"cloud-library":true,"e_opt_in_v4_page":true,"mega-menu":true},"urls":{"assets":"https:\/\/bidbat.com\/wp-content\/plugins\/elementor\/assets\/","ajaxurl":"https:\/\/bidbat.com\/wp-admin\/admin-ajax.php","uploadUrl":"https:\/\/bidbat.com\/wp-content\/uploads"},"nonces":{"floatingButtonsClickTracking":"83e59ee1fa"},"swiperClass":"swiper","settings":{"page":[],"editorPreferences":[]},"kit":{"active_breakpoints":["viewport_mobile","viewport_mobile_extra","viewport_tablet","viewport_tablet_extra"],"viewport_mobile":575,"viewport_mobile_extra":767,"viewport_tablet":991,"viewport_tablet_extra":1199,"global_image_lightbox":"yes","lightbox_enable_counter":"yes","lightbox_enable_fullscreen":"yes","lightbox_enable_zoom":"yes","lightbox_enable_share":"yes","lightbox_title_src":"title","lightbox_description_src":"description"},"post":{"id":2174,"title":"Shopify%20Virtual%20Assistants%20for%20Growing%20Businesses%20-%20BidBat","excerpt":"","featuredImage":false}};
//# sourceURL=elementor-frontend-js-before
https://bidbat.com/wp-content/plugins/elementor/assets/js/frontend.min.js
https://bidbat.com/wp-content/plugins/elementor-pro/assets/lib/smartmenus/jquery.smartmenus.min.js
https://bidbat.com/wp-content/plugins/elementor/assets/lib/swiper/v8/swiper.min.js
https://bidbat.com/wp-content/plugins/elementor-pro/assets/js/webpack-pro.runtime.min.js
https://bidbat.com/wp-includes/js/dist/hooks.min.js
https://bidbat.com/wp-includes/js/dist/i18n.min.js
wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } );
//# sourceURL=wp-i18n-js-after
var ElementorProFrontendConfig = {"ajaxurl":"https:\/\/bidbat.com\/wp-admin\/admin-ajax.php","nonce":"645e2e39e5","urls":{"assets":"https:\/\/bidbat.com\/wp-content\/plugins\/elementor-pro\/assets\/","rest":"https:\/\/bidbat.com\/wp-json\/"},"settings":{"lazy_load_background_images":true},"popup":{"hasPopUps":true},"shareButtonsNetworks":{"facebook":{"title":"Facebook","has_counter":true},"twitter":{"title":"Twitter"},"linkedin":{"title":"LinkedIn","has_counter":true},"pinterest":{"title":"Pinterest","has_counter":true},"reddit":{"title":"Reddit","has_counter":true},"vk":{"title":"VK","has_counter":true},"odnoklassniki":{"title":"OK","has_counter":true},"tumblr":{"title":"Tumblr"},"digg":{"title":"Digg"},"skype":{"title":"Skype"},"stumbleupon":{"title":"StumbleUpon","has_counter":true},"mix":{"title":"Mix"},"telegram":{"title":"Telegram"},"pocket":{"title":"Pocket","has_counter":true},"xing":{"title":"XING","has_counter":true},"whatsapp":{"title":"WhatsApp"},"email":{"title":"Email"},"print":{"title":"Print"},"x-twitter":{"title":"X"},"threads":{"title":"Threads"}},"facebook_sdk":{"lang":"en_US","app_id":""},"lottie":{"defaultAnimationUrl":"https:\/\/bidbat.com\/wp-content\/plugins\/elementor-pro\/modules\/lottie\/assets\/animations\/default.json"}};
//# sourceURL=elementor-pro-frontend-js-before
https://bidbat.com/wp-content/plugins/elementor-pro/assets/js/frontend.min.js
https://bidbat.com/wp-content/plugins/elementor-pro/assets/js/elements-handlers.min.js
gsap.registerPlugin(ScrollTrigger);document.querySelectorAll(".heading-container .heading-animation").forEach((heading) => {
const split = new SplitType(heading, {
types: "words, chars",
});gsap.timeline({
scrollTrigger: {
trigger: heading.closest(".heading-container"),
start: "top 68%",
end: "+=60%",
scrub: 0.5,
},
}).to(split.chars, {
color: "#071D3B",
stagger: 0.1,
duration: 0.3,
ease: "none",
});
});
//reveal
gsap.utils.toArray('.jsimg, .jscontent, .jsblock').forEach((element, index) => {
gsap.to(element, {
clipPath: 'inset(0% 0% 0% 0%)',
duration: 1.8,
ease: "power3.out",
delay: index * 0.15,
scrollTrigger: {
trigger: element,
start: 'top 80%'
}
});
});
document.addEventListener('DOMContentLoaded', function() {
// Get elements
const toggleSwitch = document.getElementById('toggleSwitch');
const toggleLabelLeft = document.querySelector('.toggle-label-left');
const toggleLabelRight = document.querySelector('.toggle-label-right');
const hourlyElements = document.querySelectorAll('.hourly');
const monthlyElements = document.querySelectorAll('.monthly');
let isMonthly = false;// Toggle switch functionality
toggleSwitch.addEventListener('click', function() {
isMonthly = !isMonthly;
if (isMonthly) {
// Switch to monthly
toggleSwitch.classList.add('active');
toggleLabelLeft.classList.remove('active');
toggleLabelRight.classList.add('active');
// Show/hide price elements
hourlyElements.forEach(el => el.style.display = 'none');
monthlyElements.forEach(el => el.style.display = 'inline');
} else {
// Switch to hourly
toggleSwitch.classList.remove('active');
toggleLabelLeft.classList.add('active');
toggleLabelRight.classList.remove('active');
// Show/hide price elements
hourlyElements.forEach(el => el.style.display = 'inline');
monthlyElements.forEach(el => el.style.display = 'none');
}
});// Category Tab Switching
const categoryTabs = document.querySelectorAll('.category-tab');
const pricingContents = document.querySelectorAll('.pricing-content');categoryTabs.forEach(tab => {
tab.addEventListener('click', function() {
const category = this.getAttribute('data-category');
// Update active tab
categoryTabs.forEach(t => t.classList.remove('active'));
this.classList.add('active');// Show corresponding content
pricingContents.forEach(content => {
if (content.getAttribute('data-category') === category) {
content.classList.add('active');
} else {
content.classList.remove('active');
}
});
});
});// Select Package Button Actions
const selectBtns = document.querySelectorAll('.select-btn');
selectBtns.forEach(btn => {
btn.addEventListener('click', function() {
alert('Package selected! Redirecting to checkout...');
// Add your checkout logic here
});
});
});
jQuery(document).ready(function($) {
function addReadMore() {
$('.review-wrap h4').each(function() {
if ($(this).next('.read-more-btn').length > 0) {
return; // Already processed, skip
}
var $content = $(this);
var maxLines = 4;
var lineHeight = parseInt($content.css('line-height'));
var maxHeight = lineHeight * maxLines;
var actualHeight = $content[0].scrollHeight;
if (actualHeight > maxHeight) {
$content.css({
'max-height': maxHeight + 'px',
'overflow': 'hidden',
'position': 'relative'
});
$content.after('<span class="read-more-btn" style="color: #FF4B33; cursor: pointer; font-weight: 600; display: inline-block; margin-top: 10px;">Read More</span>');
$content.next('.read-more-btn').on('click', function() {
if ($content.css('max-height') !== 'none') {
$content.css('max-height', 'none');
$(this).text('Read Less');
} else {
$content.css('max-height', maxHeight + 'px');
$(this).text('Read More');
}
});
}
});
}addReadMore();
setTimeout(function() {
addReadMore();
}, 500);
$(document).on('click', '.swiper-button-next, .swiper-button-prev, .elementor-swiper-button', function() {
setTimeout(function() {
addReadMore();
}, 300);
});$(document).on('click', '.swiper-pagination-bullet', function() {
setTimeout(function() {
addReadMore();
}, 300);
});
});