<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Bigplus Point of Sale</title>
	<atom:link href="https://bigplushq.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://bigplushq.com/</link>
	<description>Retail software, re-imagined.</description>
	<lastBuildDate>Mon, 14 Sep 2026 13:34:03 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>

<image>
	<url>https://bigplushq.com/wp-content/uploads/2022/08/cropped-favicon-32x32.png</url>
	<title>Bigplus Point of Sale</title>
	<link>https://bigplushq.com/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>LE&#124;RU</title>
		<link>https://bigplushq.com/blog/leru/</link>
		
		<dc:creator><![CDATA[Dylan Phillips]]></dc:creator>
		<pubDate>Mon, 14 Sep 2026 12:44:00 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://bigplushq.com/?p=14749</guid>

					<description><![CDATA[<p>How LE &#124; RU keeps Paarl and Durbanville in sync, with inter-branch transfers and a Shopify integration that shares one clean stockroom.</p>
<p>The post <a href="https://bigplushq.com/blog/leru/">LE|RU</a> appeared first on <a href="https://bigplushq.com">Bigplus Point of Sale</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="14749" class="elementor elementor-14749" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-fdf2bf7 e-flex e-con-boxed e-con e-parent" data-id="fdf2bf7" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-158cd96 elementor-widget elementor-widget-html" data-id="158cd96" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<style>
.bpp{
  --lime:#D2DD36;
  --lime-300:#DDE65E;
  --dark:#052923;
  --green-800:#09483E;
  --green-900:#073A31;
  --sage:#B6C8C5;
  --sage-100:#E8EEED;
  --sage-50:#F2F5F4;
  --offwhite:#F8F8FB;
  --body:#495057;
  --muted:#6E7A78;
  --border-subtle:#E8EEED;
  --border-strong:#B6C8C5;
  --shadow-card:0 1px 2px rgba(5,41,35,.06), 0 4px 16px rgba(5,41,35,.07);
  --shadow-raised:0 8px 32px rgba(5,41,35,.14);
  --radius-xl:24px;
  --radius-lg:16px;
  --radius-md:10px;
  --radius-pill:999px;
  --ease:cubic-bezier(.16,1,.3,1);
  font-family:'Poppins','Segoe UI',system-ui,sans-serif;
  color:var(--body);background:#fff;
  width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  opacity:0;
  transition:opacity .5s ease;
}
.bpp.bpp-ready{opacity:1;}
.bpp *{box-sizing:border-box;margin:0;padding:0;}
.bpp-in{width:80% !important;margin:0 auto;}
.bpp h1,.bpp h2,.bpp h3{font-weight:600;color:var(--dark) !important;letter-spacing:-.02em;line-height:1.2;}
.bpp p{line-height:1.65;color:var(--body);}
.bpp a{color:var(--green-800);text-decoration:none;}

.elementor-widget-html:has(.bpp) .elementor-widget-container{padding:0 !important;margin:0 !important;}
.elementor-element:has(> .elementor-widget-container > .bpp){padding:0 !important;}

.bpp-orb{position:absolute;z-index:0;pointer-events:none;border-radius:50%;filter:blur(46px);}
.bpp-orb.a{width:320px;height:320px;top:-120px;right:-80px;background:radial-gradient(circle, rgba(210,221,54,.34), transparent 68%);opacity:.6;}
.bpp-orb.b{width:280px;height:280px;bottom:-110px;left:-70px;background:radial-gradient(circle, rgba(76,124,255,.28), transparent 70%);opacity:.55;}

.bpp-head{
  position:relative;overflow:hidden;
  background:linear-gradient(150deg,#0C4034 0%,#06322A 55%,#041E19 100%);
  padding:clamp(120px,14vw,168px) 0 clamp(64px,7vw,84px);
}
.bpp-crumb{position:relative;z-index:1;display:flex;align-items:center;gap:8px;font-size:13px;color:var(--sage) !important;margin-bottom:26px;}
.bpp-crumb a{color:var(--sage) !important;}
.bpp-crumb .cur{color:var(--lime) !important;font-weight:500;}
.bpp-eyebrow{
  position:relative;z-index:1;
  display:inline-flex;background:rgba(210,221,54,.16);color:var(--lime) !important;
  font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  padding:6px 15px;border-radius:var(--radius-pill);margin-bottom:20px;
}
.bpp-head h1{position:relative;z-index:1;font-size:clamp(32px,4.2vw,46px);margin-bottom:18px;color:#fff !important;}
.bpp-hero-brk{display:inline;}
@media (max-width:640px){ .bpp-hero-brk{display:none;} }
.bpp-sub{position:relative;z-index:1;font-size:16.5px;line-height:1.6;color:var(--sage) !important;max-width:680px;margin-bottom:22px;}
.bpp-byline{position:relative;z-index:1;display:flex;align-items:center;gap:12px;font-size:13.5px;color:var(--sage) !important;flex-wrap:wrap;}
.bpp-byline img{height:34px;width:auto;max-width:150px;object-fit:contain;}
.bpp-byline .sep{color:rgba(182,200,197,.5) !important;}

.bpp-progress-track{position:fixed;top:0;left:0;width:100%;height:3px;background:transparent;z-index:9999;pointer-events:none;}
.bpp-progress-bar{height:100%;width:0%;background:linear-gradient(90deg,var(--lime),var(--lime-300));transition:width .1s linear;}
.bpp-totop{
  position:fixed;right:22px;bottom:22px;z-index:9998;width:46px;height:46px;border-radius:50%;
  background:var(--dark);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;
  box-shadow:var(--shadow-raised);opacity:0;transform:translateY(12px) scale(.9);pointer-events:none;
  transition:opacity .3s var(--ease), transform .3s var(--ease), background .3s ease;
}
.bpp-totop.show{opacity:1;transform:none;pointer-events:auto;}
.bpp-totop:hover{background:var(--green-800);}
.bpp-totop svg{width:18px;height:18px;stroke:var(--lime);stroke-width:2.4;fill:none;stroke-linecap:round;stroke-linejoin:round;}

.bpp-feature{padding:clamp(28px,4vw,44px) 0 0;}
.bpp-feature-grid{display:grid;grid-template-columns:1.7fr 1fr;gap:clamp(24px,3vw,40px);align-items:stretch;}

.bpp-plate{display:flex;flex-direction:column;gap:14px;}
.bpp-plate-frame{
  position:relative;height:clamp(280px,34vw,440px) !important;max-height:440px !important;
  border-radius:6px;overflow:hidden !important;
  border:1px solid rgba(5,41,35,.08);
  box-shadow:0 1px 1px rgba(5,41,35,.04), 0 24px 48px -20px rgba(5,41,35,.32);
}
.bpp-plate-frame.bpp-shimmer{background:linear-gradient(100deg, var(--sage-100) 30%, var(--sage-50) 50%, var(--sage-100) 70%);background-size:200% 100%;animation:bpp-shimmer 1.6s ease-in-out infinite;}
.bpp-plate-img{width:100% !important;height:100% !important;max-height:440px !important;object-fit:cover !important;object-position:50% 42% !important;display:block !important;opacity:0;transition:opacity .6s ease;}
.bpp-plate-img.bpp-loaded{opacity:1;}
.bpp-plate figcaption{
  display:flex;gap:10px;align-items:baseline;
  font-family:'Poppins',sans-serif;font-size:14px;line-height:1.5;color:var(--muted) !important;
  border-top:1px solid var(--border-subtle);padding-top:12px;
}
.bpp-plate-num{
  flex-shrink:0;font-family:'Poppins',sans-serif;font-size:10.5px;font-weight:600;
  letter-spacing:.09em;text-transform:uppercase;color:var(--green-800) !important;
  background:var(--sage-50);border-radius:4px;padding:3px 8px;transform:translateY(1px);
}

.bpp-figures{
  position:relative;overflow:hidden;display:flex;flex-direction:column;
  background:linear-gradient(150deg,#0C4034 0%,#06322A 55%,#041E19 100%);
  border-radius:var(--radius-lg);padding:clamp(26px,3vw,34px) clamp(24px,3vw,30px);
}
.bpp-figures-kicker{
  position:relative;z-index:1;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--lime) !important;margin-bottom:20px;
}
.bpp-figures-kicker::after{content:'';display:block;width:28px;height:1px;background:rgba(210,221,54,.5);margin-top:10px;}
.bpp-figures-list{position:relative;z-index:1;list-style:none;display:flex;flex-direction:column;flex:1;}
.bpp-figures-list li{
  display:flex;flex-direction:column;gap:3px;padding:16px 0;
  border-bottom:1px solid rgba(182,200,197,.16);
}
.bpp-figures-list li:first-child{padding-top:0;}
.bpp-figures-list li:last-child{padding-bottom:0;border-bottom:none;}
.bpp-figures-list li.rv:nth-child(1){transition-delay:0s;}
.bpp-figures-list li.rv:nth-child(2){transition-delay:.08s;}
.bpp-figures-list li.rv:nth-child(3){transition-delay:.16s;}
.bpp-figures-list li.rv:nth-child(4){transition-delay:.24s;}
.bpp-figures-list .num{font-family:'Poppins',sans-serif;font-weight:600;font-size:clamp(24px,2.4vw,30px);line-height:1.1;color:var(--lime) !important;}
.bpp-figures-list .num.alpha{font-size:clamp(18px,1.8vw,21px);color:#fff !important;}
.bpp-figures-list .lbl{font-size:13px;line-height:1.5;color:var(--sage) !important;}

.bpp-body-wrap{padding:clamp(56px,7vw,80px) 0 0;}
.bpp-cols{display:flex;gap:56px;align-items:flex-start;}
.bpp-article{flex:1;min-width:0;display:flex;flex-direction:column;gap:22px;}
.bpp-article h2{font-size:23px;margin-top:8px;}
.bpp-article h2:first-child{margin-top:0;}
.bpp-article h3{font-size:17.5px;margin-top:2px;}
.bpp-article p{font-size:16px;color:var(--body) !important;}
.bpp-article .lead{font-size:16px;color:var(--dark) !important;font-weight:500;}

.bpp-cap-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:2px;}
.bpp-cap-card{
  background:var(--sage-50);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);
  padding:24px;display:flex;flex-direction:column;gap:10px;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease);
}
.bpp-cap-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-card);}
.bpp-cap-icon{width:38px;height:38px;flex-shrink:0;border-radius:10px;background:var(--dark);display:flex;align-items:center;justify-content:center;}
.bpp-cap-icon svg{width:19px;height:19px;stroke:var(--lime);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.bpp-cap-card h3{font-size:16.5px;margin-top:2px;}
.bpp-article .bpp-cap-card p{font-size:14.5px;color:var(--body) !important;}
.bpp-cap-grid .rv:nth-child(1){transition-delay:0s;}
.bpp-cap-grid .rv:nth-child(2){transition-delay:.08s;}
.bpp-cap-grid .rv:nth-child(3){transition-delay:.16s;}
.bpp-cap-grid .rv:nth-child(4){transition-delay:.24s;}

.bpp-spot{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:0;transition:opacity .5s ease;background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%), rgba(210,221,54,.16), transparent 62%);}
.bpp-figures:hover .bpp-spot,.bpp-quote:hover .bpp-spot,.bpp-cta-panel:hover .bpp-spot,.bpp-head:hover .bpp-spot{opacity:1;}

.bpp-quote{
  position:relative;overflow:hidden;margin-top:6px;
  background:linear-gradient(150deg,#0C4034 0%,#06322A 55%,#041E19 100%);
  border-radius:var(--radius-xl);padding:clamp(30px,4vw,40px) clamp(28px,4vw,40px);
  display:flex;flex-direction:column;gap:18px;
}
.bpp-quote-tag{
  position:relative;z-index:1;align-self:flex-start;
  background:rgba(210,221,54,.16);color:var(--lime) !important;
  font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;
  padding:5px 14px;border-radius:var(--radius-pill);
}
.bpp-quote-text{position:relative;z-index:1;font-size:19px;font-weight:500;line-height:1.45;color:#fff !important;max-width:540px;}
#bpp-quote-text{color:#fff !important;}
.bpp-quote-by{position:relative;z-index:1;display:flex;align-items:center;gap:12px;font-size:13.5px;color:var(--sage) !important;}
.bpp-quote-by img{height:32px;width:auto;object-fit:contain;}
.bpp-insight-heading{position:relative;z-index:1;font-size:21px;font-weight:600;line-height:1.35;color:#fff !important;max-width:520px;}
.bpp-quote .bpp-insight-text{position:relative;z-index:1;font-size:15.5px;line-height:1.65;color:var(--sage) !important;max-width:540px;}

.bpp-duo{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:4px;align-items:stretch;}
.bpp-duo-frame{position:relative;min-height:260px;border-radius:var(--radius-lg);overflow:hidden;}
.bpp-duo-frame.bpp-shimmer{background:linear-gradient(100deg, var(--sage-100) 30%, var(--sage-50) 50%, var(--sage-100) 70%);background-size:200% 100%;animation:bpp-shimmer 1.6s ease-in-out infinite;}
.bpp-duo img{width:100%;height:100%;min-height:260px;object-fit:cover;border-radius:var(--radius-lg);display:block;opacity:0;transition:opacity .5s ease, transform .6s var(--ease);}
.bpp-duo img.bpp-loaded{opacity:1;}
.bpp-duo:hover img{transform:scale(1.035);}
.bpp-duo-card{
  background:var(--sage-50);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);
  padding:26px;display:flex;flex-direction:column;gap:12px;justify-content:center;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease);
}
.bpp-duo-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-card);}
.bpp-duo-card h3{font-size:17px;}
.bpp-duo-card p{font-size:14px;color:var(--body) !important;}
@keyframes bpp-shimmer{0%{background-position:200% 0;}100%{background-position:-200% 0;}}

.bpp-aside{width:300px;flex-shrink:0;position:relative;display:flex;flex-direction:column;gap:18px;}
.bpp-aside-card{background:#fff;border:1px solid rgba(5,41,35,.1);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:26px;display:flex;flex-direction:column;gap:14px;transition:transform .35s var(--ease), box-shadow .35s var(--ease);}
.bpp-aside-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-raised);}
.bpp-aside-card.subtle{background:var(--sage-50);border-color:var(--border-subtle);box-shadow:none;}
.bpp-aside-card.subtle:hover{box-shadow:var(--shadow-card);}
.bpp-aside.is-stuck .bpp-aside-card:first-child{box-shadow:var(--shadow-raised);}
.bpp-aside-logo{width:84px;height:auto;max-width:none;max-height:none;object-fit:contain;display:block;}
.bpp-aside-card h3{font-size:16px;}
.bpp-aside-loc{font-size:13px;color:var(--muted) !important;display:block;}
.bpp-aside-link{font-size:13px;color:var(--green-800) !important;text-decoration:underline;text-underline-offset:2px;}
.bpp-aside-link:hover{color:var(--dark) !important;}
.bpp-aside-facts{display:flex;flex-direction:column;gap:10px;font-size:13px;border-top:1px solid var(--border-subtle);padding-top:14px;}
.bpp-aside-facts > div{display:flex;justify-content:space-between;gap:14px;}
.bpp-aside-facts span:first-child{color:var(--muted) !important;flex-shrink:0;}
.bpp-aside-facts span:last-child{color:var(--dark) !important;text-align:right;}
.bpp-tags{display:flex;flex-wrap:wrap;gap:8px;}
.bpp-tags span{background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-pill);padding:6px 13px;font-size:12.5px;color:var(--green-800) !important;transition:all .25s var(--ease);cursor:default;}
.bpp-tags span:hover{background:var(--dark);color:#fff !important;border-color:var(--dark);transform:translateY(-2px) !important;}
.bpp-tags span.rv:nth-child(1){transition-delay:0s;}
.bpp-tags span.rv:nth-child(2){transition-delay:.06s;}
.bpp-tags span.rv:nth-child(3){transition-delay:.12s;}
.bpp-tags span.rv:nth-child(4){transition-delay:.18s;}
.bpp-tags span.rv:nth-child(5){transition-delay:.24s;}

.bpp-cta{padding:clamp(64px,8vw,96px) 0 clamp(72px,9vw,100px);}
.bpp-cta-panel{
  position:relative;overflow:hidden;
  background:linear-gradient(150deg,#0C4034 0%,#06322A 55%,#041E19 100%);border-radius:var(--radius-xl);
  padding:clamp(40px,5vw,60px);
  display:flex;gap:40px;align-items:center;justify-content:space-between;flex-wrap:wrap;
}
.bpp-cta-copy{position:relative;z-index:1;max-width:560px;}
.bpp-cta-copy h2{font-size:clamp(24px,3vw,32px);color:#fff !important;line-height:1.25;margin-bottom:12px;}
.bpp-cta-copy p{font-size:15px;line-height:1.6;color:var(--sage) !important;}
.bpp-btn{
  position:relative;z-index:1;display:inline-flex;align-items:center;gap:10px;
  background:var(--lime);border-radius:var(--radius-pill);padding:15px 30px;
  font-family:inherit;font-size:15px;font-weight:600;color:var(--dark) !important;text-decoration:none;
  transition:transform .3s var(--ease), box-shadow .3s ease, background .3s ease;
}
.bpp-btn svg{width:16px;height:16px;stroke:var(--dark);stroke-width:2.4;fill:none;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s var(--ease);}
.bpp-btn:hover{transform:translateY(-2px);background:var(--lime-300);box-shadow:0 14px 30px rgba(210,221,54,.3);}
.bpp-btn:hover svg{transform:translateX(3px);}

.bpp .rv{
  opacity:0;
  transform:translateY(34px) scale(.99);
  filter:blur(4px);
  transition:
    opacity .8s cubic-bezier(.22,1,.36,1),
    transform .8s cubic-bezier(.22,1,.36,1),
    filter .7s ease;
}
.bpp .rv.go{
  opacity:1;
  transform:none;
  filter:blur(0);
}
.bpp .rv.d1{ transition-delay:.1s; }
.bpp .rv.d2{ transition-delay:.2s; }

@media (prefers-reduced-motion:reduce){
  .bpp .rv{opacity:1 !important;transform:none !important;filter:none !important;transition:none !important;}
}

@media (max-width:900px){
  .bpp-cols{flex-direction:column;}
  .bpp-aside{width:100%;position:static;transform:none !important;}
  .bpp-feature-grid{grid-template-columns:1fr;}
  .bpp-plate-frame{height:clamp(220px,54vw,320px) !important;max-height:320px !important;}
  .bpp-figures-list{flex-direction:row;flex-wrap:wrap;gap:0;}
  .bpp-figures-list li{width:50%;padding:14px 0;border-bottom:1px solid rgba(182,200,197,.16);}
  .bpp-figures-list li:nth-last-child(-n+2){border-bottom:none;}
  .bpp-duo{grid-template-columns:1fr;}
  .bpp-totop{right:16px;bottom:16px;width:42px;height:42px;}
}

@media (max-width:640px){
  .bpp-cap-grid{grid-template-columns:1fr;}
}

@media (max-width:1024px){
  .bpp-in{width:90% !important;}
}

@media (max-width:640px){
  .bpp-in{width:88% !important;}
}

@media (max-width:520px){
  .bpp-figures-list li{width:100%;padding:14px 0;border-bottom:1px solid rgba(182,200,197,.16) !important;}
  .bpp-figures-list li:last-child{border-bottom:none !important;}
}
</style>
<noscript><style>.bpp{opacity:1 !important;}.bpp .rv{opacity:1 !important;transform:none !important;filter:none !important;}.bpp-plate-img,.bpp-duo img{opacity:1 !important;}.bpp-plate-frame,.bpp-duo-frame{animation:none !important;background:none !important;}</style></noscript>

<article class="bpp">

  <div class="bpp-progress-track"><div class="bpp-progress-bar"></div></div>
  <button class="bpp-totop" type="button" aria-label="Back to top">
    <svg viewBox="0 0 24 24"><line x1="12" y1="19" x2="12" y2="5"/><polyline points="5 12 12 5 19 12"/></svg>
  </button>

  <section class="bpp-head bpp-spotter">
    <div class="bpp-orb a"></div><div class="bpp-orb b"></div><div class="bpp-spot"></div>
    <div class="bpp-in">
      <div class="bpp-crumb rv">
        <a href="https://bigplushq.com/blog/">Blog</a><span>/</span><span class="cur">Customer Stories</span>
      </div>
      <span class="bpp-eyebrow rv">Customer Stories</span>
      <h1 class="rv">Two stores, one stockroom: how <br class="bpp-hero-brk">LE|RU runs multi-branch retail<br class="bpp-hero-brk"> on BigPlus</h1>
      <p class="bpp-sub rv">LE | RU curates clothing, jewellery and accessories for the modern Cape Town woman, from a store in Paarl and a second in Durbanville. Here's how owner Arina le Roux keeps stock, products and online orders moving between both.</p>
      <div class="bpp-byline rv">
        <img decoding="async" src="https://bigplushq.com/wp-content/uploads/2026/09/Leiru-Logo-White.webp" alt="LE | RU">
        <span>Customer Stories</span>
        <span class="sep">&bull;</span>
        <span>September 2026</span>
      </div>
    </div>
  </section>

  <section class="bpp-feature">
    <div class="bpp-in bpp-feature-grid">
      <figure class="bpp-plate rv">
        <div class="bpp-plate-frame bpp-shimmer">
          <img decoding="async" class="bpp-plate-img" src="https://bigplushq.com/wp-content/uploads/2026/09/LERU-Blog-Banner.webp" alt="Inside a LE | RU store, jewellery and clothing on display">
        </div>
        <figcaption><span class="bpp-plate-num">Fig. 01</span> Inside LE | RU, where every piece on the rail is also live online.</figcaption>
      </figure>

      <aside class="bpp-figures rv bpp-spotter">
        <div class="bpp-orb a"></div><div class="bpp-orb b"></div><div class="bpp-spot"></div>
        <span class="bpp-figures-kicker">By the numbers</span>
        <ul class="bpp-figures-list">
          <li class="rv"><span class="num" data-count="2">2</span><span class="lbl">Store branches, Paarl and Durbanville</span></li>
          <li class="rv"><span class="num alpha">Shopify</span><span class="lbl">Full sync of products, stock and orders</span></li>
          <li class="rv"><span class="num alpha">Inter-branch</span><span class="lbl">Transfers track stock as it moves between stores</span></li>
          <li class="rv"><span class="num alpha">Paarl</span><span class="lbl">Store pickup enabled for online orders</span></li>
        </ul>
      </aside>
    </div>
  </section>

  <section class="bpp-body-wrap">
    <div class="bpp-in bpp-cols">

      <article class="bpp-article rv">
        <h2>Two stores, one system</h2>
        <p>LE | RU curates clothing, jewellery and accessories inspired by the Cape Town lifestyle, sold from a store in Paarl and a second in Durbanville, alongside a Shopify store that ships nationwide. Running two physical branches next to a growing online shop means stock has to be accurate in three places at once, not just one till.</p>
        <p>BigPlus gives LE | RU a single system across both branches. Inter-branch transfers record stock the moment it moves from Paarl to Durbanville or back, so both teams can see what's actually on the rail at the other store instead of guessing or phoning through.</p>
        <p class="lead">One system, two stores, and a stockroom that finally agrees with itself.</p>

        <h2>How LE | RU uses BigPlus</h2>

        <div class="bpp-cap-grid">
          <div class="bpp-cap-card rv">
            <div class="bpp-cap-icon">
              <svg viewBox="0 0 24 24"><path d="M8 21c-3-3.8-5-6.7-5-9a5 5 0 0110 0c0 2.3-2 5.2-5 9z"/><circle cx="8" cy="12" r="1.6" fill="currentColor" stroke="none"/><path d="M17 15c-1.8-2.2-3-4-3-5.6a3 3 0 116 0c0 1.6-1.2 3.4-3 5.6z"/><circle cx="17" cy="9.4" r="1" fill="currentColor" stroke="none"/></svg>
            </div>
            <h3>Multi-store setup</h3>
            <p>Paarl and Durbanville run as two branches in one BigPlus account, with inter-branch transfers giving both stores a clear record of stock as it moves between them.</p>
          </div>
          <div class="bpp-cap-card rv">
            <div class="bpp-cap-icon">
              <svg viewBox="0 0 24 24"><path d="M12.6 3.4l7 7a2 2 0 010 2.8l-6.4 6.4a2 2 0 01-2.8 0l-7-7A2 2 0 013 11V5a2 2 0 012-2h6a2 2 0 011.4.6z"/><circle cx="7.5" cy="7.5" r="1.2" fill="currentColor" stroke="none"/></svg>
            </div>
            <h3>Product management</h3>
            <p>Every product, image and description is captured once in BigPlus. Nothing gets typed twice into a second system before it can go on the shelf or the site.</p>
          </div>
          <div class="bpp-cap-card rv">
            <div class="bpp-cap-icon">
              <svg viewBox="0 0 24 24"><path d="M20 11a8 8 0 00-14.6-4.4M4 13a8 8 0 0014.6 4.4"/><polyline points="5.4 3.6 5.4 7 8.8 7"/><polyline points="18.6 20.4 18.6 17 15.2 17"/></svg>
            </div>
            <h3>Full Shopify integration</h3>
            <p>Products, stock and orders sync between BigPlus and Shopify, so the online store reflects what's really in stock across both branches.</p>
          </div>
          <div class="bpp-cap-card rv">
            <div class="bpp-cap-icon">
              <svg viewBox="0 0 24 24"><path d="M6 8h12l-1 12H7L6 8z"/><path d="M9 8V6a3 3 0 016 0v2"/><polyline points="9 13 11 15 15 11"/></svg>
            </div>
            <h3>Store pickup</h3>
            <p>Customers can order online and collect from the Paarl store, with pickup enabled directly through the Shopify integration.</p>
          </div>
        </div>

        <div class="bpp-quote bpp-spotter">
          <div class="bpp-orb a"></div><div class="bpp-orb b"></div><div class="bpp-spot"></div>
          <span class="bpp-quote-tag">In her own words</span>
          <p class="bpp-quote-text" id="bpp-quote-text" style="color:#fff">&ldquo;I am so happy we ended up using BigPlus. It's made a massive difference to us, and I'm a fan and forever grateful.&rdquo;</p>
          <div class="bpp-quote-by">
            <img decoding="async" src="https://bigplushq.com/wp-content/uploads/2026/09/Leiru-Logo-White.webp" alt="LE | RU">
            <span>Arina le Roux, Owner, LE | RU</span>
          </div>
        </div>

        <div class="bpp-duo">
          <div class="bpp-duo-frame bpp-shimmer">
            <img decoding="async" src="https://bigplushq.com/wp-content/uploads/2026/09/LERU-Gold-Pearl-Necklace-scaled.webp" alt="Gold and pearl necklace from LE | RU's jewellery range">
          </div>
          <div class="bpp-duo-card">
            <h3>Every piece, captured once</h3>
            <p>Jewellery like this is exactly why product management matters most: one clean listing in BigPlus, with the same image and description following the item to the shelf and to Shopify.</p>
          </div>
        </div>

        <p>Two branches, one online store, and stock that tells the truth in all three places. That's the difference LE | RU has felt since moving onto BigPlus.</p>
      </article>

      <aside class="bpp-aside rv">
        <div class="bpp-aside-card">
          <img decoding="async" class="bpp-aside-logo" src="https://bigplushq.com/wp-content/uploads/2026/09/LERU-Logo.webp" alt="LE | RU">
          <div>
            <span class="bpp-aside-loc">Paarl &amp; Durbanville, Western Cape</span>
            <a class="bpp-aside-link" href="https://www.le-ru.co.za/" target="_blank" rel="noopener">Website: le-ru.co.za &rarr;</a>
          </div>
          <div class="bpp-aside-facts">
            <div><span>Type</span><span>Fashion, jewellery &amp; accessories</span></div>
            <div><span>Stores</span><span>2 (Paarl, Durbanville)</span></div>
            <div><span>Catalogue</span><span>Clothing, jewellery &amp; accessories</span></div>
            <div><span>Model</span><span>In-store + Shopify online</span></div>
          </div>
        </div>
        <div class="bpp-aside-card subtle">
          <h3>What they use</h3>
          <div class="bpp-tags">
            <span class="rv">Point of Sale</span>
            <span class="rv">Multi-Store</span>
            <span class="rv">Shopify Integration</span>
            <span class="rv">Inter-Branch Transfers</span>
            <span class="rv">Store Pickup</span>
          </div>
        </div>
      </aside>

    </div>
  </section>

  <section class="bpp-cta">
    <div class="bpp-in">
      <div class="bpp-cta-panel rv bpp-spotter">
        <div class="bpp-orb a"></div><div class="bpp-orb b"></div><div class="bpp-spot"></div>
        <div class="bpp-cta-copy">
          <h2>Running more than one store?</h2>
          <p>One shop or fifty, consignment or your own labels, tell us how you trade and we'll show you the parts of BigPlus that matter to you.</p>
        </div>
        <a class="bpp-btn" href="https://bigplushq.com">Book a demo <svg viewBox="0 0 24 24"><line x1="4" y1="12" x2="20" y2="12"/><polyline points="13 5 20 12 13 19"/></svg></a>
      </div>
    </div>
  </section>

</article>

<script>
(function(){
  var reduce = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;

  function animateCount(span){
    var target = parseInt(span.dataset.count, 10);
    if(isNaN(target)) return;
    var isPlus = /\+/.test(span.textContent);
    var start = performance.now();
    var dur = 1100;
    function tick(now){
      var p = Math.min(1, (now - start) / dur);
      var eased = 1 - Math.pow(1 - p, 3);
      var val = Math.round(target * eased);
      span.textContent = val.toLocaleString('en-ZA') + (isPlus && p >= 1 ? '+' : '');
      if(p < 1) requestAnimationFrame(tick);
    }
    requestAnimationFrame(tick);
  }

  function loadImage(img, frame){
    function done(){
      img.classList.add('bpp-loaded');
      if(frame) frame.classList.remove('bpp-shimmer');
    }
    if(img.complete && img.naturalWidth) done();
    else img.addEventListener('load', done, { once:true });
  }

  document.querySelectorAll('.bpp').forEach(function(root){
    if(root.dataset.bppInit) return;
    root.dataset.bppInit = '1';

    requestAnimationFrame(function(){ root.classList.add('bpp-ready'); });

    var plateImg = root.querySelector('.bpp-plate-img');
    if(plateImg) loadImage(plateImg, plateImg.closest('.bpp-plate-frame'));
    root.querySelectorAll('.bpp-duo-frame img').forEach(function(img){
      loadImage(img, img.closest('.bpp-duo-frame'));
    });

    if(reduce || !('IntersectionObserver' in window)){
      root.querySelectorAll('.rv').forEach(function(el){
        el.classList.add('go');
        var counter = el.querySelector('[data-count]');
        if(counter) animateCount(counter);
      });
    } else {
      var io = new IntersectionObserver(function(entries){
        entries.forEach(function(en){
          if(!en.isIntersecting) return;
          en.target.classList.add('go');
          var counter = en.target.querySelector('[data-count]');
          if(counter) animateCount(counter);
          io.unobserve(en.target);
        });
      }, { threshold:0.1, rootMargin:'0px 0px -6% 0px' });
      root.querySelectorAll('.rv').forEach(function(el){ io.observe(el); });
    }

    root.querySelectorAll('.bpp-spotter').forEach(function(panel){
      panel.addEventListener('mousemove', function(e){
        var r = panel.getBoundingClientRect();
        panel.style.setProperty('--mx', ((e.clientX - r.left) / r.width * 100) + '%');
        panel.style.setProperty('--my', ((e.clientY - r.top) / r.height * 100) + '%');
      });
    });

    var progressBar = root.querySelector('.bpp-progress-bar');
    var totop = root.querySelector('.bpp-totop');
    var aside = root.querySelector('.bpp-aside');
    var cols = root.querySelector('.bpp-cols');
    var topOffset = 160;
    var asideNatural = 0;
    var asideH = 0;
    var colsBot = 0;

    function measure(){
      if(!aside || !cols) return;
      aside.style.transform = 'translateY(0)';
      aside.classList.remove('is-stuck');
      void aside.offsetHeight;
      var cr = cols.getBoundingClientRect();
      colsBot = cr.top + window.scrollY + cr.height;
      asideNatural = aside.getBoundingClientRect().top + window.scrollY;
      asideH = aside.offsetHeight;
    }

    function onScroll(){
      var scrollTop = window.scrollY;
      var scrollable = document.documentElement.scrollHeight - window.innerHeight;
      var pct = scrollable > 0 ? Math.min(100, Math.max(0, (scrollTop / scrollable) * 100)) : 0;
      if(progressBar) progressBar.style.width = pct + '%';
      if(totop) totop.classList.toggle('show', scrollTop > 600);

      if(aside && cols && window.matchMedia('(min-width:901px)').matches){
        var stickyStart = asideNatural - topOffset;
        var maxShift = colsBot - asideNatural - asideH;
        if(maxShift < 0) maxShift = 0;
        var shift = scrollTop - stickyStart;
        if(shift < 0) shift = 0;
        if(shift > maxShift) shift = maxShift;
        aside.style.transform = 'translateY(' + shift + 'px)';
        aside.classList.toggle('is-stuck', shift > 0);
      } else if(aside){
        aside.style.transform = 'translateY(0)';
        aside.classList.remove('is-stuck');
      }
    }

    measure();
    window.addEventListener('scroll', onScroll, { passive:true });
    window.addEventListener('resize', function(){ measure(); onScroll(); });
    setTimeout(measure, 200);
    onScroll();

    if(totop){
      totop.addEventListener('click', function(){
        window.scrollTo({ top:0, behavior: reduce ? 'auto' : 'smooth' });
      });
    }
  });
})();
</script>				</div>
				</div>
					</div>
				</div>
				</div>
		<p>The post <a href="https://bigplushq.com/blog/leru/">LE|RU</a> appeared first on <a href="https://bigplushq.com">Bigplus Point of Sale</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Loyalty</title>
		<link>https://bigplushq.com/blog/loyalty/</link>
		
		<dc:creator><![CDATA[Dylan Phillips]]></dc:creator>
		<pubDate>Fri, 11 Sep 2026 07:32:36 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[photo]]></category>
		<category><![CDATA[product]]></category>
		<guid isPermaLink="false">https://bigplushq.com/?p=14688</guid>

					<description><![CDATA[<p>Blog/Features Features One loyalty programme, every place your customers shop Bigplus loyalty runs as a single balance across your till</p>
<div class="read-more-wrapper"><a class="more-link read-more-link" href="https://bigplushq.com/blog/loyalty/">Read More</a></div>
<p>The post <a href="https://bigplushq.com/blog/loyalty/">Loyalty</a> appeared first on <a href="https://bigplushq.com">Bigplus Point of Sale</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="14688" class="elementor elementor-14688" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-dfb9f84 e-flex e-con-boxed e-con e-parent" data-id="dfb9f84" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-5028172 elementor-widget elementor-widget-html" data-id="5028172" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<style>
.bpp{
  --lime:#D2DD36;
  --lime-300:#DDE65E;
  --dark:#052923;
  --green-800:#09483E;
  --green-900:#073A31;
  --sage:#B6C8C5;
  --sage-100:#E8EEED;
  --sage-50:#F2F5F4;
  --offwhite:#F8F8FB;
  --body:#495057;
  --muted:#6E7A78;
  --border-subtle:#E8EEED;
  --border-strong:#B6C8C5;
  --shadow-card:0 1px 2px rgba(5,41,35,.06), 0 4px 16px rgba(5,41,35,.07);
  --shadow-raised:0 8px 32px rgba(5,41,35,.14);
  --radius-xl:24px;
  --radius-lg:16px;
  --radius-md:10px;
  --radius-pill:999px;
  --ease:cubic-bezier(.16,1,.3,1);
  font-family:'Poppins','Segoe UI',system-ui,sans-serif;
  color:var(--body);background:#fff;
  width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  opacity:0;
  transition:opacity .5s ease;
}
.bpp.bpp-ready{opacity:1;}
.bpp *{box-sizing:border-box;margin:0;padding:0;}
.bpp-in{width:80%;margin:0 auto;}
.bpp h1,.bpp h2,.bpp h3{font-weight:600;color:var(--dark) !important;letter-spacing:-.02em;line-height:1.2;}
.bpp p{line-height:1.65;color:var(--body);}
.bpp a{color:var(--green-800);text-decoration:none;}

.elementor-widget-html:has(.bpp) .elementor-widget-container{padding:0 !important;margin:0 !important;}
.elementor-element:has(> .elementor-widget-container > .bpp){padding:0 !important;}

.bpp-orb{position:absolute;z-index:0;pointer-events:none;border-radius:50%;filter:blur(46px);}
.bpp-orb.a{width:320px;height:320px;top:-120px;right:-80px;background:radial-gradient(circle, rgba(210,221,54,.34), transparent 68%);opacity:.6;}
.bpp-orb.b{width:280px;height:280px;bottom:-110px;left:-70px;background:radial-gradient(circle, rgba(76,124,255,.28), transparent 70%);opacity:.55;}

.bpp-head{
  position:relative;overflow:hidden;
  background:linear-gradient(150deg,#0C4034 0%,#06322A 55%,#041E19 100%);
  padding:clamp(120px,14vw,168px) 0 clamp(64px,7vw,84px);
}
.bpp-crumb{position:relative;z-index:1;display:flex;align-items:center;gap:8px;font-size:13px;color:var(--sage) !important;margin-bottom:26px;}
.bpp-crumb a{color:var(--sage) !important;}
.bpp-crumb .cur{color:var(--lime) !important;font-weight:500;}
.bpp-eyebrow{
  position:relative;z-index:1;
  display:inline-flex;background:rgba(210,221,54,.16);color:var(--lime) !important;
  font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  padding:6px 15px;border-radius:var(--radius-pill);margin-bottom:20px;
}
.bpp-head h1{position:relative;z-index:1;font-size:clamp(32px,4.2vw,46px);max-width:18ch;margin-bottom:18px;color:#fff !important;}
.bpp-sub{position:relative;z-index:1;font-size:16.5px;line-height:1.6;color:var(--sage) !important;max-width:680px;margin-bottom:22px;}
.bpp-byline{position:relative;z-index:1;display:flex;align-items:center;gap:12px;font-size:13.5px;color:var(--sage) !important;flex-wrap:wrap;}
.bpp-byline img{width:38px;height:38px;border-radius:var(--radius-md);object-fit:cover;}
.bpp-byline .sep{color:rgba(182,200,197,.5) !important;}

.bpp-progress-track{position:fixed;top:0;left:0;width:100%;height:3px;background:transparent;z-index:9999;pointer-events:none;}
.bpp-progress-bar{height:100%;width:0%;background:linear-gradient(90deg,var(--lime),var(--lime-300));transition:width .1s linear;}
.bpp-totop{
  position:fixed;right:22px;bottom:22px;z-index:9998;width:46px;height:46px;border-radius:50%;
  background:var(--dark);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;
  box-shadow:var(--shadow-raised);opacity:0;transform:translateY(12px) scale(.9);pointer-events:none;
  transition:opacity .3s var(--ease), transform .3s var(--ease), background .3s ease;
}
.bpp-totop.show{opacity:1;transform:none;pointer-events:auto;}
.bpp-totop:hover{background:var(--green-800);}
.bpp-totop svg{width:18px;height:18px;stroke:var(--lime);stroke-width:2.4;fill:none;stroke-linecap:round;stroke-linejoin:round;}

.bpp-feature{padding:clamp(28px,4vw,44px) 0 0;}
.bpp-feature-grid{display:grid;grid-template-columns:1.7fr 1fr;gap:clamp(24px,3vw,40px);align-items:stretch;}

.bpp-plate{display:flex;flex-direction:column;gap:14px;}
.bpp-plate-frame{
  position:relative;height:clamp(280px,34vw,440px) !important;max-height:440px !important;
  border-radius:6px;overflow:hidden !important;
  border:1px solid rgba(5,41,35,.08);
  box-shadow:0 1px 1px rgba(5,41,35,.04), 0 24px 48px -20px rgba(5,41,35,.32);
}
.bpp-plate-frame.bpp-shimmer{background:linear-gradient(100deg, var(--sage-100) 30%, var(--sage-50) 50%, var(--sage-100) 70%);background-size:200% 100%;animation:bpp-shimmer 1.6s ease-in-out infinite;}
.bpp-plate-img{width:100% !important;height:100% !important;max-height:440px !important;object-fit:cover !important;object-position:50% 42% !important;display:block !important;opacity:0;transition:opacity .6s ease;}
.bpp-plate-img.bpp-loaded{opacity:1;}
.bpp-plate figcaption{
  display:flex;gap:10px;align-items:baseline;
  font-family:'Poppins',sans-serif;font-size:14px;line-height:1.5;color:var(--muted) !important;
  border-top:1px solid var(--border-subtle);padding-top:12px;
}
.bpp-plate-num{
  flex-shrink:0;font-family:'Poppins',sans-serif;font-size:10.5px;font-weight:600;
  letter-spacing:.09em;text-transform:uppercase;color:var(--green-800) !important;
  background:var(--sage-50);border-radius:4px;padding:3px 8px;transform:translateY(1px);
}

.bpp-figures{
  position:relative;overflow:hidden;display:flex;flex-direction:column;
  background:linear-gradient(150deg,#0C4034 0%,#06322A 55%,#041E19 100%);
  border-radius:var(--radius-lg);padding:clamp(26px,3vw,34px) clamp(24px,3vw,30px);
}
.bpp-figures-kicker{
  position:relative;z-index:1;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--lime) !important;margin-bottom:20px;
}
.bpp-figures-kicker::after{content:'';display:block;width:28px;height:1px;background:rgba(210,221,54,.5);margin-top:10px;}
.bpp-figures-list{position:relative;z-index:1;list-style:none;display:flex;flex-direction:column;flex:1;}
.bpp-figures-list li{
  display:flex;flex-direction:column;gap:3px;padding:16px 0;
  border-bottom:1px solid rgba(182,200,197,.16);
}
.bpp-figures-list li:first-child{padding-top:0;}
.bpp-figures-list li:last-child{padding-bottom:0;border-bottom:none;}
.bpp-figures-list li.rv:nth-child(1){transition-delay:0s;}
.bpp-figures-list li.rv:nth-child(2){transition-delay:.08s;}
.bpp-figures-list li.rv:nth-child(3){transition-delay:.16s;}
.bpp-figures-list li.rv:nth-child(4){transition-delay:.24s;}
.bpp-figures-list .num{font-family:'Poppins',sans-serif;font-weight:600;font-size:clamp(24px,2.4vw,30px);line-height:1.1;color:var(--lime) !important;}
.bpp-figures-list .num.alpha{font-size:clamp(18px,1.8vw,21px);color:#fff !important;}
.bpp-figures-list .lbl{font-size:13px;line-height:1.5;color:var(--sage) !important;}

.bpp-body-wrap{padding:clamp(56px,7vw,80px) 0 0;}
.bpp-cols{display:flex;gap:56px;align-items:flex-start;}
.bpp-article{flex:1;min-width:0;display:flex;flex-direction:column;gap:22px;}
.bpp-article h2{font-size:23px;margin-top:8px;}
.bpp-article h2:first-child{margin-top:0;}
.bpp-article h3{font-size:17.5px;margin-top:2px;}
.bpp-article p{font-size:16px;color:var(--body) !important;}
.bpp-article .lead{font-size:16px;color:var(--dark) !important;font-weight:500;}

.bpp-kicker{position:relative;display:block;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--green-800) !important;margin-bottom:8px;}
.bpp-kicker::after{content:'';display:inline-block;width:20px;height:1px;background:var(--green-800);opacity:.4;margin-left:10px;vertical-align:middle;}
.bpp-article .lead.pull{font-size:21px;line-height:1.45;border-left:3px solid var(--lime);padding:2px 0 2px 22px;margin:8px 0 4px;}

.bpp-cap-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:2px;}
.bpp-cap-card{
  background:var(--sage-50);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);
  padding:24px;display:flex;flex-direction:column;gap:10px;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease);
}
.bpp-cap-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-card);}
.bpp-cap-card h3{font-size:16.5px;margin-top:2px;}
.bpp-article .bpp-cap-card p{font-size:14.5px;color:var(--body) !important;}
.bpp-cap-grid .rv:nth-child(1){transition-delay:0s;}
.bpp-cap-grid .rv:nth-child(2){transition-delay:.08s;}
.bpp-cap-grid .rv:nth-child(3){transition-delay:.16s;}
.bpp-cap-grid .rv:nth-child(4){transition-delay:.24s;}

.bpp-stakes-list{display:flex;flex-direction:column;margin-top:2px;}
.bpp-stakes-item{display:flex;gap:22px;padding:22px 0;border-top:1px solid var(--border-subtle);}
.bpp-stakes-item:first-child{border-top:none;padding-top:0;}
.bpp-stakes-item:last-child{padding-bottom:0;}
.bpp-stakes-num{flex-shrink:0;width:52px;font-size:38px;font-weight:600;line-height:1;color:var(--lime) !important;letter-spacing:-.02em;}
.bpp-stakes-body{flex:1;min-width:0;}
.bpp-stakes-label{display:block;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--green-800) !important;margin-bottom:6px;}
.bpp-stakes-body h3{font-size:16.5px;margin:0 0 4px;}
.bpp-stakes-body p{font-size:14.5px;color:var(--body) !important;}

.bpp-spot{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:0;transition:opacity .5s ease;background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%), rgba(210,221,54,.16), transparent 62%);}
.bpp-figures:hover .bpp-spot,.bpp-cta-panel:hover .bpp-spot,.bpp-head:hover .bpp-spot{opacity:1;}

.bpp-duo{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:4px;align-items:stretch;}
.bpp-duo .bpp-plate{height:100%;display:flex;flex-direction:column;gap:10px;}
.bpp-duo .bpp-plate-frame{flex:1;height:auto !important;max-height:none !important;min-height:180px;}
.bpp-duo .bpp-plate-frame .bpp-plate-img{max-height:none !important;}
.bpp-duo-card{
  background:var(--sage-50);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);
  padding:26px;display:flex;flex-direction:column;gap:12px;justify-content:center;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease);
}
.bpp-duo-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-card);}
.bpp-duo-card h3{font-size:17px;}
.bpp-duo-card p{font-size:14px;color:var(--body) !important;}
@keyframes bpp-shimmer{0%{background-position:200% 0;}100%{background-position:-200% 0;}}

.bpp-aside{width:300px;flex-shrink:0;position:relative;display:flex;flex-direction:column;gap:18px;}
.bpp-aside-card{background:#fff;border:1px solid rgba(5,41,35,.1);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:26px;display:flex;flex-direction:column;gap:14px;transition:transform .35s var(--ease), box-shadow .35s var(--ease);}
.bpp-aside-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-raised);}
.bpp-aside-card.subtle{background:var(--sage-50);border-color:var(--border-subtle);box-shadow:none;}
.bpp-aside-card.subtle:hover{box-shadow:var(--shadow-card);}
.bpp-aside.is-stuck .bpp-aside-card:first-child{box-shadow:var(--shadow-raised);}
.bpp-aside-logo{width:52px;height:52px;border-radius:var(--radius-md);object-fit:cover;}
.bpp-aside-card h3{font-size:16px;}
.bpp-aside-loc{font-size:13px;color:var(--muted) !important;}
.bpp-aside-facts{display:flex;flex-direction:column;gap:10px;font-size:13px;border-top:1px solid var(--border-subtle);padding-top:14px;}
.bpp-aside-facts > div{display:flex;justify-content:space-between;gap:14px;}
.bpp-aside-facts span:first-child{color:var(--muted) !important;flex-shrink:0;}
.bpp-aside-facts span:last-child{color:var(--dark) !important;text-align:right;}
.bpp-tags{display:flex;flex-wrap:wrap;gap:8px;}
.bpp-tags span{background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-pill);padding:6px 13px;font-size:12.5px;color:var(--green-800) !important;transition:all .25s var(--ease);cursor:default;}
.bpp-tags span:hover{background:var(--dark);color:#fff !important;border-color:var(--dark);transform:translateY(-2px) !important;}
.bpp-tags span.rv:nth-child(1){transition-delay:0s;}
.bpp-tags span.rv:nth-child(2){transition-delay:.06s;}
.bpp-tags span.rv:nth-child(3){transition-delay:.12s;}
.bpp-tags span.rv:nth-child(4){transition-delay:.18s;}
.bpp-tags span.rv:nth-child(5){transition-delay:.24s;}

.bpp-cta{padding:clamp(64px,8vw,96px) 0 clamp(72px,9vw,100px);}
.bpp-cta-panel{
  position:relative;overflow:hidden;
  background:linear-gradient(150deg,#0C4034 0%,#06322A 55%,#041E19 100%);border-radius:var(--radius-xl);
  padding:clamp(40px,5vw,60px);
  display:flex;gap:40px;align-items:center;justify-content:space-between;flex-wrap:wrap;
}
.bpp-cta-copy{position:relative;z-index:1;max-width:560px;}
.bpp-cta-copy h2{font-size:clamp(24px,3vw,32px);color:#fff !important;line-height:1.25;margin-bottom:12px;}
.bpp-cta-copy p{font-size:15px;line-height:1.6;color:var(--sage) !important;}
.bpp-btn{
  position:relative;z-index:1;display:inline-flex;align-items:center;gap:10px;
  background:var(--lime);border-radius:var(--radius-pill);padding:15px 30px;
  font-family:inherit;font-size:15px;font-weight:600;color:var(--dark) !important;text-decoration:none;
  transition:transform .3s var(--ease), box-shadow .3s ease, background .3s ease;
}
.bpp-btn svg{width:16px;height:16px;stroke:var(--dark);stroke-width:2.4;fill:none;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s var(--ease);}
.bpp-btn:hover{transform:translateY(-2px);background:var(--lime-300);box-shadow:0 14px 30px rgba(210,221,54,.3);}
.bpp-btn:hover svg{transform:translateX(3px);}

.bpp .rv{
  opacity:0;
  transform:translateY(34px) scale(.99);
  filter:blur(4px);
  transition:
    opacity .8s cubic-bezier(.22,1,.36,1),
    transform .8s cubic-bezier(.22,1,.36,1),
    filter .7s ease;
}
.bpp .rv.go{
  opacity:1;
  transform:none;
  filter:blur(0);
}
.bpp .rv.d1{ transition-delay:.1s; }
.bpp .rv.d2{ transition-delay:.2s; }

@media (prefers-reduced-motion:reduce){
  .bpp .rv{opacity:1 !important;transform:none !important;filter:none !important;transition:none !important;}
}

@media (max-width:900px){
  .bpp-cols{flex-direction:column;}
  .bpp-aside{width:100%;position:static;transform:none !important;}
  .bpp-feature-grid{grid-template-columns:1fr;}
  .bpp-plate-frame{height:clamp(220px,54vw,320px) !important;max-height:320px !important;}
  .bpp-figures-list{flex-direction:row;flex-wrap:wrap;gap:0;}
  .bpp-figures-list li{width:50%;padding:14px 0;border-bottom:1px solid rgba(182,200,197,.16);}
  .bpp-figures-list li:nth-last-child(-n+2){border-bottom:none;}
  .bpp-duo{grid-template-columns:1fr;}
  .bpp-totop{right:16px;bottom:16px;width:42px;height:42px;}
}

@media (max-width:640px){
  .bpp-cap-grid{grid-template-columns:1fr;}
}

@media (max-width:520px){
  .bpp-figures-list li{width:100%;padding:14px 0;border-bottom:1px solid rgba(182,200,197,.16) !important;}
  .bpp-figures-list li:last-child{border-bottom:none !important;}
}
</style>
<noscript><style>.bpp{opacity:1 !important;}.bpp .rv{opacity:1 !important;transform:none !important;filter:none !important;}.bpp-plate-img,.bpp-duo img{opacity:1 !important;}.bpp-plate-frame,.bpp-duo-frame{animation:none !important;background:none !important;}</style></noscript>

<article class="bpp">

  <div class="bpp-progress-track"><div class="bpp-progress-bar"></div></div>
  <button class="bpp-totop" type="button" aria-label="Back to top">
    <svg viewBox="0 0 24 24"><line x1="12" y1="19" x2="12" y2="5"/><polyline points="5 12 12 5 19 12"/></svg>
  </button>

  <section class="bpp-head bpp-spotter">
    <div class="bpp-orb a"></div><div class="bpp-orb b"></div><div class="bpp-spot"></div>
    <div class="bpp-in">
      <div class="bpp-crumb rv">
        <a href="https://bigplushq.com/blog/">Blog</a><span>/</span><span class="cur">Features</span>
      </div>
      <span class="bpp-eyebrow rv">Features</span>
      <h1 class="rv">One loyalty programme, every place your customers shop</h1>
      <p class="bpp-sub rv">Bigplus loyalty runs as a single balance across your till and your online store, not two disconnected point systems that never sync.</p>
      <div class="bpp-byline rv">
        <img decoding="async" src="https://bigplushq.com/wp-content/uploads/2026/05/BP-Logo.png" alt="Bigplus">
        <span>Features</span>
        <span class="sep">&bull;</span>
        <span>11 September 2026</span>
        <span class="sep">&bull;</span>
        <span>2 min read</span>
      </div>
    </div>
  </section>

  <section class="bpp-feature">
    <div class="bpp-in bpp-feature-grid">
      <figure class="bpp-plate rv">
        <div class="bpp-plate-frame bpp-shimmer">
          <img decoding="async" class="bpp-plate-img" src="https://bigplushq.com/wp-content/uploads/2026/09/Loyalty-Banner-Image.webp" alt="Loyalty points being applied at checkout on a Bigplus till">
        </div>
        <figcaption><span class="bpp-plate-num">Fig. 01</span> Loyalty points applied at checkout on a Bigplus till</figcaption>
      </figure>

      <aside class="bpp-figures rv bpp-spotter">
        <div class="bpp-orb a"></div><div class="bpp-orb b"></div><div class="bpp-spot"></div>
        <span class="bpp-figures-kicker">By the numbers</span>
        <ul class="bpp-figures-list">
          <li class="rv"><span class="num" data-count="2">2</span><span class="lbl">Ecommerce platforms synced in real time (WooCommerce and Shopify)</span></li>
          <li class="rv"><span class="num alpha">Real-time</span><span class="lbl">Balance sync between till and online store</span></li>
          <li class="rv"><span class="num alpha">Any till</span><span class="lbl">Where points can be earned or redeemed</span></li>
          <li class="rv"><span class="num alpha">One balance</span><span class="lbl">No separate in-store and online point totals</span></li>
        </ul>
      </aside>
    </div>
  </section>

  <section class="bpp-body-wrap">
    <div class="bpp-in bpp-cols">

      <article class="bpp-article rv">
        <span class="bpp-kicker">The problem with most loyalty programmes</span>
        <h2>Two point systems that don't talk to each other</h2>
        <p>Most retail loyalty falls apart the moment a customer shops in more than one place. The till has its own points balance. The online store has another, usually bolted on through a separate app that was never built to talk to the POS. A customer who shops in both ends up with two accounts, two balances, and no way to combine them.</p>
        <p>Bigplus treats loyalty as one balance, not two. A purchase in store adds points the same way a purchase through the WooCommerce or Shopify storefront does, and both update the same customer record in real time. Staff at the till can see it. The customer sees it. There's nothing to reconcile.</p>
        <p class="lead pull">A loyalty programme that only works in one channel is really two loyalty programmes, and customers notice the difference.</p>

        <span class="bpp-kicker">Under the hood</span>
        <h2>How it works in Bigplus</h2>

        <div class="bpp-cap-grid">
          <div class="bpp-cap-card rv">
            <h3>Points that follow the customer</h3>
            <p>Every purchase, in store or online, adds to one loyalty balance instead of two separate programmes that never talk to each other.</p>
          </div>
          <div class="bpp-cap-card rv">
            <h3>Redeem anywhere, instantly</h3>
            <p>A customer can earn points on a Saturday in store and spend them on the website that night. Balances sync as soon as the till is back online.</p>
          </div>
          <div class="bpp-cap-card rv">
            <h3>Tiers and birthday rewards, automatically</h3>
            <p>Set tiered thresholds and birthday perks once, and Bigplus applies them at checkout without a cashier having to remember who qualifies.</p>
          </div>
          <div class="bpp-cap-card rv">
            <h3>One profile, not three spreadsheets</h3>
            <p>Loyalty sits on top of the same customer profile that already tracks purchase history, so promotions can target real buying patterns instead of guesswork.</p>
          </div>
        </div>

        <div class="bpp-stakes-list">
          <div class="bpp-stakes-item rv">
            <span class="bpp-stakes-num">01</span>
            <div class="bpp-stakes-body">
              <span class="bpp-stakes-label">Step one</span>
              <h3>A sale happens, anywhere</h3>
              <p>A customer buys something, whether that's at the till or through the online shop.</p>
            </div>
          </div>
          <div class="bpp-stakes-item rv">
            <span class="bpp-stakes-num">02</span>
            <div class="bpp-stakes-body">
              <span class="bpp-stakes-label">Step two</span>
              <h3>Bigplus calculates the reward</h3>
              <p>Points are worked out automatically from the sale total and whatever tier rules apply, with no manual entry required.</p>
            </div>
          </div>
          <div class="bpp-stakes-item rv">
            <span class="bpp-stakes-num">03</span>
            <div class="bpp-stakes-body">
              <span class="bpp-stakes-label">Step three</span>
              <h3>Every channel sees the same balance</h3>
              <p>Real-time sync between the till and WooCommerce or Shopify means there's never two numbers to reconcile.</p>
            </div>
          </div>
          <div class="bpp-stakes-item rv">
            <span class="bpp-stakes-num">04</span>
            <div class="bpp-stakes-body">
              <span class="bpp-stakes-label">Step four</span>
              <h3>Redeemed wherever it's earned</h3>
              <p>The customer spends the balance at any till or at online checkout. It's the same number either way.</p>
            </div>
          </div>
        </div>

        <div class="bpp-duo">
          <figure class="bpp-plate">
            <div class="bpp-plate-frame bpp-shimmer">
              <img decoding="async" class="bpp-plate-img" src="https://bigplushq.com/wp-content/uploads/2026/09/Loyalty-Blog-Page.webp" alt="Bigplus customer profile showing a synced loyalty balance">
            </div>
            <figcaption><span class="bpp-plate-num">Fig. 02</span> A customer profile with one loyalty balance, updated from every channel</figcaption>
          </figure>
          <div class="bpp-duo-card">
            <span class="bpp-stakes-label">Built in, not bolted on</span>
            <h3>No separate loyalty app to manage</h3>
            <p>Loyalty lives inside the same POS and back office Bigplus retailers already use for stock and sales. There's no second login, no separate dashboard, and no export and import between systems just to keep points accurate.</p>
          </div>
        </div>

        <p>For a retailer weighing up a loyalty app on top of their existing POS, the real question isn't whether it can calculate points. It's whether the balance it shows a customer at the till matches the one they saw online an hour earlier. Bigplus keeps that number the same everywhere, because it was never two systems to begin with.</p>
      </article>

      <aside class="bpp-aside rv">
        <div class="bpp-aside-card">
          <img decoding="async" class="bpp-aside-logo" src="https://bigplushq.com/wp-content/uploads/2026/05/BP-Logo.png" alt="Bigplus">
          <div>
            <h3>Omni-channel Loyalty</h3>
            <span class="bpp-aside-loc">Bigplus feature</span>
          </div>
          <div class="bpp-aside-facts">
            <div><span>Type</span><span>Feature</span></div>
            <div><span>Runs on</span><span>Bigplus POS + WooCommerce / Shopify</span></div>
            <div><span>Sync</span><span>Real-time</span></div>
            <div><span>Availability</span><span>All Bigplus stores</span></div>
          </div>
        </div>
        <div class="bpp-aside-card subtle">
          <h3>What it uses</h3>
          <div class="bpp-tags">
            <span class="rv">Loyalty</span>
            <span class="rv">Omni-channel</span>
            <span class="rv">WooCommerce</span>
            <span class="rv">Shopify</span>
            <span class="rv">Customer profiles</span>
          </div>
        </div>
      </aside>

    </div>
  </section>

  <section class="bpp-cta">
    <div class="bpp-in">
      <div class="bpp-cta-panel rv bpp-spotter">
        <div class="bpp-orb a"></div><div class="bpp-orb b"></div><div class="bpp-spot"></div>
        <div class="bpp-cta-copy">
          <h2>See loyalty running on your own till</h2>
          <p>Book a demo and we'll show you points, tiers and redemption working across your store and your online shop, on one balance.</p>
        </div>
        <a class="bpp-btn" href="https://bigplushq.com/request-a-demo">Book a demo <svg viewBox="0 0 24 24"><line x1="4" y1="12" x2="20" y2="12"/><polyline points="13 5 20 12 13 19"/></svg></a>
      </div>
    </div>
  </section>

</article>

<script>
(function(){
  var reduce = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;

  function animateCount(span){
    var target = parseInt(span.dataset.count, 10);
    if(isNaN(target)) return;
    var isPlus = /\+/.test(span.textContent);
    var start = performance.now();
    var dur = 1100;
    function tick(now){
      var p = Math.min(1, (now - start) / dur);
      var eased = 1 - Math.pow(1 - p, 3);
      var val = Math.round(target * eased);
      span.textContent = val.toLocaleString('en-ZA') + (isPlus && p >= 1 ? '+' : '');
      if(p < 1) requestAnimationFrame(tick);
    }
    requestAnimationFrame(tick);
  }

  function loadImage(img, frame){
    function done(){
      img.classList.add('bpp-loaded');
      if(frame) frame.classList.remove('bpp-shimmer');
    }
    if(img.complete && img.naturalWidth) done();
    else img.addEventListener('load', done, { once:true });
  }

  document.querySelectorAll('.bpp').forEach(function(root){
    if(root.dataset.bppInit) return;
    root.dataset.bppInit = '1';

    requestAnimationFrame(function(){ root.classList.add('bpp-ready'); });

    root.querySelectorAll('.bpp-plate-img').forEach(function(img){
      loadImage(img, img.closest('.bpp-plate-frame'));
    });

    if(reduce || !('IntersectionObserver' in window)){
      root.querySelectorAll('.rv').forEach(function(el){
        el.classList.add('go');
        var counter = el.querySelector('[data-count]');
        if(counter) animateCount(counter);
      });
    } else {
      var io = new IntersectionObserver(function(entries){
        entries.forEach(function(en){
          if(!en.isIntersecting) return;
          en.target.classList.add('go');
          var counter = en.target.querySelector('[data-count]');
          if(counter) animateCount(counter);
          io.unobserve(en.target);
        });
      }, { threshold:0.1, rootMargin:'0px 0px -6% 0px' });
      root.querySelectorAll('.rv').forEach(function(el){ io.observe(el); });
    }

    root.querySelectorAll('.bpp-spotter').forEach(function(panel){
      panel.addEventListener('mousemove', function(e){
        var r = panel.getBoundingClientRect();
        panel.style.setProperty('--mx', ((e.clientX - r.left) / r.width * 100) + '%');
        panel.style.setProperty('--my', ((e.clientY - r.top) / r.height * 100) + '%');
      });
    });

    var progressBar = root.querySelector('.bpp-progress-bar');
    var totop = root.querySelector('.bpp-totop');
    var aside = root.querySelector('.bpp-aside');
    var cols = root.querySelector('.bpp-cols');
    var topOffset = 160;
    var asideNatural = 0;
    var asideH = 0;
    var colsBot = 0;

    function measure(){
      if(!aside || !cols) return;
      aside.style.transform = 'translateY(0)';
      aside.classList.remove('is-stuck');
      void aside.offsetHeight;
      var cr = cols.getBoundingClientRect();
      colsBot = cr.top + window.scrollY + cr.height;
      asideNatural = aside.getBoundingClientRect().top + window.scrollY;
      asideH = aside.offsetHeight;
    }

    function onScroll(){
      var scrollTop = window.scrollY;
      var scrollable = document.documentElement.scrollHeight - window.innerHeight;
      var pct = scrollable > 0 ? Math.min(100, Math.max(0, (scrollTop / scrollable) * 100)) : 0;
      if(progressBar) progressBar.style.width = pct + '%';
      if(totop) totop.classList.toggle('show', scrollTop > 600);

      if(aside && cols && window.matchMedia('(min-width:901px)').matches){
        var stickyStart = asideNatural - topOffset;
        var maxShift = colsBot - asideNatural - asideH;
        if(maxShift < 0) maxShift = 0;
        var shift = scrollTop - stickyStart;
        if(shift < 0) shift = 0;
        if(shift > maxShift) shift = maxShift;
        aside.style.transform = 'translateY(' + shift + 'px)';
        aside.classList.toggle('is-stuck', shift > 0);
      } else if(aside){
        aside.style.transform = 'translateY(0)';
        aside.classList.remove('is-stuck');
      }
    }

    measure();
    window.addEventListener('scroll', onScroll, { passive:true });
    window.addEventListener('resize', function(){ measure(); onScroll(); });
    setTimeout(measure, 200);
    onScroll();

    if(totop){
      totop.addEventListener('click', function(){
        window.scrollTo({ top:0, behavior: reduce ? 'auto' : 'smooth' });
      });
    }
  });
})();
</script>				</div>
				</div>
					</div>
				</div>
				</div>
		<p>The post <a href="https://bigplushq.com/blog/loyalty/">Loyalty</a> appeared first on <a href="https://bigplushq.com">Bigplus Point of Sale</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Yoco Integration</title>
		<link>https://bigplushq.com/blog/yoco-integration/</link>
		
		<dc:creator><![CDATA[Dylan Phillips]]></dc:creator>
		<pubDate>Tue, 01 Sep 2026 08:06:49 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[integration]]></category>
		<category><![CDATA[product]]></category>
		<guid isPermaLink="false">https://bigplushq.com/?p=14470</guid>

					<description><![CDATA[<p>Run Your Whole Shop on Your Yoco Card Machine &#124; BigPlus HQ Blog/Integrations Integrations Run Your Whole Shop on Your</p>
<div class="read-more-wrapper"><a class="more-link read-more-link" href="https://bigplushq.com/blog/yoco-integration/">Read More</a></div>
<p>The post <a href="https://bigplushq.com/blog/yoco-integration/">Yoco Integration</a> appeared first on <a href="https://bigplushq.com">Bigplus Point of Sale</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="14470" class="elementor elementor-14470" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-0c68ef3 e-flex e-con-boxed e-con e-parent" data-id="0c68ef3" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-5e0087c elementor-widget elementor-widget-html" data-id="5e0087c" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Run Your Whole Shop on Your Yoco Card Machine | BigPlus HQ</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600&display=swap" rel="stylesheet">
</head>
<body>
<style>
.bpp{
  --lime:#D2DD36;
  --lime-300:#DDE65E;
  --dark:#052923;
  --green-800:#09483E;
  --green-900:#073A31;
  --sage:#B6C8C5;
  --sage-100:#E8EEED;
  --sage-50:#F2F5F4;
  --offwhite:#F8F8FB;
  --body:#495057;
  --muted:#6E7A78;
  --border-subtle:#E8EEED;
  --border-strong:#B6C8C5;
  --shadow-card:0 1px 2px rgba(5,41,35,.06), 0 4px 16px rgba(5,41,35,.07);
  --shadow-raised:0 8px 32px rgba(5,41,35,.14);
  --radius-xl:24px;
  --radius-lg:16px;
  --radius-md:10px;
  --radius-pill:999px;
  --ease:cubic-bezier(.16,1,.3,1);
  font-family:'Poppins','Segoe UI',system-ui,sans-serif;
  color:var(--body);background:#fff;
  width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  opacity:0;
  transition:opacity .5s ease;
}
.bpp.bpp-ready{opacity:1;}
.bpp *{box-sizing:border-box;margin:0;padding:0;}
.bpp-in{width:80%;margin:0 auto;}
.bpp h1,.bpp h2,.bpp h3{font-weight:600;color:var(--dark) !important;letter-spacing:-.02em;line-height:1.2;}
.bpp p{line-height:1.65;color:var(--body);}
.bpp a{color:var(--green-800);text-decoration:none;}

.elementor-widget-html:has(.bpp) .elementor-widget-container{padding:0 !important;margin:0 !important;}
.elementor-element:has(> .elementor-widget-container > .bpp){padding:0 !important;}

.bpp-orb{position:absolute;z-index:0;pointer-events:none;border-radius:50%;filter:blur(46px);}
.bpp-orb.a{width:320px;height:320px;top:-120px;right:-80px;background:radial-gradient(circle, rgba(210,221,54,.34), transparent 68%);opacity:.6;}
.bpp-orb.b{width:280px;height:280px;bottom:-110px;left:-70px;background:radial-gradient(circle, rgba(76,124,255,.28), transparent 70%);opacity:.55;}

.bpp-head{
  position:relative;overflow:hidden;
  background:linear-gradient(150deg,#0C4034 0%,#06322A 55%,#041E19 100%);
  padding:clamp(120px,14vw,168px) 0 clamp(64px,7vw,84px);
}
.bpp-crumb{position:relative;z-index:1;display:flex;align-items:center;gap:8px;font-size:13px;color:var(--sage) !important;margin-bottom:26px;}
.bpp-crumb a{color:var(--sage) !important;}
.bpp-crumb .cur{color:var(--lime) !important;font-weight:500;}
.bpp-eyebrow{
  position:relative;z-index:1;
  display:inline-flex;background:rgba(210,221,54,.16);color:var(--lime) !important;
  font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  padding:6px 15px;border-radius:var(--radius-pill);margin-bottom:20px;
}
.bpp-head h1{position:relative;z-index:1;font-size:clamp(30px,4.2vw,46px);max-width:22ch;margin-bottom:18px;color:#fff !important;}
.bpp-sub{position:relative;z-index:1;font-size:16.5px;line-height:1.6;color:var(--sage) !important;max-width:680px;margin-bottom:22px;}
.bpp-byline{position:relative;z-index:1;display:flex;align-items:center;gap:12px;font-size:13.5px;color:var(--sage) !important;flex-wrap:wrap;}
.bpp-byline img{height:34px !important;width:auto !important;max-width:none !important;object-fit:contain !important;}
.bpp-byline .sep{color:rgba(182,200,197,.5) !important;}

.bpp-progress-track{position:fixed;top:0;left:0;width:100%;height:3px;background:transparent;z-index:9999;pointer-events:none;}
.bpp-progress-bar{height:100%;width:0%;background:linear-gradient(90deg,var(--lime),var(--lime-300));transition:width .1s linear;}
.bpp-totop{
  position:fixed;right:22px;bottom:22px;z-index:9998;width:46px;height:46px;border-radius:50%;
  background:var(--dark);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;
  box-shadow:var(--shadow-raised);opacity:0;transform:translateY(12px) scale(.9);pointer-events:none;
  transition:opacity .3s var(--ease), transform .3s var(--ease), background .3s ease;
}
.bpp-totop.show{opacity:1;transform:none;pointer-events:auto;}
.bpp-totop:hover{background:var(--green-800);}
.bpp-totop svg{width:18px;height:18px;stroke:var(--lime);stroke-width:2.4;fill:none;stroke-linecap:round;stroke-linejoin:round;}

.bpp-feature{padding:clamp(28px,4vw,44px) 0 0;}
.bpp-feature-grid{display:grid;grid-template-columns:1.7fr 1fr;gap:clamp(24px,3vw,40px);align-items:stretch;}

.bpp-plate{display:flex;flex-direction:column;gap:14px;}
.bpp-plate-frame{
  position:relative;height:clamp(280px,34vw,440px) !important;max-height:440px !important;
  border-radius:6px;overflow:hidden !important;
  border:1px solid rgba(5,41,35,.08);
  box-shadow:0 1px 1px rgba(5,41,35,.04), 0 24px 48px -20px rgba(5,41,35,.32);
}
.bpp-plate-frame.bpp-shimmer{background:linear-gradient(100deg, var(--sage-100) 30%, var(--sage-50) 50%, var(--sage-100) 70%);background-size:200% 100%;animation:bpp-shimmer 1.6s ease-in-out infinite;}
.bpp-plate-img{width:100% !important;height:100% !important;max-height:440px !important;object-fit:cover !important;object-position:50% 42% !important;display:block !important;opacity:0;transition:opacity .6s ease;}
.bpp-plate-img.bpp-loaded{opacity:1;}
.bpp-plate figcaption{
  display:flex;gap:10px;align-items:baseline;
  font-family:'Poppins',sans-serif;font-size:14px;line-height:1.5;color:var(--muted) !important;
  border-top:1px solid var(--border-subtle);padding-top:12px;
}
.bpp-plate-num{
  flex-shrink:0;font-family:'Poppins',sans-serif;font-size:10.5px;font-weight:600;
  letter-spacing:.09em;text-transform:uppercase;color:var(--green-800) !important;
  background:var(--sage-50);border-radius:4px;padding:3px 8px;transform:translateY(1px);
}

.bpp-figures{
  position:relative;overflow:hidden;display:flex;flex-direction:column;
  background:linear-gradient(150deg,#0C4034 0%,#06322A 55%,#041E19 100%);
  border-radius:var(--radius-lg);padding:clamp(26px,3vw,34px) clamp(24px,3vw,30px);
}
.bpp-figures-kicker{
  position:relative;z-index:1;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--lime) !important;margin-bottom:20px;
}
.bpp-figures-kicker::after{content:'';display:block;width:28px;height:1px;background:rgba(210,221,54,.5);margin-top:10px;}
.bpp-figures-list{position:relative;z-index:1;list-style:none;display:flex;flex-direction:column;flex:1;}
.bpp-figures-list li{
  display:flex;flex-direction:column;gap:3px;padding:16px 0;
  border-bottom:1px solid rgba(182,200,197,.16);
}
.bpp-figures-list li:first-child{padding-top:0;}
.bpp-figures-list li:last-child{padding-bottom:0;border-bottom:none;}
.bpp-figures-list li.rv:nth-child(1){transition-delay:0s;}
.bpp-figures-list li.rv:nth-child(2){transition-delay:.08s;}
.bpp-figures-list li.rv:nth-child(3){transition-delay:.16s;}
.bpp-figures-list li.rv:nth-child(4){transition-delay:.24s;}
.bpp-figures-list .num{font-family:'Poppins',sans-serif;font-weight:600;font-size:clamp(24px,2.4vw,30px);line-height:1.1;color:var(--lime) !important;}
.bpp-figures-list .num.alpha{font-size:clamp(18px,1.8vw,21px);color:#fff !important;}
.bpp-figures-list .lbl{font-size:13px;line-height:1.5;color:var(--sage) !important;}

.bpp-body-wrap{padding:clamp(56px,7vw,80px) 0 0;}
.bpp-cols{display:flex;gap:56px;align-items:flex-start;}
.bpp-article{flex:1;min-width:0;display:flex;flex-direction:column;gap:22px;}
.bpp-article h2{font-size:23px;margin-top:8px;}
.bpp-article h2:first-child{margin-top:0;}
.bpp-article h3{font-size:17.5px;margin-top:2px;}
.bpp-article p{font-size:16px;color:var(--body) !important;}
.bpp-article .lead{font-size:16px;color:var(--dark) !important;font-weight:500;}

.bpp-kicker{position:relative;display:block;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--green-800) !important;margin-bottom:8px;}
.bpp-kicker::after{content:'';display:inline-block;width:20px;height:1px;background:var(--green-800);opacity:.4;margin-left:10px;vertical-align:middle;}

.bpp-article .lead.pull{font-size:21px;line-height:1.45;border-left:3px solid var(--lime);padding:2px 0 2px 22px;margin:8px 0 4px;}

.bpp-cap-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:2px;}
.bpp-cap-card{
  background:var(--sage-50);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);
  padding:24px;display:flex;flex-direction:column;gap:10px;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease);
}
.bpp-cap-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-card);}
.bpp-cap-card h3{font-size:16.5px;margin-top:2px;}
.bpp-article .bpp-cap-card p{font-size:14.5px;color:var(--body) !important;}
.bpp-cap-grid .rv:nth-child(1){transition-delay:0s;}
.bpp-cap-grid .rv:nth-child(2){transition-delay:.08s;}
.bpp-cap-grid .rv:nth-child(3){transition-delay:.16s;}
.bpp-cap-grid .rv:nth-child(4){transition-delay:.24s;}

.bpp-stakes-list{display:flex;flex-direction:column;margin-top:2px;}
.bpp-stakes-item{display:flex;gap:22px;padding:22px 0;border-top:1px solid var(--border-subtle);}
.bpp-stakes-item:first-child{border-top:none;padding-top:0;}
.bpp-stakes-item:last-child{padding-bottom:0;}
.bpp-stakes-num{flex-shrink:0;width:52px;font-size:38px;font-weight:600;line-height:1;color:var(--lime) !important;letter-spacing:-.02em;}
.bpp-stakes-body{flex:1;min-width:0;}
.bpp-stakes-label{display:block;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--green-800) !important;margin-bottom:6px;}
.bpp-stakes-body h3{font-size:16.5px;margin:0 0 4px;}
.bpp-stakes-body p{font-size:14.5px;color:var(--body) !important;}

.bpp-spot{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:0;transition:opacity .5s ease;background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%), rgba(210,221,54,.16), transparent 62%);}
.bpp-figures:hover .bpp-spot,.bpp-cta-panel:hover .bpp-spot,.bpp-head:hover .bpp-spot{opacity:1;}

.bpp-duo{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:4px;align-items:stretch;}
.bpp-duo .bpp-plate{height:100%;display:flex;flex-direction:column;gap:10px;}
.bpp-duo .bpp-plate-frame{flex:1;height:auto !important;max-height:380px !important;min-height:220px;}
.bpp-duo .bpp-plate-frame .bpp-plate-img{max-height:none !important;object-fit:cover !important;object-position:50% 50% !important;}
.bpp-duo-card{
  background:var(--sage-50);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);
  padding:26px;display:flex;flex-direction:column;gap:12px;justify-content:flex-start;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease);
}
.bpp-duo-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-card);}
.bpp-duo-card h3{font-size:17px;}
.bpp-duo-card p{font-size:14px;color:var(--body) !important;}
@keyframes bpp-shimmer{0%{background-position:200% 0;}100%{background-position:-200% 0;}}

.bpp-aside{width:300px;flex-shrink:0;position:relative;display:flex;flex-direction:column;gap:18px;}
.bpp-aside-card{background:#fff;border:1px solid rgba(5,41,35,.1);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:26px;display:flex;flex-direction:column;gap:14px;transition:transform .35s var(--ease), box-shadow .35s var(--ease);}
.bpp-aside-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-raised);}
.bpp-aside-card.subtle{background:var(--sage-50);border-color:var(--border-subtle);box-shadow:none;}
.bpp-aside-card.subtle:hover{box-shadow:var(--shadow-card);}
.bpp-aside.is-stuck .bpp-aside-card:first-child{box-shadow:var(--shadow-raised);}
.bpp-aside-logo{height:36px !important;width:auto !important;max-width:none !important;object-fit:contain !important;}
.bpp-aside-card h3{font-size:16px;}
.bpp-aside-loc{font-size:13px;color:var(--muted) !important;}
.bpp-aside-facts{display:flex;flex-direction:column;gap:10px;font-size:13px;border-top:1px solid var(--border-subtle);padding-top:14px;}
.bpp-aside-facts > div{display:flex;justify-content:space-between;gap:14px;}
.bpp-aside-facts span:first-child{color:var(--muted) !important;flex-shrink:0;}
.bpp-aside-facts span:last-child{color:var(--dark) !important;text-align:right;}
.bpp-tags{display:flex;flex-wrap:wrap;gap:8px;}
.bpp-tags span{background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-pill);padding:6px 13px;font-size:12.5px;color:var(--green-800) !important;transition:all .25s var(--ease);cursor:default;}
.bpp-tags span:hover{background:var(--dark);color:#fff !important;border-color:var(--dark);transform:translateY(-2px) !important;}
.bpp-tags span.rv:nth-child(1){transition-delay:0s;}
.bpp-tags span.rv:nth-child(2){transition-delay:.06s;}
.bpp-tags span.rv:nth-child(3){transition-delay:.12s;}
.bpp-tags span.rv:nth-child(4){transition-delay:.18s;}
.bpp-tags span.rv:nth-child(5){transition-delay:.24s;}

.bpp-cta{padding:clamp(64px,8vw,96px) 0 clamp(72px,9vw,100px);}
.bpp-cta-panel{
  position:relative;overflow:hidden;
  background:linear-gradient(150deg,#0C4034 0%,#06322A 55%,#041E19 100%);border-radius:var(--radius-xl);
  padding:clamp(40px,5vw,60px);
  display:flex;gap:40px;align-items:center;justify-content:space-between;flex-wrap:wrap;
}
.bpp-cta-copy{position:relative;z-index:1;max-width:560px;}
.bpp-cta-copy h2{font-size:clamp(24px,3vw,32px);color:#fff !important;line-height:1.25;margin-bottom:12px;}
.bpp-cta-copy p{font-size:15px;line-height:1.6;color:var(--sage) !important;}
.bpp-btn{
  position:relative;z-index:1;display:inline-flex;align-items:center;gap:10px;
  background:var(--lime);border-radius:var(--radius-pill);padding:15px 30px;
  font-family:inherit;font-size:15px;font-weight:600;color:var(--dark) !important;text-decoration:none;
  transition:transform .3s var(--ease), box-shadow .3s ease, background .3s ease;
}
.bpp-btn svg{width:16px;height:16px;stroke:var(--dark);stroke-width:2.4;fill:none;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s var(--ease);}
.bpp-btn:hover{transform:translateY(-2px);background:var(--lime-300);box-shadow:0 14px 30px rgba(210,221,54,.3);}
.bpp-btn:hover svg{transform:translateX(3px);}

.bpp .rv{
  opacity:0;
  transform:translateY(34px) scale(.99);
  filter:blur(4px);
  transition:
    opacity .8s cubic-bezier(.22,1,.36,1),
    transform .8s cubic-bezier(.22,1,.36,1),
    filter .7s ease;
}
.bpp .rv.go{
  opacity:1;
  transform:none;
  filter:blur(0);
}
.bpp .rv.d1{ transition-delay:.1s; }
.bpp .rv.d2{ transition-delay:.2s; }

@media (prefers-reduced-motion:reduce){
  .bpp .rv{opacity:1 !important;transform:none !important;filter:none !important;transition:none !important;}
}

@media (max-width:900px){
  .bpp-cols{flex-direction:column;}
  .bpp-aside{width:100%;position:static;transform:none !important;}
  .bpp-feature-grid{grid-template-columns:1fr;}
  .bpp-plate-frame{height:clamp(220px,54vw,320px) !important;max-height:320px !important;}
  .bpp-figures-list{flex-direction:row;flex-wrap:wrap;gap:0;}
  .bpp-figures-list li{width:50%;padding:14px 0;border-bottom:1px solid rgba(182,200,197,.16);}
  .bpp-figures-list li:nth-last-child(-n+2){border-bottom:none;}
  .bpp-duo{grid-template-columns:1fr;}
  .bpp-totop{right:16px;bottom:16px;width:42px;height:42px;}
}

@media (max-width:640px){
  .bpp-cap-grid{grid-template-columns:1fr;}
}

@media (max-width:520px){
  .bpp-figures-list li{width:100%;padding:14px 0;border-bottom:1px solid rgba(182,200,197,.16) !important;}
  .bpp-figures-list li:last-child{border-bottom:none !important;}
}
</style>
<noscript><style>.bpp{opacity:1 !important;}.bpp .rv{opacity:1 !important;transform:none !important;filter:none !important;}.bpp-plate-img{opacity:1 !important;}.bpp-plate-frame{animation:none !important;background:none !important;}</style></noscript>

<article class="bpp">

  <div class="bpp-progress-track"><div class="bpp-progress-bar"></div></div>
  <button class="bpp-totop" type="button" aria-label="Back to top">
    <svg viewBox="0 0 24 24"><line x1="12" y1="19" x2="12" y2="5"/><polyline points="5 12 12 5 19 12"/></svg>
  </button>

  <section class="bpp-head bpp-spotter">
    <div class="bpp-orb a"></div><div class="bpp-orb b"></div><div class="bpp-spot"></div>
    <div class="bpp-in">
      <div class="bpp-crumb rv">
        <a href="https://bigplushq.com/blog/">Blog</a><span>/</span><span class="cur">Integrations</span>
      </div>
      <span class="bpp-eyebrow rv">Integrations</span>
      <h1 class="rv">Run Your Whole Shop on Your Yoco Card Machine</h1>
      <p class="bpp-sub rv">BigPlus installs directly onto a Yoco Khumo Print or Neo Touch, turning the card machine already at the counter into a full point of sale, with every payment captured as a sale, a stock movement and a line in the day's reporting.</p>
      <div class="bpp-byline rv">
        <img decoding="async" src="https://bigplushq.com/wp-content/uploads/2026/07/Yoco-Logo.png" alt="Yoco" style="height:34px;width:auto;max-width:none;">
        <span>Integrations</span>
        <span class="sep">&bull;</span>
        <span>12 August 2026</span>
        <span class="sep">&bull;</span>
        <span>3 min read</span>
      </div>
    </div>
  </section>

  <section class="bpp-feature">
    <div class="bpp-in bpp-feature-grid">
      <figure class="bpp-plate rv">
        <div class="bpp-plate-frame bpp-shimmer">
          <img decoding="async" class="bpp-plate-img" src="https://bigplushq.com/wp-content/uploads/2026/09/Yoco-Integration.webp" alt="BigPlus running on a Yoco card machine">
        </div>
        <figcaption><span class="bpp-plate-num">Fig. 01</span> BigPlus on a Yoco Neo Touch card machine at the counter.</figcaption>
      </figure>

      <aside class="bpp-figures rv bpp-spotter">
        <div class="bpp-orb a"></div><div class="bpp-orb b"></div><div class="bpp-spot"></div>
        <span class="bpp-figures-kicker">By the numbers</span>
        <ul class="bpp-figures-list">
          <li class="rv"><span class="num" data-count="2">2</span><span class="lbl">Yoco devices supported: Khumo Print and Neo Touch</span></li>
          <li class="rv"><span class="num" data-count="4">4</span><span class="lbl">Platforms BigPlus runs on: Windows, Mac, iPad, Android</span></li>
          <li class="rv"><span class="num alpha">R895</span><span class="lbl">Starting BigPlus plan, per month</span></li>
          <li class="rv"><span class="num alpha">Offline ready</span><span class="lbl">Keeps trading through load-shedding and dropouts</span></li>
        </ul>
      </aside>
    </div>
  </section>

  <section class="bpp-body-wrap">
    <div class="bpp-in bpp-cols">

      <article class="bpp-article rv">
        <span class="bpp-kicker">The setup</span>
        <h2>One card machine, one system</h2>
        <p>Most retailers already have a Yoco Khumo Print or Neo Touch behind the counter, taking card payments every day. BigPlus installs directly onto that same machine and turns it into the full point of sale for the shop: products, stock, customers and reporting, running alongside the payment Yoco is already processing.</p>
        <p>There is no second device to buy and no separate terminal to learn. The card machine a retailer already trades on becomes the till.</p>
        <p class="lead pull">You keep the Yoco machine and the Yoco rates. BigPlus runs everything else on top of it.</p>

        <span class="bpp-kicker">The mechanism</span>
        <h2>How it works</h2>

        <div class="bpp-cap-grid">
          <div class="bpp-cap-card rv">
            <h3>Same machine, no swap</h3>
            <p>Keep trading on the Yoco Khumo Print or Neo Touch already at the counter. BigPlus installs on it directly, so there is no new terminal to unbox or learn.</p>
          </div>
          <div class="bpp-cap-card rv">
            <h3>Sales and stock, instantly</h3>
            <p>The moment a card payment clears on Yoco, BigPlus logs the sale and deducts the stock, so the shelf and the ledger agree without anyone re-keying anything.</p>
          </div>
          <div class="bpp-cap-card rv">
            <h3>Runs on any device</h3>
            <p>BigPlus is built to run on Windows PC, Mac, iPad and Android, so a Yoco terminal at the till can sit alongside a laptop in the back office on the same system.</p>
          </div>
          <div class="bpp-cap-card rv">
            <h3>One dashboard, every terminal</h3>
            <p>Run BigPlus across several Yoco machines or several stores and every one of them feeds the same live dashboard, with reporting and permissions set per site.</p>
          </div>
        </div>

        <span class="bpp-kicker">Setup</span>
        <h2>Go live in three steps</h2>

        <div class="bpp-stakes-list">
          <div class="bpp-stakes-item rv">
            <span class="bpp-stakes-num">01</span>
            <div class="bpp-stakes-body">
              <span class="bpp-stakes-label">Step one</span>
              <h3>Keep the Yoco machine</h3>
              <p>Install BigPlus straight onto the Khumo Print or Neo Touch already in use. No new hardware to buy, no terminal to swap out.</p>
            </div>
          </div>
          <div class="bpp-stakes-item rv">
            <span class="bpp-stakes-num">02</span>
            <div class="bpp-stakes-body">
              <span class="bpp-stakes-label">Step two</span>
              <h3>Load the catalogue</h3>
              <p>BigPlus imports the product list and stock so every sale on the card machine maps to the right item from day one.</p>
            </div>
          </div>
          <div class="bpp-stakes-item rv">
            <span class="bpp-stakes-num">03</span>
            <div class="bpp-stakes-body">
              <span class="bpp-stakes-label">Step three</span>
              <h3>Start selling</h3>
              <p>Ring up a sale, take the card on Yoco, and watch it land in BigPlus immediately, live stock and reporting included.</p>
            </div>
          </div>
        </div>

        <div class="bpp-duo">
          <figure class="bpp-plate">
            <div class="bpp-plate-frame bpp-shimmer">
              <img decoding="async" class="bpp-plate-img" src="https://bigplushq.com/wp-content/uploads/2026/07/YOCO-POS.jpg" alt="BigPlus point of sale running on a Yoco card machine at the counter">
            </div>
            <figcaption><span class="bpp-plate-num">Fig. 02</span> BigPlus at the counter on a Yoco card machine.</figcaption>
          </figure>
          <div class="bpp-duo-card">
            <span class="bpp-stakes-label">Load-shedding</span>
            <h3>Keeps ringing when the power drops</h3>
            <p>BigPlus runs entirely on the device it is installed on, so a Yoco terminal keeps taking sales through a network outage or load-shedding, then syncs everything back the moment the connection returns.</p>
          </div>
        </div>

        <p>For a shop already running on a Yoco Khumo Print or Neo Touch, the integration means the card machine does not just take the payment: it becomes the point of sale, the stock system and the reporting dashboard, all on the one device.</p>
      </article>

      <aside class="bpp-aside rv">
        <div class="bpp-aside-card">
          <img decoding="async" class="bpp-aside-logo" src="https://bigplushq.com/wp-content/uploads/2026/07/Yoco-Logo.png" alt="Yoco" style="height:36px;width:auto;max-width:none;">
          <div>
            <h3>Yoco Integration</h3>
            <span class="bpp-aside-loc">Card payments, on your terminal</span>
          </div>
          <div class="bpp-aside-facts">
            <div><span>Type</span><span>Integration</span></div>
            <div><span>Runs on</span><span>Khumo Print, Neo Touch</span></div>
            <div><span>Sync</span><span>Real time, auto-sync offline</span></div>
            <div><span>Availability</span><span>All BigPlus plans</span></div>
          </div>
        </div>
        <div class="bpp-aside-card subtle">
          <h3>Built for</h3>
          <div class="bpp-tags">
            <span class="rv">Yoco Khumo Print</span>
            <span class="rv">Yoco Neo Touch</span>
            <span class="rv">Live Stock</span>
            <span class="rv">Offline Mode</span>
            <span class="rv">Multi-Store Reporting</span>
          </div>
        </div>
      </aside>

    </div>
  </section>

  <section class="bpp-cta">
    <div class="bpp-in">
      <div class="bpp-cta-panel rv bpp-spotter">
        <div class="bpp-orb a"></div><div class="bpp-orb b"></div><div class="bpp-spot"></div>
        <div class="bpp-cta-copy">
          <h2>Put BigPlus on the Yoco machine you already own</h2>
          <p>Book a demo and see BigPlus running live on a Yoco Khumo Print or Neo Touch.</p>
        </div>
        <a class="bpp-btn" href="https://bigplushq.com/request-a-demo">Book a demo <svg viewBox="0 0 24 24"><line x1="4" y1="12" x2="20" y2="12"/><polyline points="13 5 20 12 13 19"/></svg></a>
      </div>
    </div>
  </section>

</article>

<script>
(function(){
  var reduce = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;

  function animateCount(span){
    var target = parseInt(span.dataset.count, 10);
    if(isNaN(target)) return;
    var isPlus = /\+/.test(span.textContent);
    var start = performance.now();
    var dur = 1100;
    function tick(now){
      var p = Math.min(1, (now - start) / dur);
      var eased = 1 - Math.pow(1 - p, 3);
      var val = Math.round(target * eased);
      span.textContent = val.toLocaleString('en-ZA') + (isPlus && p >= 1 ? '+' : '');
      if(p < 1) requestAnimationFrame(tick);
    }
    requestAnimationFrame(tick);
  }

  function loadImage(img, frame){
    function done(){
      img.classList.add('bpp-loaded');
      if(frame) frame.classList.remove('bpp-shimmer');
    }
    if(img.complete && img.naturalWidth) done();
    else img.addEventListener('load', done, { once:true });
  }

  document.querySelectorAll('.bpp').forEach(function(root){
    if(root.dataset.bppInit) return;
    root.dataset.bppInit = '1';

    requestAnimationFrame(function(){ root.classList.add('bpp-ready'); });

    root.querySelectorAll('.bpp-plate-img').forEach(function(img){
      loadImage(img, img.closest('.bpp-plate-frame'));
    });

    if(reduce || !('IntersectionObserver' in window)){
      root.querySelectorAll('.rv').forEach(function(el){
        el.classList.add('go');
        var counter = el.querySelector('[data-count]');
        if(counter) animateCount(counter);
      });
    } else {
      var io = new IntersectionObserver(function(entries){
        entries.forEach(function(en){
          if(!en.isIntersecting) return;
          en.target.classList.add('go');
          var counter = en.target.querySelector('[data-count]');
          if(counter) animateCount(counter);
          io.unobserve(en.target);
        });
      }, { threshold:0.1, rootMargin:'0px 0px -6% 0px' });
      root.querySelectorAll('.rv').forEach(function(el){ io.observe(el); });
    }

    root.querySelectorAll('.bpp-spotter').forEach(function(panel){
      panel.addEventListener('mousemove', function(e){
        var r = panel.getBoundingClientRect();
        panel.style.setProperty('--mx', ((e.clientX - r.left) / r.width * 100) + '%');
        panel.style.setProperty('--my', ((e.clientY - r.top) / r.height * 100) + '%');
      });
    });

    var progressBar = root.querySelector('.bpp-progress-bar');
    var totop = root.querySelector('.bpp-totop');
    var aside = root.querySelector('.bpp-aside');
    var cols = root.querySelector('.bpp-cols');
    var topOffset = 160;
    var asideNatural = 0;
    var asideH = 0;
    var colsBot = 0;

    function measure(){
      if(!aside || !cols) return;
      aside.style.transform = 'translateY(0)';
      aside.classList.remove('is-stuck');
      void aside.offsetHeight;
      var cr = cols.getBoundingClientRect();
      colsBot = cr.top + window.scrollY + cr.height;
      asideNatural = aside.getBoundingClientRect().top + window.scrollY;
      asideH = aside.offsetHeight;
    }

    function onScroll(){
      var scrollTop = window.scrollY;
      var scrollable = document.documentElement.scrollHeight - window.innerHeight;
      var pct = scrollable > 0 ? Math.min(100, Math.max(0, (scrollTop / scrollable) * 100)) : 0;
      if(progressBar) progressBar.style.width = pct + '%';
      if(totop) totop.classList.toggle('show', scrollTop > 600);

      if(aside && cols && window.matchMedia('(min-width:901px)').matches){
        var stickyStart = asideNatural - topOffset;
        var maxShift = colsBot - asideNatural - asideH;
        if(maxShift < 0) maxShift = 0;
        var shift = scrollTop - stickyStart;
        if(shift < 0) shift = 0;
        if(shift > maxShift) shift = maxShift;
        aside.style.transform = 'translateY(' + shift + 'px)';
        aside.classList.toggle('is-stuck', shift > 0);
      } else if(aside){
        aside.style.transform = 'translateY(0)';
        aside.classList.remove('is-stuck');
      }
    }

    measure();
    window.addEventListener('scroll', onScroll, { passive:true });
    window.addEventListener('resize', function(){ measure(); onScroll(); });
    setTimeout(measure, 200);
    onScroll();

    if(totop){
      totop.addEventListener('click', function(){
        window.scrollTo({ top:0, behavior: reduce ? 'auto' : 'smooth' });
      });
    }
  });
})();
</script>
</body>
</html>				</div>
				</div>
					</div>
				</div>
				</div>
		<p>The post <a href="https://bigplushq.com/blog/yoco-integration/">Yoco Integration</a> appeared first on <a href="https://bigplushq.com">Bigplus Point of Sale</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Kalk Bay Co-op</title>
		<link>https://bigplushq.com/blog/kalk-bay-co-op/</link>
		
		<dc:creator><![CDATA[Dylan Phillips]]></dc:creator>
		<pubDate>Fri, 14 Aug 2026 09:59:16 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://bigplushq.com/?p=14063</guid>

					<description><![CDATA[<p>How an owner-run Cape Town boutique keeps thousands of consignment pieces, every colour, size and cost, straight in one system.</p>
<p>The post <a href="https://bigplushq.com/blog/kalk-bay-co-op/">Kalk Bay Co-op</a> appeared first on <a href="https://bigplushq.com">Bigplus Point of Sale</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="14063" class="elementor elementor-14063" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-1068ced e-flex e-con-boxed e-con e-parent" data-id="1068ced" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-3ba45df elementor-widget elementor-widget-html" data-id="3ba45df" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<style>
.bpp{
  --lime:#D2DD36;
  --lime-300:#DDE65E;
  --dark:#052923;
  --green-800:#09483E;
  --green-900:#073A31;
  --sage:#B6C8C5;
  --sage-100:#E8EEED;
  --sage-50:#F2F5F4;
  --offwhite:#F8F8FB;
  --body:#495057;
  --muted:#6E7A78;
  --border-subtle:#E8EEED;
  --border-strong:#B6C8C5;
  --shadow-card:0 1px 2px rgba(5,41,35,.06), 0 4px 16px rgba(5,41,35,.07);
  --shadow-raised:0 8px 32px rgba(5,41,35,.14);
  --radius-xl:24px;
  --radius-lg:16px;
  --radius-md:10px;
  --radius-pill:999px;
  --ease:cubic-bezier(.16,1,.3,1);
  font-family:'Poppins','Segoe UI',system-ui,sans-serif;
  color:var(--body);background:#fff;
  width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  opacity:0;
  transition:opacity .5s ease;
}
.bpp.bpp-ready{opacity:1;}
.bpp *{box-sizing:border-box;margin:0;padding:0;}
.bpp-in{width:80%;margin:0 auto;}
.bpp h1,.bpp h2,.bpp h3{font-weight:600;color:var(--dark) !important;letter-spacing:-.02em;line-height:1.2;}
.bpp p{line-height:1.65;color:var(--body);}
.bpp a{color:var(--green-800);text-decoration:none;}

.elementor-widget-html:has(.bpp) .elementor-widget-container{padding:0 !important;margin:0 !important;}
.elementor-element:has(> .elementor-widget-container > .bpp){padding:0 !important;}

/* Shared aurora glow orbs, used on every dark panel in the template */
.bpp-orb{position:absolute;z-index:0;pointer-events:none;border-radius:50%;filter:blur(46px);}
.bpp-orb.a{width:320px;height:320px;top:-120px;right:-80px;background:radial-gradient(circle, rgba(210,221,54,.34), transparent 68%);opacity:.6;}
.bpp-orb.b{width:280px;height:280px;bottom:-110px;left:-70px;background:radial-gradient(circle, rgba(76,124,255,.28), transparent 70%);opacity:.55;}

/* ================= HEAD / TITLE ================= */
.bpp-head{
  position:relative;overflow:hidden;
  background:linear-gradient(150deg,#0C4034 0%,#06322A 55%,#041E19 100%);
  padding:clamp(120px,14vw,168px) 0 clamp(64px,7vw,84px);
}
.bpp-crumb{position:relative;z-index:1;display:flex;align-items:center;gap:8px;font-size:13px;color:var(--sage) !important;margin-bottom:26px;}
.bpp-crumb a{color:var(--sage) !important;}
.bpp-crumb .cur{color:var(--lime) !important;font-weight:500;}
.bpp-eyebrow{
  position:relative;z-index:1;
  display:inline-flex;background:rgba(210,221,54,.16);color:var(--lime) !important;
  font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  padding:6px 15px;border-radius:var(--radius-pill);margin-bottom:20px;
}
.bpp-head h1{position:relative;z-index:1;font-size:clamp(32px,4.2vw,46px);max-width:18ch;margin-bottom:18px;color:#fff !important;}
.bpp-sub{position:relative;z-index:1;font-size:16.5px;line-height:1.6;color:var(--sage) !important;max-width:680px;margin-bottom:22px;}
.bpp-byline{position:relative;z-index:1;display:flex;align-items:center;gap:12px;font-size:13.5px;color:var(--sage) !important;flex-wrap:wrap;}
.bpp-byline img{width:38px;height:38px;border-radius:var(--radius-md);object-fit:cover;}
.bpp-byline .sep{color:rgba(182,200,197,.5) !important;}

/* ================= PROGRESS + BACK-TO-TOP ================= */
.bpp-progress-track{position:fixed;top:0;left:0;width:100%;height:3px;background:transparent;z-index:9999;pointer-events:none;}
.bpp-progress-bar{height:100%;width:0%;background:linear-gradient(90deg,var(--lime),var(--lime-300));transition:width .1s linear;}
.bpp-totop{
  position:fixed;right:22px;bottom:22px;z-index:9998;width:46px;height:46px;border-radius:50%;
  background:var(--dark);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;
  box-shadow:var(--shadow-raised);opacity:0;transform:translateY(12px) scale(.9);pointer-events:none;
  transition:opacity .3s var(--ease), transform .3s var(--ease), background .3s ease;
}
.bpp-totop.show{opacity:1;transform:none;pointer-events:auto;}
.bpp-totop:hover{background:var(--green-800);}
.bpp-totop svg{width:18px;height:18px;stroke:var(--lime);stroke-width:2.4;fill:none;stroke-linecap:round;stroke-linejoin:round;}

/* ================= FEATURE PLATE (magazine hero + figures) ================= */
.bpp-feature{padding:clamp(28px,4vw,44px) 0 0;}
.bpp-feature-grid{display:grid;grid-template-columns:1.7fr 1fr;gap:clamp(24px,3vw,40px);align-items:stretch;}

.bpp-plate{display:flex;flex-direction:column;gap:14px;}
.bpp-plate-frame{
  position:relative;height:clamp(280px,34vw,440px) !important;max-height:440px !important;
  border-radius:6px;overflow:hidden !important;
  border:1px solid rgba(5,41,35,.08);
  box-shadow:0 1px 1px rgba(5,41,35,.04), 0 24px 48px -20px rgba(5,41,35,.32);
}
.bpp-plate-frame.bpp-shimmer{background:linear-gradient(100deg, var(--sage-100) 30%, var(--sage-50) 50%, var(--sage-100) 70%);background-size:200% 100%;animation:bpp-shimmer 1.6s ease-in-out infinite;}
.bpp-plate-img{width:100% !important;height:100% !important;max-height:440px !important;object-fit:cover !important;object-position:50% 42% !important;display:block !important;opacity:0;transition:opacity .6s ease;}
.bpp-plate-img.bpp-loaded{opacity:1;}
.bpp-plate figcaption{
  display:flex;gap:10px;align-items:baseline;
  font-family:'Poppins',sans-serif;font-style:normal;font-size:14px;line-height:1.5;color:var(--muted) !important;
  border-top:1px solid var(--border-subtle);padding-top:12px;
}
.bpp-plate-num{
  flex-shrink:0;font-family:'Poppins',sans-serif;font-style:normal;font-size:10.5px;font-weight:600;
  letter-spacing:.09em;text-transform:uppercase;color:var(--green-800) !important;
  background:var(--sage-50);border-radius:4px;padding:3px 8px;transform:translateY(1px);
}

.bpp-figures{
  position:relative;overflow:hidden;display:flex;flex-direction:column;
  background:linear-gradient(150deg,#0C4034 0%,#06322A 55%,#041E19 100%);
  border-radius:var(--radius-lg);padding:clamp(26px,3vw,34px) clamp(24px,3vw,30px);
}
.bpp-figures-kicker{
  position:relative;z-index:1;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--lime) !important;margin-bottom:20px;
}
.bpp-figures-kicker::after{content:'';display:block;width:28px;height:1px;background:rgba(210,221,54,.5);margin-top:10px;}
.bpp-figures-list{position:relative;z-index:1;list-style:none;display:flex;flex-direction:column;flex:1;}
.bpp-figures-list li{
  display:flex;flex-direction:column;gap:3px;padding:16px 0;
  border-bottom:1px solid rgba(182,200,197,.16);
}
.bpp-figures-list li:first-child{padding-top:0;}
.bpp-figures-list li:last-child{padding-bottom:0;border-bottom:none;}
.bpp-figures-list li.rv:nth-child(1){transition-delay:0s;}
.bpp-figures-list li.rv:nth-child(2){transition-delay:.08s;}
.bpp-figures-list li.rv:nth-child(3){transition-delay:.16s;}
.bpp-figures-list li.rv:nth-child(4){transition-delay:.24s;}
.bpp-figures-list .num{font-family:'Poppins',sans-serif;font-weight:600;font-size:clamp(24px,2.4vw,30px);line-height:1.1;color:var(--lime) !important;}
.bpp-figures-list .num.alpha{font-size:clamp(18px,1.8vw,21px);font-style:normal;color:#fff !important;}
.bpp-figures-list .lbl{font-size:13px;line-height:1.5;color:var(--sage) !important;}

/* ================= BODY + ASIDE ================= */
.bpp-body-wrap{padding:clamp(56px,7vw,80px) 0 0;}
.bpp-cols{display:flex;gap:56px;align-items:flex-start;}
.bpp-article{flex:1;min-width:0;display:flex;flex-direction:column;gap:22px;}
.bpp-article h2{font-size:23px;margin-top:8px;}
.bpp-article h2:first-child{margin-top:0;}
.bpp-article h3{font-size:17.5px;margin-top:2px;}
.bpp-article p{font-size:16px;color:var(--body) !important;}
.bpp-article .lead{font-size:16px;color:var(--dark) !important;font-weight:500;}

.bpp-cap-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:2px;}
.bpp-cap-card{
  background:var(--sage-50);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);
  padding:24px;display:flex;flex-direction:column;gap:10px;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease);
}
.bpp-cap-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-card);}
.bpp-cap-icon{width:38px;height:38px;flex-shrink:0;border-radius:10px;background:var(--dark);display:flex;align-items:center;justify-content:center;}
.bpp-cap-icon svg{width:19px;height:19px;stroke:var(--lime);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.bpp-cap-card h3{font-size:16.5px;margin-top:2px;}
.bpp-article .bpp-cap-card p{font-size:14.5px;color:var(--body) !important;}
.bpp-cap-grid .rv:nth-child(1){transition-delay:0s;}
.bpp-cap-grid .rv:nth-child(2){transition-delay:.08s;}
.bpp-cap-grid .rv:nth-child(3){transition-delay:.16s;}
.bpp-cap-grid .rv:nth-child(4){transition-delay:.24s;}

.bpp-spot{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:0;transition:opacity .5s ease;background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%), rgba(210,221,54,.16), transparent 62%);}
.bpp-stats:hover .bpp-spot,.bpp-figures:hover .bpp-spot,.bpp-quote:hover .bpp-spot,.bpp-cta-panel:hover .bpp-spot,.bpp-head:hover .bpp-spot{opacity:1;}

.bpp-quote{
  position:relative;overflow:hidden;margin-top:6px;
  background:linear-gradient(150deg,#0C4034 0%,#06322A 55%,#041E19 100%);
  border-radius:var(--radius-xl);padding:clamp(30px,4vw,40px) clamp(28px,4vw,40px);
  display:flex;flex-direction:column;gap:18px;
}
.bpp-quote-tag{
  position:relative;z-index:1;align-self:flex-start;
  background:rgba(210,221,54,.16);color:var(--lime) !important;
  font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;
  padding:5px 14px;border-radius:var(--radius-pill);
}
.bpp-quote-text{position:relative;z-index:1;font-size:19px;font-weight:500;line-height:1.45;color:#fff !important;max-width:540px;}
#bpp-quote-text{color:#fff !important;}
.bpp-quote-by{position:relative;z-index:1;display:flex;align-items:center;gap:12px;font-size:13.5px;color:var(--sage) !important;}
.bpp-quote-by img{height:26px;opacity:.9;}
.bpp-insight-heading{position:relative;z-index:1;font-size:21px;font-weight:600;line-height:1.35;color:#fff !important;max-width:520px;}
.bpp-quote .bpp-insight-text{position:relative;z-index:1;font-size:15.5px;line-height:1.65;color:var(--sage) !important;max-width:540px;}

.bpp-duo{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:4px;align-items:stretch;}
.bpp-duo-frame{position:relative;min-height:260px;border-radius:var(--radius-lg);overflow:hidden;}
.bpp-duo-frame.bpp-shimmer{background:linear-gradient(100deg, var(--sage-100) 30%, var(--sage-50) 50%, var(--sage-100) 70%);background-size:200% 100%;animation:bpp-shimmer 1.6s ease-in-out infinite;}
.bpp-duo img{width:100%;height:100%;min-height:260px;object-fit:cover;border-radius:var(--radius-lg);display:block;opacity:0;transition:opacity .5s ease, transform .6s var(--ease);}
.bpp-duo img.bpp-loaded{opacity:1;}
.bpp-duo:hover img{transform:scale(1.035);}
.bpp-duo-card{
  background:var(--sage-50);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);
  padding:26px;display:flex;flex-direction:column;gap:12px;justify-content:center;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease);
}
.bpp-duo-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-card);}
.bpp-duo-card h3{font-size:17px;}
.bpp-duo-card p{font-size:14px;color:var(--body) !important;}
@keyframes bpp-shimmer{0%{background-position:200% 0;}100%{background-position:-200% 0;}}

.bpp-aside{width:300px;flex-shrink:0;position:relative;display:flex;flex-direction:column;gap:18px;}
.bpp-aside-card{background:#fff;border:1px solid rgba(5,41,35,.1);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:26px;display:flex;flex-direction:column;gap:14px;transition:transform .35s var(--ease), box-shadow .35s var(--ease);}
.bpp-aside-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-raised);}
.bpp-aside-card.subtle{background:var(--sage-50);border-color:var(--border-subtle);box-shadow:none;}
.bpp-aside-card.subtle:hover{box-shadow:var(--shadow-card);}
.bpp-aside.is-stuck .bpp-aside-card:first-child{box-shadow:var(--shadow-raised);}
.bpp-aside-logo{width:52px;height:52px;border-radius:var(--radius-md);object-fit:cover;}
.bpp-aside-card h3{font-size:16px;}
.bpp-aside-loc{font-size:13px;color:var(--muted) !important;}
.bpp-aside-facts{display:flex;flex-direction:column;gap:10px;font-size:13px;border-top:1px solid var(--border-subtle);padding-top:14px;}
.bpp-aside-facts > div{display:flex;justify-content:space-between;gap:14px;}
.bpp-aside-facts span:first-child{color:var(--muted) !important;flex-shrink:0;}
.bpp-aside-facts span:last-child{color:var(--dark) !important;text-align:right;}
.bpp-tags{display:flex;flex-wrap:wrap;gap:8px;}
.bpp-tags span{background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-pill);padding:6px 13px;font-size:12.5px;color:var(--green-800) !important;transition:all .25s var(--ease);cursor:default;}
.bpp-tags span:hover{background:var(--dark);color:#fff !important;border-color:var(--dark);transform:translateY(-2px) !important;}
.bpp-tags span.rv:nth-child(1){transition-delay:0s;}
.bpp-tags span.rv:nth-child(2){transition-delay:.06s;}
.bpp-tags span.rv:nth-child(3){transition-delay:.12s;}
.bpp-tags span.rv:nth-child(4){transition-delay:.18s;}
.bpp-tags span.rv:nth-child(5){transition-delay:.24s;}

/* ================= CTA ================= */
.bpp-cta{padding:clamp(64px,8vw,96px) 0 clamp(72px,9vw,100px);}
.bpp-cta-panel{
  position:relative;overflow:hidden;
  background:linear-gradient(150deg,#0C4034 0%,#06322A 55%,#041E19 100%);border-radius:var(--radius-xl);
  padding:clamp(40px,5vw,60px);
  display:flex;gap:40px;align-items:center;justify-content:space-between;flex-wrap:wrap;
}
.bpp-cta-copy{position:relative;z-index:1;max-width:560px;}
.bpp-cta-copy h2{font-size:clamp(24px,3vw,32px);color:#fff !important;line-height:1.25;margin-bottom:12px;}
.bpp-cta-copy p{font-size:15px;line-height:1.6;color:var(--sage) !important;}
.bpp-btn{
  position:relative;z-index:1;display:inline-flex;align-items:center;gap:10px;
  background:var(--lime);border-radius:var(--radius-pill);padding:15px 30px;
  font-family:inherit;font-size:15px;font-weight:600;color:var(--dark) !important;text-decoration:none;
  transition:transform .3s var(--ease), box-shadow .3s ease, background .3s ease;
}
.bpp-btn svg{width:16px;height:16px;stroke:var(--dark);stroke-width:2.4;fill:none;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s var(--ease);}
.bpp-btn:hover{transform:translateY(-2px);background:var(--lime-300);box-shadow:0 14px 30px rgba(210,221,54,.3);}
.bpp-btn:hover svg{transform:translateX(3px);}

/* ================= Reveal engine ================= */
.bpp .rv{
  opacity:0;
  transform:translateY(34px) scale(.99);
  filter:blur(4px);
  transition:
    opacity .8s cubic-bezier(.22,1,.36,1),
    transform .8s cubic-bezier(.22,1,.36,1),
    filter .7s ease;
}
.bpp .rv.go{
  opacity:1;
  transform:none;
  filter:blur(0);
}
.bpp .rv.d1{ transition-delay:.1s; }
.bpp .rv.d2{ transition-delay:.2s; }

@media (prefers-reduced-motion:reduce){
  .bpp .rv{
    opacity:1 !important;
    transform:none !important;
    filter:none !important;
    transition:none !important;
  }
}

@media (max-width:900px){
  .bpp-cols{flex-direction:column;}
  .bpp-aside{width:100%;position:static;transform:none !important;}
  .bpp-feature-grid{grid-template-columns:1fr;}
  .bpp-plate-frame{height:clamp(220px,54vw,320px) !important;max-height:320px !important;}
  .bpp-figures-list{flex-direction:row;flex-wrap:wrap;gap:0;}
  .bpp-figures-list li{width:50%;padding:14px 0;border-bottom:1px solid rgba(182,200,197,.16);}
  .bpp-figures-list li:nth-last-child(-n+2){border-bottom:none;}
  .bpp-duo{grid-template-columns:1fr;}
  .bpp-totop{right:16px;bottom:16px;width:42px;height:42px;}
}

@media (max-width:640px){
  .bpp-cap-grid{grid-template-columns:1fr;}
}

@media (max-width:520px){
  .bpp-figures-list li{width:100%;padding:14px 0;border-bottom:1px solid rgba(182,200,197,.16) !important;}
  .bpp-figures-list li:last-child{border-bottom:none !important;}
}
</style>
<noscript><style>.bpp{opacity:1 !important;}.bpp .rv{opacity:1 !important;transform:none !important;filter:none !important;}.bpp-plate-img,.bpp-duo img{opacity:1 !important;}.bpp-plate-frame,.bpp-duo-frame{animation:none !important;background:none !important;}</style></noscript>

<article class="bpp">

  <div class="bpp-progress-track"><div class="bpp-progress-bar"></div></div>
  <button class="bpp-totop" type="button" aria-label="Back to top">
    <svg viewBox="0 0 24 24"><line x1="12" y1="19" x2="12" y2="5"/><polyline points="5 12 12 5 19 12"/></svg>
  </button>

  <section class="bpp-head bpp-spotter">
    <div class="bpp-orb a"></div><div class="bpp-orb b"></div><div class="bpp-spot"></div>
    <div class="bpp-in">
      <div class="bpp-crumb rv">
        <a href="https://bigplushq.com/blog/">Blog</a><span>/</span><span class="cur">Customer Stories</span>
      </div>
      <span class="bpp-eyebrow rv">Customer Stories</span>
      <h1 class="rv">One shop, 3&nbsp;000 SKUs of South African design</h1>
      <p class="bpp-sub rv">Kalk Bay Co-op is an owner-run boutique stocking local designers on consignment. Here's how the shop keeps every colour, size and cost tracked.</p>
      <div class="bpp-byline rv">
        <img decoding="async" src="https://bigplushq.com/wp-content/uploads/2026/08/Kalk-Bay-Co-op-Logo.webp" alt="Kalk Bay Co-op">
        <span>Customer Stories</span>
        <span class="sep">&bull;</span>
        <span>12 August 2026</span>
      </div>
    </div>
  </section>

  <section class="bpp-feature">
    <div class="bpp-in bpp-feature-grid">
      <figure class="bpp-plate rv">
        <div class="bpp-plate-frame bpp-shimmer">
          <img decoding="async" class="bpp-plate-img" src="https://bigplushq.com/wp-content/uploads/2026/08/KBC-Banner.webp" alt="Inside Kalk Bay Co-op: painted pink and orange walls, rails of clothing and printed textiles">
        </div>
        <figcaption><span class="bpp-plate-num">Fig. 01</span> The shop floor in Kalk Bay, with clothing, bags and homeware from South African designers and makers.</figcaption>
      </figure>

      <aside class="bpp-figures rv bpp-spotter">
        <div class="bpp-orb a"></div><div class="bpp-orb b"></div><div class="bpp-spot"></div>
        <span class="bpp-figures-kicker">By the numbers</span>
        <ul class="bpp-figures-list">
          <li class="rv"><span class="num" data-count="1">1</span><span class="lbl">Store, owner-run</span></li>
          <li class="rv"><span class="num" data-count="3000">3&nbsp;000+</span><span class="lbl">SKUs on the floor</span></li>
          <li class="rv"><span class="num alpha">Matrix</span><span class="lbl">Colour and size tracked per product</span></li>
          <li class="rv"><span class="num alpha">Consignment</span><span class="lbl">Stock attributed to the designer who owns it</span></li>
        </ul>
      </aside>
    </div>
  </section>

  <section class="bpp-body-wrap">
    <div class="bpp-in bpp-cols">

      <article class="bpp-article rv">
        <h2>The shop</h2>
        <p>Kalk Bay Co-op trades a few steps from a working fishing harbour on the False Bay coast, on a strip of galleries, antique dealers and coffee shops where the foot traffic is part local, part passing through. Inside, the walls are painted hot pink and orange, and the rails carry clothing, bags, textiles and homeware from South African designers and independent makers.</p>
        <p>The co-op model is a core part of the businesses, with most of the stock arriving on consignment. Designers keep ownership of their inventory until the pieces sell, with payments being made at month end based on their sales movement.</p>
        <p class="lead">One owner, one shop floor, more than 3&nbsp;000 SKUs, and every unit being tracked to their respective designer.</p>

        <h2>How Kalk Bay Co-op uses Bigplus</h2>

        <div class="bpp-cap-grid">
          <div class="bpp-cap-card rv">
            <div class="bpp-cap-icon">
              <svg viewBox="0 0 24 24"><rect x="3" y="3" width="8" height="8" rx="1.2"/><rect x="13" y="3" width="8" height="8" rx="1.2"/><rect x="3" y="13" width="8" height="8" rx="1.2"/><rect x="13" y="13" width="8" height="8" rx="1.2"/></svg>
            </div>
            <h3>Every colour and size, all tracked</h3>
            <p>A dress in three colours and five sizes is one piece of design and fifteen sku's to track. Bigplus holds it as a matrix product, so the till sells "olive, size 12" while the stock list keeps the full grid intact. The owner can look at a single product card and see which size is moving and which one has been on the rail since winter.</p>
          </div>

          <div class="bpp-cap-card rv">
            <div class="bpp-cap-icon">
              <svg viewBox="0 0 24 24"><path d="M3 11V5a2 2 0 0 1 2-2h6l10 10-8 8L3 11Z"/><circle cx="8" cy="8" r="1.3" fill="currentColor" stroke="none"/></svg>
            </div>
            <h3>Consignment without the guesswork</h3>
            <p>Stock brought in on consignment is recorded against the designer who owns it. When a piece sells it is already attributed, so settling up is a report rather than an evening with a pile of receipts. Designers get a clear answer about what sold and what is still on the shop floor.</p>
          </div>

          <div class="bpp-cap-card rv">
            <div class="bpp-cap-icon">
              <svg viewBox="0 0 24 24"><line x1="4" y1="20" x2="4" y2="14"/><line x1="10" y1="20" x2="10" y2="9"/><line x1="16" y1="20" x2="16" y2="4"/></svg>
            </div>
            <h3>Cost in, profit out</h3>
            <p>Product costs are captured with the product, so that gross profit and margin are visible per item, per designer and per category in real-time as sales are processed. For designers working on a fixed consignment commission, this simplifies calculating payouts.</p>
          </div>

          <div class="bpp-cap-card rv">
            <div class="bpp-cap-icon">
              <svg viewBox="0 0 24 24"><rect x="3" y="4" width="18" height="13" rx="1.5"/><line x1="8" y1="21" x2="16" y2="21"/><line x1="12" y1="17" x2="12" y2="21"/></svg>
            </div>
            <h3>One till, and the day in numbers</h3>
            <p>Bigplus is the only system the shop needs open. Sales, returns, customers and stock movements all land in the same system, which means reporting is a byproduct of ringing up a sale rather than a separate job for after closing.</p>
          </div>
        </div>

        <div class="bpp-quote bpp-spotter">
          <div class="bpp-orb a"></div><div class="bpp-orb b"></div><div class="bpp-spot"></div>
          <span class="bpp-quote-tag">In her own words</span>
          <p class="bpp-quote-text" id="bpp-quote-text" style="color:#fff">&ldquo;It is a really easy to use system that helps us save time and focus on the fun part of retail: interacting with customers.&rdquo;</p>
          <div class="bpp-quote-by">
            <img decoding="async" src="https://bigplushq.com/wp-content/uploads/2026/08/Kalk-Bay-Co-op-Logo.webp" alt="Kalk Bay Co-op">
            <span>Owner, Kalk Bay Co-op</span>
          </div>
        </div>

        <div class="bpp-duo">
          <div class="bpp-duo-frame bpp-shimmer">
            <img decoding="async" src="https://bigplushq.com/wp-content/uploads/2026/08/Kalk-Bay-Store-Front.webp" alt="Kalk Bay Co-op shopfront window, open daily 9am to 5pm">
          </div>
          <div class="bpp-duo-card">
            <h3>Where the spreadsheets stop.</h3>
            <p>Tracking variants, consignment ownership and true cost are the three things a shop outgrows first. Kalk Bay Co-op runs all three in one system, with no plugins and no spreadsheets running in the background.</p>
          </div>
        </div>

        <p>Retail at this scale does not need an enterprise ERP. It needs those few things that slowly get neglected once the rails fill up, handled automatically and in one place. Start where you are and scale when you are ready.</p>
      </article>

      <aside class="bpp-aside rv">
        <div class="bpp-aside-card">
          <img decoding="async" class="bpp-aside-logo" src="https://bigplushq.com/wp-content/uploads/2026/08/Kalk-Bay-Co-op-Logo.webp" alt="Kalk Bay Co-op">
          <div>
            <h3>Kalk Bay Co-op</h3>
            <span class="bpp-aside-loc">Kalk Bay, Cape Town</span>
          </div>
          <div class="bpp-aside-facts">
            <div><span>Type</span><span>Independent clothing boutique</span></div>
            <div><span>Stores</span><span>1, owner-run</span></div>
            <div><span>Catalogue</span><span>3&nbsp;000+ SKUs</span></div>
            <div><span>Model</span><span>Local SA designers, on consignment</span></div>
          </div>
        </div>
        <div class="bpp-aside-card subtle">
          <h3>What they use</h3>
          <div class="bpp-tags">
            <span class="rv">Point of sale</span>
            <span class="rv">Consignment</span>
            <span class="rv">Matrix products</span>
            <span class="rv">Cost tracking</span>
            <span class="rv">Reporting</span>
          </div>
        </div>
      </aside>

    </div>
  </section>

  <section class="bpp-cta">
    <div class="bpp-in">
      <div class="bpp-cta-panel rv bpp-spotter">
        <div class="bpp-orb a"></div><div class="bpp-orb b"></div><div class="bpp-spot"></div>
        <div class="bpp-cta-copy">
          <h2>Talk to us about your store</h2>
          <p>One shop or fifty, consignment or your own labels: tell us how you trade and we'll show you the parts of Bigplus that matter to you.</p>
        </div>
        <a class="bpp-btn" href="https://bigplushq.com">Talk to us about your store <svg viewBox="0 0 24 24"><line x1="4" y1="12" x2="20" y2="12"/><polyline points="13 5 20 12 13 19"/></svg></a>
      </div>
    </div>
  </section>

</article>

<script>
(function(){
  var reduce = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;

  function animateCount(span){
    var target = parseInt(span.dataset.count, 10);
    if(isNaN(target)) return;
    var isPlus = /\+/.test(span.textContent);
    var start = performance.now();
    var dur = 1100;
    function tick(now){
      var p = Math.min(1, (now - start) / dur);
      var eased = 1 - Math.pow(1 - p, 3);
      var val = Math.round(target * eased);
      span.textContent = val.toLocaleString('en-ZA') + (isPlus && p >= 1 ? '+' : '');
      if(p < 1) requestAnimationFrame(tick);
    }
    requestAnimationFrame(tick);
  }

  function loadImage(img, frame){
    function done(){
      img.classList.add('bpp-loaded');
      if(frame) frame.classList.remove('bpp-shimmer');
    }
    if(img.complete && img.naturalWidth) done();
    else img.addEventListener('load', done, { once:true });
  }

  document.querySelectorAll('.bpp').forEach(function(root){
    if(root.dataset.bppInit) return;
    root.dataset.bppInit = '1';

    requestAnimationFrame(function(){ root.classList.add('bpp-ready'); });

    var plateImg = root.querySelector('.bpp-plate-img');
    if(plateImg) loadImage(plateImg, plateImg.closest('.bpp-plate-frame'));
    root.querySelectorAll('.bpp-duo-frame img').forEach(function(img){
      loadImage(img, img.closest('.bpp-duo-frame'));
    });

    if(reduce || !('IntersectionObserver' in window)){
      root.querySelectorAll('.rv').forEach(function(el){
        el.classList.add('go');
        var counter = el.querySelector('[data-count]');
        if(counter) animateCount(counter);
      });
    } else {
      var io = new IntersectionObserver(function(entries){
        entries.forEach(function(en){
          if(!en.isIntersecting) return;
          en.target.classList.add('go');
          var counter = en.target.querySelector('[data-count]');
          if(counter) animateCount(counter);
          io.unobserve(en.target);
        });
      }, { threshold:0.1, rootMargin:'0px 0px -6% 0px' });
      root.querySelectorAll('.rv').forEach(function(el){ io.observe(el); });
    }

    root.querySelectorAll('.bpp-spotter').forEach(function(panel){
      panel.addEventListener('mousemove', function(e){
        var r = panel.getBoundingClientRect();
        panel.style.setProperty('--mx', ((e.clientX - r.left) / r.width * 100) + '%');
        panel.style.setProperty('--my', ((e.clientY - r.top) / r.height * 100) + '%');
      });
    });

    var progressBar = root.querySelector('.bpp-progress-bar');
    var totop = root.querySelector('.bpp-totop');
    var aside = root.querySelector('.bpp-aside');
    var cols = root.querySelector('.bpp-cols');
    var topOffset = 160;
    var asideNatural = 0;
    var asideH = 0;
    var colsBot = 0;

    function measure(){
      if(!aside || !cols) return;
      aside.style.transform = 'translateY(0)';
      aside.classList.remove('is-stuck');
      void aside.offsetHeight;
      var cr = cols.getBoundingClientRect();
      colsBot = cr.top + window.scrollY + cr.height;
      asideNatural = aside.getBoundingClientRect().top + window.scrollY;
      asideH = aside.offsetHeight;
    }

    function onScroll(){
      var scrollTop = window.scrollY;
      var scrollable = document.documentElement.scrollHeight - window.innerHeight;
      var pct = scrollable > 0 ? Math.min(100, Math.max(0, (scrollTop / scrollable) * 100)) : 0;
      if(progressBar) progressBar.style.width = pct + '%';
      if(totop) totop.classList.toggle('show', scrollTop > 600);

      if(aside && cols && window.matchMedia('(min-width:901px)').matches){
        var stickyStart = asideNatural - topOffset;
        var maxShift = colsBot - asideNatural - asideH;
        if(maxShift < 0) maxShift = 0;
        var shift = scrollTop - stickyStart;
        if(shift < 0) shift = 0;
        if(shift > maxShift) shift = maxShift;
        aside.style.transform = 'translateY(' + shift + 'px)';
        aside.classList.toggle('is-stuck', shift > 0);
      } else if(aside){
        aside.style.transform = 'translateY(0)';
        aside.classList.remove('is-stuck');
      }
    }

    measure();
    window.addEventListener('scroll', onScroll, { passive:true });
    window.addEventListener('resize', function(){ measure(); onScroll(); });
    setTimeout(measure, 200);
    onScroll();

    if(totop){
      totop.addEventListener('click', function(){
        window.scrollTo({ top:0, behavior: reduce ? 'auto' : 'smooth' });
      });
    }
  });
})();
</script>				</div>
				</div>
					</div>
				</div>
				</div>
		<p>The post <a href="https://bigplushq.com/blog/kalk-bay-co-op/">Kalk Bay Co-op</a> appeared first on <a href="https://bigplushq.com">Bigplus Point of Sale</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Offline Mode</title>
		<link>https://bigplushq.com/blog/offline-mode/</link>
		
		<dc:creator><![CDATA[Dylan Phillips]]></dc:creator>
		<pubDate>Tue, 11 Aug 2026 10:15:23 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[product]]></category>
		<guid isPermaLink="false">https://bigplushq.com/?p=14014</guid>

					<description><![CDATA[<p>Every register keeps working, even offline.</p>
<p>The post <a href="https://bigplushq.com/blog/offline-mode/">Offline Mode</a> appeared first on <a href="https://bigplushq.com">Bigplus Point of Sale</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="14014" class="elementor elementor-14014" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-524d7fd e-flex e-con-boxed e-con e-parent" data-id="524d7fd" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-64e83a3 elementor-widget elementor-widget-html" data-id="64e83a3" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<style>
.bpp{
  --lime:#D2DD36;
  --lime-300:#DDE65E;
  --dark:#052923;
  --green-800:#09483E;
  --green-900:#073A31;
  --sage:#B6C8C5;
  --sage-100:#E8EEED;
  --sage-50:#F2F5F4;
  --offwhite:#F8F8FB;
  --body:#495057;
  --muted:#6E7A78;
  --border-subtle:#E8EEED;
  --border-strong:#B6C8C5;
  --shadow-card:0 1px 2px rgba(5,41,35,.06), 0 4px 16px rgba(5,41,35,.07);
  --shadow-raised:0 8px 32px rgba(5,41,35,.14);
  --radius-xl:24px;
  --radius-lg:16px;
  --radius-md:10px;
  --radius-pill:999px;
  --ease:cubic-bezier(.16,1,.3,1);
  font-family:'Poppins','Segoe UI',system-ui,sans-serif;
  color:var(--body);background:#fff;
  width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  opacity:0;
  transition:opacity .5s ease;
}
.bpp.bpp-ready{opacity:1;}
.bpp *{box-sizing:border-box;margin:0;padding:0;}
.bpp-in{width:80%;margin:0 auto;}
.bpp h1,.bpp h2,.bpp h3{font-weight:600;color:var(--dark) !important;letter-spacing:-.02em;line-height:1.2;}
.bpp p{line-height:1.65;color:var(--body);}
.bpp a{color:var(--green-800);text-decoration:none;}

.elementor-widget-html:has(.bpp) .elementor-widget-container{padding:0 !important;margin:0 !important;}
.elementor-element:has(> .elementor-widget-container > .bpp){padding:0 !important;}

.bpp-orb{position:absolute;z-index:0;pointer-events:none;border-radius:50%;filter:blur(46px);}
.bpp-orb.a{width:320px;height:320px;top:-120px;right:-80px;background:radial-gradient(circle, rgba(210,221,54,.34), transparent 68%);opacity:.6;}
.bpp-orb.b{width:280px;height:280px;bottom:-110px;left:-70px;background:radial-gradient(circle, rgba(76,124,255,.28), transparent 70%);opacity:.55;}

.bpp-head{
  position:relative;overflow:hidden;
  background:linear-gradient(150deg,#0C4034 0%,#06322A 55%,#041E19 100%);
  padding:clamp(120px,14vw,168px) 0 clamp(64px,7vw,84px);
}
.bpp-crumb{position:relative;z-index:1;display:flex;align-items:center;gap:8px;font-size:13px;color:var(--sage) !important;margin-bottom:26px;}
.bpp-crumb a{color:var(--sage) !important;}
.bpp-crumb .cur{color:var(--lime) !important;font-weight:500;}
.bpp-eyebrow{
  position:relative;z-index:1;
  display:inline-flex;background:rgba(210,221,54,.16);color:var(--lime) !important;
  font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  padding:6px 15px;border-radius:var(--radius-pill);margin-bottom:20px;
}
.bpp-head h1{position:relative;z-index:1;font-size:clamp(32px,4.2vw,46px);max-width:18ch;margin-bottom:18px;color:#fff !important;}
.bpp-sub{position:relative;z-index:1;font-size:16.5px;line-height:1.6;color:var(--sage) !important;max-width:680px;margin-bottom:22px;}
.bpp-byline{position:relative;z-index:1;display:flex;align-items:center;gap:12px;font-size:13.5px;color:var(--sage) !important;flex-wrap:wrap;}
.bpp-byline img{width:38px;height:38px;border-radius:var(--radius-md);object-fit:cover;}
.bpp-byline .sep{color:rgba(182,200,197,.5) !important;}

.bpp-progress-track{position:fixed;top:0;left:0;width:100%;height:3px;background:transparent;z-index:9999;pointer-events:none;}
.bpp-progress-bar{height:100%;width:0%;background:linear-gradient(90deg,var(--lime),var(--lime-300));transition:width .1s linear;}
.bpp-totop{
  position:fixed;right:22px;bottom:22px;z-index:9998;width:46px;height:46px;border-radius:50%;
  background:var(--dark);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;
  box-shadow:var(--shadow-raised);opacity:0;transform:translateY(12px) scale(.9);pointer-events:none;
  transition:opacity .3s var(--ease), transform .3s var(--ease), background .3s ease;
}
.bpp-totop.show{opacity:1;transform:none;pointer-events:auto;}
.bpp-totop:hover{background:var(--green-800);}
.bpp-totop svg{width:18px;height:18px;stroke:var(--lime);stroke-width:2.4;fill:none;stroke-linecap:round;stroke-linejoin:round;}

.bpp-feature{padding:clamp(28px,4vw,44px) 0 0;}
.bpp-feature-grid{display:grid;grid-template-columns:1.7fr 1fr;gap:clamp(24px,3vw,40px);align-items:stretch;}

.bpp-plate{display:flex;flex-direction:column;gap:14px;}
.bpp-plate-frame{
  position:relative;height:clamp(280px,34vw,440px) !important;max-height:440px !important;
  border-radius:6px;overflow:hidden !important;
  border:1px solid rgba(5,41,35,.08);
  box-shadow:0 1px 1px rgba(5,41,35,.04), 0 24px 48px -20px rgba(5,41,35,.32);
}
.bpp-plate-frame.bpp-shimmer{background:linear-gradient(100deg, var(--sage-100) 30%, var(--sage-50) 50%, var(--sage-100) 70%);background-size:200% 100%;animation:bpp-shimmer 1.6s ease-in-out infinite;}
.bpp-plate-img{width:100% !important;height:100% !important;max-height:440px !important;object-fit:cover !important;object-position:50% 42% !important;display:block !important;opacity:0;transition:opacity .6s ease;}
.bpp-plate-img.bpp-loaded{opacity:1;}
.bpp-plate figcaption{
  display:flex;gap:10px;align-items:baseline;
  font-family:'Poppins',sans-serif;font-size:14px;line-height:1.5;color:var(--muted) !important;
  border-top:1px solid var(--border-subtle);padding-top:12px;
}
.bpp-plate-num{
  flex-shrink:0;font-family:'Poppins',sans-serif;font-size:10.5px;font-weight:600;
  letter-spacing:.09em;text-transform:uppercase;color:var(--green-800) !important;
  background:var(--sage-50);border-radius:4px;padding:3px 8px;transform:translateY(1px);
}

.bpp-figures{
  position:relative;overflow:hidden;display:flex;flex-direction:column;
  background:linear-gradient(150deg,#0C4034 0%,#06322A 55%,#041E19 100%);
  border-radius:var(--radius-lg);padding:clamp(26px,3vw,34px) clamp(24px,3vw,30px);
}
.bpp-figures-kicker{
  position:relative;z-index:1;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--lime) !important;margin-bottom:20px;
}
.bpp-figures-kicker::after{content:'';display:block;width:28px;height:1px;background:rgba(210,221,54,.5);margin-top:10px;}
.bpp-figures-list{position:relative;z-index:1;list-style:none;display:flex;flex-direction:column;flex:1;}
.bpp-figures-list li{
  display:flex;flex-direction:column;gap:3px;padding:16px 0;
  border-bottom:1px solid rgba(182,200,197,.16);
}
.bpp-figures-list li:first-child{padding-top:0;}
.bpp-figures-list li:last-child{padding-bottom:0;border-bottom:none;}
.bpp-figures-list li.rv:nth-child(1){transition-delay:0s;}
.bpp-figures-list li.rv:nth-child(2){transition-delay:.08s;}
.bpp-figures-list li.rv:nth-child(3){transition-delay:.16s;}
.bpp-figures-list li.rv:nth-child(4){transition-delay:.24s;}
.bpp-figures-list .num{font-family:'Poppins',sans-serif;font-weight:600;font-size:clamp(24px,2.4vw,30px);line-height:1.1;color:var(--lime) !important;}
.bpp-figures-list .num.alpha{font-size:clamp(18px,1.8vw,21px);color:#fff !important;}
.bpp-figures-list .lbl{font-size:13px;line-height:1.5;color:var(--sage) !important;}

.bpp-body-wrap{padding:clamp(56px,7vw,80px) 0 0;}
.bpp-cols{display:flex;gap:56px;align-items:flex-start;}
.bpp-article{flex:1;min-width:0;display:flex;flex-direction:column;gap:22px;}
.bpp-article h2{font-size:23px;margin-top:8px;}
.bpp-article h2:first-child{margin-top:0;}
.bpp-article h3{font-size:17.5px;margin-top:2px;}
.bpp-article p{font-size:16px;color:var(--body) !important;}
.bpp-article .lead{font-size:16px;color:var(--dark) !important;font-weight:500;}
.bpp-article .lead.pull{font-size:21px;line-height:1.45;border-left:3px solid var(--lime);padding:2px 0 2px 22px;margin:8px 0 4px;}

.bpp-kicker{position:relative;display:block;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--green-800) !important;margin-bottom:8px;}
.bpp-kicker::after{content:'';display:inline-block;width:20px;height:1px;background:var(--green-800);opacity:.4;margin-left:10px;vertical-align:middle;}

.bpp-stakes-list{display:flex;flex-direction:column;margin-top:2px;}
.bpp-stakes-item{display:flex;gap:22px;padding:22px 0;border-top:1px solid var(--border-subtle);}
.bpp-stakes-item:first-child{border-top:none;padding-top:0;}
.bpp-stakes-item:last-child{padding-bottom:0;}
.bpp-stakes-num{flex-shrink:0;width:52px;font-size:38px;font-weight:600;line-height:1;color:var(--lime) !important;letter-spacing:-.02em;}
.bpp-stakes-body{flex:1;min-width:0;}
.bpp-stakes-label{display:block;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--green-800) !important;margin-bottom:6px;}
.bpp-stakes-body h3{font-size:16.5px;margin:0 0 4px;}
.bpp-stakes-body p{font-size:14.5px;color:var(--body) !important;}

.bpp-duo .bpp-plate{height:100%;display:flex;flex-direction:column;gap:10px;}
.bpp-duo .bpp-plate-frame{flex:1;height:auto !important;max-height:none !important;min-height:180px;}
.bpp-duo .bpp-plate-frame .bpp-plate-img{max-height:none !important;object-position:50% 50% !important;}

.bpp-fieldnote{border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);padding:24px 0;display:flex;flex-direction:column;gap:8px;}
.bpp-fieldnote p{font-size:16px;color:var(--body) !important;}

.bpp-cap-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:2px;}
.bpp-cap-card{
  background:var(--sage-50);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);
  padding:24px;display:flex;flex-direction:column;gap:8px;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease);
}
.bpp-cap-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-card);}
.bpp-cap-card h3{font-size:16.5px;margin-top:0;}
.bpp-article .bpp-cap-card p{font-size:14.5px;color:var(--body) !important;}
.bpp-cap-grid .rv:nth-child(1){transition-delay:0s;}
.bpp-cap-grid .rv:nth-child(2){transition-delay:.08s;}
.bpp-cap-grid .rv:nth-child(3){transition-delay:.16s;}
.bpp-cap-grid .rv:nth-child(4){transition-delay:.24s;}

.bpp-spot{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:0;transition:opacity .5s ease;background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%), rgba(210,221,54,.16), transparent 62%);}
.bpp-figures:hover .bpp-spot,.bpp-cta-panel:hover .bpp-spot,.bpp-head:hover .bpp-spot{opacity:1;}

.bpp-duo{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:4px;align-items:stretch;}
.bpp-duo-frame{position:relative;min-height:260px;border-radius:var(--radius-lg);overflow:hidden;}
.bpp-duo-frame.bpp-shimmer{background:linear-gradient(100deg, var(--sage-100) 30%, var(--sage-50) 50%, var(--sage-100) 70%);background-size:200% 100%;animation:bpp-shimmer 1.6s ease-in-out infinite;}
.bpp-duo img{width:100%;height:100%;min-height:260px;object-fit:cover;border-radius:var(--radius-lg);display:block;opacity:0;transition:opacity .5s ease, transform .6s var(--ease);}
.bpp-duo img.bpp-loaded{opacity:1;}
.bpp-duo:hover img{transform:scale(1.035);}
.bpp-duo-card{
  background:var(--sage-50);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);
  padding:26px;display:flex;flex-direction:column;gap:12px;justify-content:center;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease);
}
.bpp-duo-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-card);}
.bpp-duo-card h3{font-size:17px;}
.bpp-duo-card p{font-size:14px;color:var(--body) !important;}
@keyframes bpp-shimmer{0%{background-position:200% 0;}100%{background-position:-200% 0;}}

.bpp-aside{width:300px;flex-shrink:0;position:relative;display:flex;flex-direction:column;gap:18px;}
.bpp-aside-card{background:#fff;border:1px solid rgba(5,41,35,.1);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:26px;display:flex;flex-direction:column;gap:14px;transition:transform .35s var(--ease), box-shadow .35s var(--ease);}
.bpp-aside-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-raised);}
.bpp-aside-card.subtle{background:var(--sage-50);border-color:var(--border-subtle);box-shadow:none;}
.bpp-aside-card.subtle:hover{box-shadow:var(--shadow-card);}
.bpp-aside.is-stuck .bpp-aside-card:first-child{box-shadow:var(--shadow-raised);}
.bpp-aside-logo{width:52px;height:52px;border-radius:var(--radius-md);object-fit:cover;}
.bpp-aside-card h3{font-size:16px;}
.bpp-aside-loc{font-size:13px;color:var(--muted) !important;}
.bpp-aside-facts{display:flex;flex-direction:column;gap:10px;font-size:13px;border-top:1px solid var(--border-subtle);padding-top:14px;}
.bpp-aside-facts > div{display:flex;justify-content:space-between;gap:14px;}
.bpp-aside-facts span:first-child{color:var(--muted) !important;flex-shrink:0;}
.bpp-aside-facts span:last-child{color:var(--dark) !important;text-align:right;}
.bpp-tags{display:flex;flex-wrap:wrap;gap:8px;}
.bpp-tags span{background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-pill);padding:6px 13px;font-size:12.5px;color:var(--green-800) !important;transition:all .25s var(--ease);cursor:default;}
.bpp-tags span:hover{background:var(--dark);color:#fff !important;border-color:var(--dark);transform:translateY(-2px) !important;}
.bpp-tags span.rv:nth-child(1){transition-delay:0s;}
.bpp-tags span.rv:nth-child(2){transition-delay:.06s;}
.bpp-tags span.rv:nth-child(3){transition-delay:.12s;}
.bpp-tags span.rv:nth-child(4){transition-delay:.18s;}
.bpp-tags span.rv:nth-child(5){transition-delay:.24s;}

.bpp-cta{padding:clamp(64px,8vw,96px) 0 clamp(72px,9vw,100px);}
.bpp-cta-panel{
  position:relative;overflow:hidden;
  background:linear-gradient(150deg,#0C4034 0%,#06322A 55%,#041E19 100%);border-radius:var(--radius-xl);
  padding:clamp(40px,5vw,60px);
  display:flex;gap:40px;align-items:center;justify-content:space-between;flex-wrap:wrap;
}
.bpp-cta-copy{position:relative;z-index:1;max-width:560px;}
.bpp-cta-copy h2{font-size:clamp(24px,3vw,32px);color:#fff !important;line-height:1.25;margin-bottom:12px;}
.bpp-cta-copy p{font-size:15px;line-height:1.6;color:var(--sage) !important;}
.bpp-btn{
  position:relative;z-index:1;display:inline-flex;align-items:center;gap:10px;
  background:var(--lime);border-radius:var(--radius-pill);padding:15px 30px;
  font-family:inherit;font-size:15px;font-weight:600;color:var(--dark) !important;text-decoration:none;
  transition:transform .3s var(--ease), box-shadow .3s ease, background .3s ease;
}
.bpp-btn svg{width:16px;height:16px;stroke:var(--dark);stroke-width:2.4;fill:none;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s var(--ease);}
.bpp-btn:hover{transform:translateY(-2px);background:var(--lime-300);box-shadow:0 14px 30px rgba(210,221,54,.3);}
.bpp-btn:hover svg{transform:translateX(3px);}

.bpp .rv{
  opacity:0;
  transform:translateY(34px) scale(.99);
  filter:blur(4px);
  transition:
    opacity .8s cubic-bezier(.22,1,.36,1),
    transform .8s cubic-bezier(.22,1,.36,1),
    filter .7s ease;
}
.bpp .rv.go{
  opacity:1;
  transform:none;
  filter:blur(0);
}
.bpp .rv.d1{ transition-delay:.1s; }
.bpp .rv.d2{ transition-delay:.2s; }

@media (prefers-reduced-motion:reduce){
  .bpp .rv{opacity:1 !important;transform:none !important;filter:none !important;transition:none !important;}
}

@media (max-width:900px){
  .bpp-cols{flex-direction:column;}
  .bpp-aside{width:100%;position:static;transform:none !important;}
  .bpp-feature-grid{grid-template-columns:1fr;}
  .bpp-plate-frame{height:clamp(220px,54vw,320px) !important;max-height:320px !important;}
  .bpp-figures-list{flex-direction:row;flex-wrap:wrap;gap:0;}
  .bpp-figures-list li{width:50%;padding:14px 0;border-bottom:1px solid rgba(182,200,197,.16);}
  .bpp-figures-list li:nth-last-child(-n+2){border-bottom:none;}
  .bpp-duo{grid-template-columns:1fr;}
  .bpp-totop{right:16px;bottom:16px;width:42px;height:42px;}
}

@media (max-width:640px){
  .bpp-cap-grid{grid-template-columns:1fr;}
}

@media (max-width:520px){
  .bpp-figures-list li{width:100%;padding:14px 0;border-bottom:1px solid rgba(182,200,197,.16) !important;}
  .bpp-figures-list li:last-child{border-bottom:none !important;}
}
</style>
<noscript><style>.bpp{opacity:1 !important;}.bpp .rv{opacity:1 !important;transform:none !important;filter:none !important;}.bpp-plate-img,.bpp-duo img{opacity:1 !important;}.bpp-plate-frame,.bpp-duo-frame{animation:none !important;background:none !important;}</style></noscript>

<article class="bpp">

  <div class="bpp-progress-track"><div class="bpp-progress-bar"></div></div>
  <button class="bpp-totop" type="button" aria-label="Back to top">
    <svg viewBox="0 0 24 24"><line x1="12" y1="19" x2="12" y2="5"/><polyline points="5 12 12 5 19 12"/></svg>
  </button>

  <section class="bpp-head bpp-spotter">
    <div class="bpp-orb a"></div><div class="bpp-orb b"></div><div class="bpp-spot"></div>
    <div class="bpp-in">
      <div class="bpp-crumb rv">
        <a href="https://bigplushq.com/blog/">Blog</a><span>/</span><span class="cur">Features</span>
      </div>
      <span class="bpp-eyebrow rv">Features</span>
      <h1 class="rv">Offline Mode: built in, not bolted on</h1>
      <p class="bpp-sub rv">Bigplus keeps selling when your internet doesn't. Every register runs entirely on the device, so a dropped connection stops being a crisis and starts being a Tuesday.</p>
      <div class="bpp-byline rv">
        <img decoding="async" src="https://bigplushq.com/wp-content/uploads/2026/05/BP-Logo.png" alt="Bigplus HQ">
        <span>Features</span>
        <span class="sep">&bull;</span>
        <span>17 August 2026</span>
        <span class="sep">&bull;</span>
        <span>2 min read</span>
      </div>
    </div>
  </section>

  <section class="bpp-feature">
    <div class="bpp-in bpp-feature-grid">
      <figure class="bpp-plate rv">
        <div class="bpp-plate-frame bpp-shimmer">
          <img decoding="async" class="bpp-plate-img" src="https://bigplushq.com/wp-content/uploads/2026/08/Offline-mode-banner.jpg" alt="Bigplus Offline Mode dashboard set to Force Offline, showing offline data still syncing">
        </div>
        <figcaption><span class="bpp-plate-num">Fig. 01</span> No connection, no problem. Offline Mode running in Force Offline</figcaption>
      </figure>

      <aside class="bpp-figures rv bpp-spotter">
        <div class="bpp-orb a"></div><div class="bpp-orb b"></div><div class="bpp-spot"></div>
        <span class="bpp-figures-kicker">By the numbers</span>
        <ul class="bpp-figures-list">
          <li class="rv"><span class="num" data-count="32">32</span><span class="lbl">Sales rung up locally during a live fibre outage</span></li>
          <li class="rv"><span class="num" data-count="0">0</span><span class="lbl">Sales lost while the connection was down</span></li>
          <li class="rv"><span class="num alpha">100%</span><span class="lbl">Of core POS functions keep working offline</span></li>
          <li class="rv"><span class="num alpha">Instant</span><span class="lbl">Sync the second connectivity returns</span></li>
        </ul>
      </aside>
    </div>
  </section>

  <section class="bpp-body-wrap">
    <div class="bpp-in bpp-cols">

      <article class="bpp-article rv">
        <span class="bpp-kicker">The problem</span>
        <h2>The reality</h2>
        <p>Every retailer knows the feeling. A queue at the till, a customer with card in hand, and then the screen freezes. The internet is down. In a lot of point of sale systems, that is where trading stops. Sales are lost, customers walk, and the day's momentum is gone.</p>
        <p>Connectivity is never guaranteed, whether it is a power cut, an ISP outage, a dropped connection in a busy shopping centre or unreliable Wi-Fi in an older building. It is not a rare edge case. It is something every store hits eventually. This is exactly the problem Bigplus Offline Mode was built to solve, and it is worth understanding what genuine offline resilience looks like, because not all offline features are equal.</p>
        <p class="lead pull">The moment Bigplus loses connection, it does not ask your staff to do anything differently.</p>

        <span class="bpp-kicker">The mechanism</span>
        <h2>How Offline Mode works</h2>

        <div class="bpp-cap-grid">
          <div class="bpp-cap-card rv">
            <h3>Sales don't pause</h3>
            <p>Ring up items, apply discounts, and take cash or account payments exactly as normal. The register doesn't know it's offline, and neither does the queue.</p>
          </div>
          <div class="bpp-cap-card rv">
            <h3>Stock stays accurate</h3>
            <p>Every offline sale still deducts stock locally, so on hand counts are correct the instant connectivity returns, not after a manual recount.</p>
          </div>
          <div class="bpp-cap-card rv">
            <h3>Customers are still recognised</h3>
            <p>Profiles, purchase history and account balances are cached on the device, so regulars don't become strangers just because the Wi-Fi dropped.</p>
          </div>
          <div class="bpp-cap-card rv">
            <h3>Receipts print as normal</h3>
            <p>Receipt printers and customer displays keep working off the local connection, no cloud round trip required for every line item.</p>
          </div>
        </div>

        <span class="bpp-kicker">The stakes</span>
        <h2>Why it matters</h2>

        <div class="bpp-stakes-list">
          <div class="bpp-stakes-item rv">
            <span class="bpp-stakes-num">01</span>
            <div class="bpp-stakes-body">
              <span class="bpp-stakes-label">Continuity</span>
              <h3>Customers never know</h3>
              <p>The queue keeps moving at the same pace, online or not. No apology, no cash only sign taped to the till.</p>
            </div>
          </div>
          <div class="bpp-stakes-item rv">
            <span class="bpp-stakes-num">02</span>
            <div class="bpp-stakes-body">
              <span class="bpp-stakes-label">Accuracy</span>
              <h3>Numbers you can trust</h3>
              <p>Stock and sales figures reconcile automatically, so nobody's re keying a stack of handwritten slips at closing time.</p>
            </div>
          </div>
          <div class="bpp-stakes-item rv">
            <span class="bpp-stakes-num">03</span>
            <div class="bpp-stakes-body">
              <span class="bpp-stakes-label">Confidence</span>
              <h3>Staff don't panic</h3>
              <p>There's no special mode to switch on or remember. The till behaves the same, so training doesn't change and mistakes don't creep in.</p>
            </div>
          </div>
          <div class="bpp-stakes-item rv">
            <span class="bpp-stakes-num">04</span>
            <div class="bpp-stakes-body">
              <span class="bpp-stakes-label">Honesty</span>
              <h3>Where the limits are</h3>
              <p>Card payments still need a live connection to authorise, that's true industry wide, not a Bigplus gap. Cash and account sales never stop.</p>
            </div>
          </div>
        </div>

        <div class="bpp-duo">
          <figure class="bpp-plate">
            <div class="bpp-plate-frame bpp-shimmer">
              <img decoding="async" class="bpp-plate-img" src="https://bigplushq.com/wp-content/uploads/2026/08/Offline-Mode-2nd-image.jpg" alt="Bigplus Offline Mode dashboard back to Status Online after reconnecting">
            </div>
            <figcaption><span class="bpp-plate-num">Fig. 02</span> Back online, everything already synced</figcaption>
          </figure>
          <div class="bpp-duo-card">
            <span class="bpp-stakes-label">Resilience</span>
            <h3>Every register works alone</h3>
            <p>There's no single point of failure. Each till queues its own sales independently, so one device losing signal never holds up the rest of the store.</p>
          </div>
        </div>

        <div class="bpp-fieldnote">
          <span class="bpp-kicker">From the field</span>
          <p>It isn't hypothetical either. One Bigplus retailer lost fibre mid afternoon on a Saturday, their busiest trading day, and nobody at the till even flagged it to head office. Thirty two sales later, when the connection came back, everything synced in the background without anyone touching a screen, a moment our support manager Tyler still points to as proof the design works.</p>
        </div>

        <p>Connectivity will fail somewhere, sometime, whether it's load shedding, a router reboot, or a fibre fault outside your control. What decides the outcome isn't luck. It's whether your POS was built assuming that would happen.</p>
      </article>

      <aside class="bpp-aside rv">
        <div class="bpp-aside-card">
          <img decoding="async" class="bpp-aside-logo" src="https://bigplushq.com/wp-content/uploads/2026/05/BP-Logo.png" alt="Bigplus Offline Mode">
          <div>
            <h3>Offline Mode</h3>
            <span class="bpp-aside-loc">A Bigplus feature</span>
          </div>
          <div class="bpp-aside-facts">
            <div><span>Type</span><span>POS continuity</span></div>
            <div><span>Runs on</span><span>Local device</span></div>
            <div><span>Sync</span><span>Automatic, on reconnect</span></div>
            <div><span>Availability</span><span>Every plan</span></div>
          </div>
        </div>
        <div class="bpp-aside-card subtle">
          <h3>Covers</h3>
          <div class="bpp-tags">
            <span class="rv">Offline Mode</span>
            <span class="rv">POS Continuity</span>
            <span class="rv">Load Shedding</span>
            <span class="rv">Auto Sync</span>
            <span class="rv">Every Plan</span>
          </div>
        </div>
      </aside>

    </div>
  </section>

  <section class="bpp-cta">
    <div class="bpp-in">
      <div class="bpp-cta-panel rv bpp-spotter">
        <div class="bpp-orb a"></div><div class="bpp-orb b"></div><div class="bpp-spot"></div>
        <div class="bpp-cta-copy">
          <h2>Stop hoping. Start trusting your till.</h2>
          <p>Book a demo and see Offline Mode handle a dropped connection live. Setup and training are included, so your whole team knows exactly what changes when the Wi-Fi goes down. Which is nothing.</p>
        </div>
        <a class="bpp-btn" href="https://bigplushq.com/request-a-demo">Book a demo <svg viewBox="0 0 24 24"><line x1="4" y1="12" x2="20" y2="12"/><polyline points="13 5 20 12 13 19"/></svg></a>
      </div>
    </div>
  </section>

</article>

<script>
(function(){
  var reduce = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;

  function animateCount(span){
    var target = parseInt(span.dataset.count, 10);
    if(isNaN(target)) return;
    var isPlus = /\+/.test(span.textContent);
    var start = performance.now();
    var dur = 1100;
    function tick(now){
      var p = Math.min(1, (now - start) / dur);
      var eased = 1 - Math.pow(1 - p, 3);
      var val = Math.round(target * eased);
      span.textContent = val.toLocaleString('en-ZA') + (isPlus && p >= 1 ? '+' : '');
      if(p < 1) requestAnimationFrame(tick);
    }
    requestAnimationFrame(tick);
  }

  function loadImage(img, frame){
    function done(){
      img.classList.add('bpp-loaded');
      if(frame) frame.classList.remove('bpp-shimmer');
    }
    if(img.complete && img.naturalWidth) done();
    else img.addEventListener('load', done, { once:true });
  }

  document.querySelectorAll('.bpp').forEach(function(root){
    if(root.dataset.bppInit) return;
    root.dataset.bppInit = '1';

    requestAnimationFrame(function(){ root.classList.add('bpp-ready'); });

    root.querySelectorAll('.bpp-plate-img').forEach(function(img){
      loadImage(img, img.closest('.bpp-plate-frame'));
    });

    if(reduce || !('IntersectionObserver' in window)){
      root.querySelectorAll('.rv').forEach(function(el){
        el.classList.add('go');
        var counter = el.querySelector('[data-count]');
        if(counter) animateCount(counter);
      });
    } else {
      var io = new IntersectionObserver(function(entries){
        entries.forEach(function(en){
          if(!en.isIntersecting) return;
          en.target.classList.add('go');
          var counter = en.target.querySelector('[data-count]');
          if(counter) animateCount(counter);
          io.unobserve(en.target);
        });
      }, { threshold:0.1, rootMargin:'0px 0px -6% 0px' });
      root.querySelectorAll('.rv').forEach(function(el){ io.observe(el); });
    }

    root.querySelectorAll('.bpp-spotter').forEach(function(panel){
      panel.addEventListener('mousemove', function(e){
        var r = panel.getBoundingClientRect();
        panel.style.setProperty('--mx', ((e.clientX - r.left) / r.width * 100) + '%');
        panel.style.setProperty('--my', ((e.clientY - r.top) / r.height * 100) + '%');
      });
    });

    var progressBar = root.querySelector('.bpp-progress-bar');
    var totop = root.querySelector('.bpp-totop');
    var aside = root.querySelector('.bpp-aside');
    var cols = root.querySelector('.bpp-cols');
    var topOffset = 160;
    var asideNatural = 0;
    var asideH = 0;
    var colsBot = 0;

    function measure(){
      if(!aside || !cols) return;
      aside.style.transform = 'translateY(0)';
      aside.classList.remove('is-stuck');
      void aside.offsetHeight;
      var cr = cols.getBoundingClientRect();
      colsBot = cr.top + window.scrollY + cr.height;
      asideNatural = aside.getBoundingClientRect().top + window.scrollY;
      asideH = aside.offsetHeight;
    }

    function onScroll(){
      var scrollTop = window.scrollY;
      var scrollable = document.documentElement.scrollHeight - window.innerHeight;
      var pct = scrollable > 0 ? Math.min(100, Math.max(0, (scrollTop / scrollable) * 100)) : 0;
      if(progressBar) progressBar.style.width = pct + '%';
      if(totop) totop.classList.toggle('show', scrollTop > 600);

      if(aside && cols && window.matchMedia('(min-width:901px)').matches){
        var stickyStart = asideNatural - topOffset;
        var maxShift = colsBot - asideNatural - asideH;
        if(maxShift < 0) maxShift = 0;
        var shift = scrollTop - stickyStart;
        if(shift < 0) shift = 0;
        if(shift > maxShift) shift = maxShift;
        aside.style.transform = 'translateY(' + shift + 'px)';
        aside.classList.toggle('is-stuck', shift > 0);
      } else if(aside){
        aside.style.transform = 'translateY(0)';
        aside.classList.remove('is-stuck');
      }
    }

    measure();
    window.addEventListener('scroll', onScroll, { passive:true });
    window.addEventListener('resize', function(){ measure(); onScroll(); });
    setTimeout(measure, 200);
    onScroll();

    if(totop){
      totop.addEventListener('click', function(){
        window.scrollTo({ top:0, behavior: reduce ? 'auto' : 'smooth' });
      });
    }
  });
})();
</script>				</div>
				</div>
					</div>
				</div>
				</div>
		<p>The post <a href="https://bigplushq.com/blog/offline-mode/">Offline Mode</a> appeared first on <a href="https://bigplushq.com">Bigplus Point of Sale</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Xero</title>
		<link>https://bigplushq.com/blog/xero/</link>
		
		<dc:creator><![CDATA[Dylan Phillips]]></dc:creator>
		<pubDate>Wed, 15 Jul 2026 14:36:21 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[integration]]></category>
		<category><![CDATA[product]]></category>
		<guid isPermaLink="false">https://bigplushq.com/?p=13881</guid>

					<description><![CDATA[<p>Sales sync straight into Xero, automatically.</p>
<p>The post <a href="https://bigplushq.com/blog/xero/">Xero</a> appeared first on <a href="https://bigplushq.com">Bigplus Point of Sale</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="13881" class="elementor elementor-13881" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-0c70ce7 e-flex e-con-boxed e-con e-parent" data-id="0c70ce7" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-f3f9d7f elementor-widget elementor-widget-html" data-id="f3f9d7f" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<style>
/* ===== Bigplus × Xero blog post widget ===== */
.bpx{
  --lime:#CEDD40;
  --dark:#052923;
  --deep:#0B2B23;
  --mid:#09483E;
  --slate:#B6C8C5;
  --gray:#F2F4F0;
  --ink:#12312B;
  font-family:'Poppins',sans-serif;
  background:#fff;color:var(--dark);
  /* Full-bleed: fill the viewport width regardless of section/column padding */
  width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  overflow-x:hidden;
}
.bpx *{box-sizing:border-box;margin:0;padding:0;}
.bpx-in{width:80%;margin:0 auto;}
.bpx-narrow{width:80%;max-width:780px;margin:0 auto;}

/* Kill any padding the Elementor HTML wrapper adds around this widget */
.elementor-widget-html:has(.bpx) .elementor-widget-container{padding:0 !important;margin:0 !important;}
.elementor-element:has(> .elementor-widget-container > .bpx){padding:0 !important;}

/* Eyebrows */
.bpx-eb{
  display:flex;align-items:center;gap:12px;
  font-size:12px;font-weight:600;letter-spacing:2.8px;text-transform:uppercase;
  color:var(--slate);margin-bottom:22px;
}
.bpx-eb::before{content:'';width:0;height:2px;background:var(--lime);flex-shrink:0;transition:width .6s cubic-bezier(.22,1,.36,1) .15s;}
.bpx-eb.go::before,.bpx-eb.rv.go::before{width:26px;}
.bpx-eb:not(.rv)::before{width:26px;}
.bpx-eb.dk{color:#5f7a74;}

/* Buttons */
.bpx-btn{
  position:relative;overflow:hidden;
  display:inline-flex;align-items:center;gap:10px;
  background:var(--lime);border-radius:100px;padding:15px 32px;
  font-size:15px;text-decoration:none;
  font-family:'Poppins',sans-serif !important;font-weight:600 !important;color:var(--dark) !important;
  transition:transform .3s ease, box-shadow .3s ease;
}
.bpx-btn > *{position:relative;z-index:1;}
.bpx-btn::after{
  content:'';position:absolute;top:-15%;left:-130%;width:55%;height:130%;z-index:0;pointer-events:none;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.6),transparent);
  transform:skewX(-18deg);
}
.bpx-btn:hover::after{animation:bpxSheen .75s ease;}
@keyframes bpxSheen{to{left:145%;}}
.bpx-btn svg{width:16px;height:16px;stroke:var(--dark);stroke-width:2.4;fill:none;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s ease;}
.bpx-btn:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(206,221,64,.32);color:var(--dark) !important;}
.bpx-btn:hover svg{transform:translateX(3px);}
.bpx-btn-o{
  display:inline-flex;align-items:center;
  border:1px solid rgba(182,200,197,.45);border-radius:100px;padding:15px 32px;
  font-size:15px;text-decoration:none;
  font-family:'Poppins',sans-serif !important;font-weight:500 !important;color:#fff !important;
  transition:border-color .3s ease, background .3s ease;
}
.bpx-btn-o:hover{border-color:var(--lime);background:rgba(206,221,64,.08);color:#fff !important;}

/* ================= HERO ================= */
.bpx-hero{background:var(--deep);padding:clamp(140px,15vw,200px) 0 0;position:relative;display:flow-root;}
.bpx-hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(40px,6vw,90px);align-items:center;position:relative;z-index:1;}
.bpx-hero h1{
  font-size:clamp(36px,4.8vw,58px);font-weight:700;line-height:1.08;letter-spacing:-1px;
  color:#fff;margin-bottom:26px;
}
.bpx-hero h1 .w{display:inline-block;}
.bpx-hero h1.split .w{
  opacity:0;transform:translateY(48px) rotate(1.5deg);
  transition:opacity .7s cubic-bezier(.2,1,.3,1), transform .7s cubic-bezier(.2,1,.3,1);
}
.bpx-hero h1.split.go .w{opacity:1;transform:none;}
.bpx-hl{
  display:inline-block;background:var(--lime);color:var(--dark);
  padding:2px 16px 6px;line-height:1.05;
}
.bpx-hero h1.split .bpx-hl{clip-path:inset(0 100% 0 0);transition:clip-path .85s cubic-bezier(.76,0,.24,1);}
.bpx-hero h1.split.go .bpx-hl{clip-path:inset(0 0 0 0);}
.bpx-hero-sub{font-size:16.5px;line-height:1.75;color:var(--slate);max-width:480px;margin-bottom:34px;}
.bpx-hero-btns{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:34px;}
.bpx-hero-checks{display:flex;gap:26px;flex-wrap:wrap;}
.bpx-hero-checks span{display:flex;align-items:center;gap:9px;font-size:13.5px;color:var(--slate);}
.bpx-hero-checks svg{width:15px;height:15px;stroke:var(--lime);stroke-width:2.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.bpx-hero-checks svg polyline{stroke-dasharray:26;stroke-dashoffset:26;transition:stroke-dashoffset .55s ease;}
.bpx-hero-checks.go svg polyline{stroke-dashoffset:0;}
.bpx-hero-checks.go span:nth-child(1) svg polyline{transition-delay:.35s;}
.bpx-hero-checks.go span:nth-child(2) svg polyline{transition-delay:.5s;}
.bpx-hero-checks.go span:nth-child(3) svg polyline{transition-delay:.65s;}
/* Soft ambient glow behind hero */
.bpx-hero::before{
  content:'';position:absolute;top:8%;right:-8%;width:520px;height:520px;border-radius:50%;
  background:radial-gradient(circle, rgba(206,221,64,.10), transparent 68%);pointer-events:none;z-index:0;
  animation:bpxDrift 16s ease-in-out infinite;
}
@keyframes bpxDrift{0%,100%{transform:translate(0,0);}50%{transform:translate(-26px,22px);}}

/* Hero visual */
.bpx-mock-wrap{position:relative;}
.bpx-hero-img{position:relative;}
.bpx-hero-img img{width:100%;height:auto;display:block;border-radius:14px;filter:drop-shadow(0 34px 66px rgba(0,0,0,.45));}
.bpx-float{
  position:absolute;background:#fff;border-radius:12px;padding:12px 16px;
  box-shadow:0 20px 44px rgba(0,0,0,.35);display:flex;align-items:center;gap:11px;z-index:2;
}
.bpx-float .ic{width:32px;height:32px;border-radius:9px;background:var(--lime);display:flex;align-items:center;justify-content:center;}
.bpx-float .ic svg{width:16px;height:16px;stroke:var(--dark);stroke-width:2.4;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.bpx-float .t1{font-size:10.5px;color:#8AA09A;font-weight:500;}
.bpx-float .t2{font-size:13.5px;font-weight:700;color:var(--dark);}
.bpx-float.f1{top:-24px;right:-14px;animation:bpxFloatA 5.5s ease-in-out infinite;}
.bpx-float.f2{bottom:-22px;left:-18px;animation:bpxFloatB 6.5s ease-in-out infinite;}
@keyframes bpxFloatA{0%,100%{transform:translateY(0);}50%{transform:translateY(-10px);}}
@keyframes bpxFloatB{0%,100%{transform:translateY(0);}50%{transform:translateY(8px);}}

/* ================= INTRO ================= */
.bpx-intro{padding:clamp(130px,16vw,190px) 0 0;text-align:center;}
.bpx-intro p{font-size:clamp(16.5px,2vw,19px);line-height:1.8;color:var(--ink);margin-bottom:22px;}
.bpx-intro p b{font-weight:600;}
.bpx-works{display:flex;flex-direction:column;align-items:center;gap:16px;margin-top:34px;}
.bpx-works .lbl{font-size:11px;letter-spacing:2.4px;text-transform:uppercase;font-weight:600;color:#8AA09A;}
.bpx-works img{height:64px;width:auto;display:block;}

/* ================= WHAT IT DOES (dark) ================= */
.bpx-does{background:var(--deep);padding:clamp(70px,9vw,120px) 0;margin-top:clamp(64px,8vw,100px);}
.bpx-h2{font-size:clamp(30px,3.8vw,46px);font-weight:700;line-height:1.12;letter-spacing:-0.8px;color:#fff;margin-bottom:20px;}
.bpx-h2 .lm{color:var(--lime);}
.bpx-does-head{max-width:680px;margin-bottom:clamp(40px,5vw,60px);}
.bpx-does-head .bpx-h2{margin-bottom:16px;}
.bpx-does-sub{font-size:15.5px;line-height:1.75;color:var(--slate);}
.bpx-does-sub b{color:#fff;font-weight:600;}

.bpx-does-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.bpx-fcard{
  position:relative;overflow:hidden;
  background:rgba(255,255,255,.035);
  border:1px solid rgba(182,200,197,.14);
  border-radius:20px;padding:30px 28px;
  display:flex;flex-direction:column;
  transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease, background .35s ease;
}
.bpx-fcard > *{position:relative;z-index:1;}
.bpx-fcard::before{
  content:'';position:absolute;inset:0;z-index:0;pointer-events:none;opacity:0;transition:opacity .4s ease;
  background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%), rgba(206,221,64,.15), transparent 62%);
}
.bpx-fcard:hover{transform:translateY(-6px);box-shadow:0 24px 46px rgba(0,0,0,.3);border-color:rgba(206,221,64,.4);background:rgba(255,255,255,.06);}
.bpx-fcard:hover::before{opacity:1;}
.bpx-fcard .ic{width:46px;height:46px;border-radius:12px;background:var(--lime);display:flex;align-items:center;justify-content:center;margin-bottom:22px;flex-shrink:0;transition:transform .35s ease;}
.bpx-fcard:hover .ic{transform:rotate(-6deg) scale(1.06);}
.bpx-fcard .ic svg{width:21px;height:21px;stroke:var(--dark);stroke-width:2.4;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.bpx-fcard h4{font-size:16.5px;font-weight:600;color:#fff;margin-bottom:10px;letter-spacing:-0.2px;line-height:1.3;}
.bpx-fcard p{font-size:13.5px;line-height:1.65;color:var(--slate);}

/* Control account mockup — sits as the highlight tile in the grid */
.bpx-xero-card{background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 24px 48px rgba(0,0,0,.28);align-self:stretch;}
.bpx-xero-head{background:var(--dark);padding:14px 22px;display:flex;justify-content:space-between;align-items:center;}
.bpx-xero-head .t{font-size:12px;font-weight:600;color:#fff;}
.bpx-xero-head .d{font-size:11px;color:var(--slate);}
.bpx-xero-body{padding:6px 22px;}
.bpx-xr{display:flex;justify-content:space-between;align-items:baseline;padding:12px 0;border-bottom:1px solid #EDF1EE;gap:16px;}
.bpx-xr .n{font-size:13px;color:var(--ink);font-weight:500;}
.bpx-xr .n small{display:block;font-size:11px;color:#8AA09A;font-weight:400;margin-top:2px;}
.bpx-xr .v{font-size:13px;font-weight:600;color:var(--dark);white-space:nowrap;}
.bpx-xr.tot .n,.bpx-xr.tot .v{font-weight:700;font-size:14px;}
.bpx-xr.tot{border-bottom:none;}
.bpx-xero-rec{
  display:flex;justify-content:space-between;align-items:center;
  background:var(--lime);margin:8px 14px 14px;border-radius:10px;padding:13px 18px;
}
.bpx-xero-rec .l{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:700;color:var(--dark);}
.bpx-xero-rec svg{width:15px;height:15px;stroke:var(--dark);stroke-width:3;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.bpx-xero-rec .v{font-size:14px;font-weight:700;color:var(--dark);}

/* ================= LIME STAT BAND (straddles hero bottom) ================= */
.bpx-band{margin-top:clamp(56px,8vw,100px);position:relative;z-index:1;}
.bpx-band-in{
  background:var(--lime);border-radius:20px;
  display:grid;grid-template-columns:repeat(4,1fr);
  transform:translateY(50%);
  box-shadow:0 24px 50px rgba(5,41,35,.18);
  position:relative;z-index:2;
}
.bpx-band-cell{padding:clamp(24px,3vw,38px) clamp(20px,2.6vw,34px);border-left:1px solid rgba(5,41,35,.14);}
.bpx-band-cell:first-child{border-left:none;}
.bpx-band-cell .n{font-size:clamp(24px,2.8vw,34px);font-weight:700;color:var(--dark);line-height:1;margin-bottom:8px;font-variant-numeric:tabular-nums;}
.bpx-band-cell .l{font-size:13px;color:var(--mid);font-weight:500;line-height:1.45;}

/* ================= WHY (card grid, light) ================= */
.bpx-why{padding:clamp(70px,9vw,120px) 0;}
.bpx-why-head{max-width:660px;margin-bottom:clamp(40px,5vw,58px);}
.bpx-why-head .bpx-h2{color:var(--dark);}
.bpx-why-head .bpx-h2 .lm{
  color:inherit;
  background-image:linear-gradient(transparent 55%,rgba(206,221,64,.85) 55%);
  background-repeat:no-repeat;background-size:0% 100%;
  transition:background-size .75s cubic-bezier(.6,0,.2,1) .25s;
}
.bpx-why-head .bpx-h2.go .lm{background-size:100% 100%;}
.bpx-why-sub{font-size:15.5px;line-height:1.75;color:var(--mid);margin-top:6px;}
.bpx-why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
.bpx-wc{
  position:relative;overflow:hidden;
  background:#fff;border:1px solid #E2E8E3;border-radius:20px;padding:30px 26px;
  transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.bpx-wc > *{position:relative;z-index:1;}
.bpx-wc::before{
  content:'';position:absolute;inset:0;z-index:0;pointer-events:none;opacity:0;transition:opacity .4s ease;
  background:radial-gradient(240px circle at var(--mx,50%) var(--my,50%), rgba(206,221,64,.22), transparent 60%);
}
.bpx-wc:hover{transform:translateY(-6px);box-shadow:0 22px 44px rgba(5,41,35,.10);border-color:var(--lime);}
.bpx-wc:hover::before{opacity:1;}
.bpx-wc .badge{
  width:46px;height:46px;border-radius:12px;background:var(--lime);
  display:flex;align-items:center;justify-content:center;
  font-size:16px;font-weight:700;color:var(--dark);margin-bottom:20px;transition:transform .35s ease;
}
.bpx-wc:hover .badge{transform:rotate(-6deg) scale(1.06);}
.bpx-wc .tag{display:block;font-size:10.5px;letter-spacing:2px;text-transform:uppercase;color:#8AA09A;font-weight:600;margin-bottom:9px;}
.bpx-wc h3{font-size:18px;font-weight:700;color:var(--dark);margin-bottom:9px;letter-spacing:-0.3px;line-height:1.25;}
.bpx-wc p{font-size:13.5px;line-height:1.65;color:var(--ink);}

/* ================= STORY (split card) ================= */
.bpx-story{padding-bottom:clamp(70px,9vw,120px);}
.bpx-story-card{
  display:grid;grid-template-columns:1.05fr .95fr;border-radius:22px;overflow:hidden;
  box-shadow:0 24px 60px rgba(5,41,35,.10);
}
.bpx-story-l{background:#fff;padding:clamp(32px,4.5vw,56px);}
.bpx-qm{font-size:64px;font-weight:800;color:var(--lime);line-height:.6;display:block;margin-bottom:26px;}
.bpx-story-l blockquote{
  font-size:clamp(17px,2.1vw,21px);line-height:1.6;color:var(--ink);font-weight:500;
  border:none;margin-bottom:30px;
}
.bpx-attr{display:flex;align-items:center;gap:13px;padding-top:24px;border-top:1px solid #EDF1EE;}
.bpx-attr .av{
  width:42px;height:42px;border-radius:50%;background:var(--dark);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.bpx-attr .av span{width:16px;height:16px;background:var(--lime);border-radius:3px;display:block;transform:skewX(-8deg);}
.bpx-attr .nm{font-size:14px;font-weight:600;color:var(--dark);}
.bpx-attr .rl{font-size:12px;color:#8AA09A;margin-top:1px;}
.bpx-story-r{background:var(--deep);padding:clamp(32px,4.5vw,56px);}
.bpx-story-r .bpx-eb{margin-bottom:26px;}
.bpx-story-r h3{font-size:clamp(19px,2.2vw,24px);font-weight:700;color:#fff;line-height:1.3;margin-bottom:26px;letter-spacing:-0.3px;}
.bpx-sr{display:flex;gap:16px;align-items:baseline;padding:16px 0;border-top:1px solid rgba(182,200,197,.16);}
.bpx-sr .n{font-size:clamp(22px,2.4vw,28px);font-weight:700;color:var(--lime);flex:0 0 92px;line-height:1.1;}
.bpx-sr .t{font-size:13.5px;color:#fff;font-weight:600;line-height:1.4;}
.bpx-sr .t small{display:block;font-weight:400;color:var(--slate);font-size:12.5px;margin-top:3px;}

/* ================= CTA ================= */
.bpx-cta{background:var(--deep);padding:clamp(76px,10vw,130px) 0;}
.bpx-cta-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(40px,6vw,90px);align-items:center;}
.bpx-cta h2{font-size:clamp(32px,4.2vw,52px);font-weight:700;line-height:1.1;letter-spacing:-0.8px;color:#fff;margin-bottom:22px;}
.bpx-cta-sub{font-size:15.5px;line-height:1.75;color:var(--slate);max-width:480px;margin-bottom:32px;}
.bpx-cta-btns{display:flex;gap:14px;flex-wrap:wrap;}
.bpx-cta-note{font-size:13px;color:#5f7a74;margin-top:22px;}
.bpx-cta-side{border-left:1px solid rgba(182,200,197,.16);padding-left:clamp(28px,3.5vw,50px);}
.bpx-cta-side .row{padding:18px 0;border-bottom:1px solid rgba(182,200,197,.14);}
.bpx-cta-side .row:last-child{border-bottom:none;}
.bpx-cta-side .h{font-size:14.5px;font-weight:600;color:#fff;margin-bottom:4px;}
.bpx-cta-side .p{font-size:13px;color:var(--slate);line-height:1.6;}

/* ================= Reveal engine ================= */
.bpx .rv{
  opacity:0;transform:translateY(34px) scale(.99);filter:blur(4px);
  transition:opacity .8s cubic-bezier(.22,1,.36,1), transform .8s cubic-bezier(.22,1,.36,1), filter .7s ease;
}
.bpx .rv.go{opacity:1;transform:none;filter:blur(0);}
.bpx .rv.d1{transition-delay:.1s;}
.bpx .rv.d2{transition-delay:.2s;}

@media (prefers-reduced-motion:reduce){
  .bpx .rv{opacity:1 !important;transform:none !important;filter:none !important;transition:none !important;}
  .bpx-hero h1.split .w{opacity:1;transform:none;transition:none;}
  .bpx-hero h1.split .bpx-hl{clip-path:none;transition:none;}
  .bpx-hero-checks svg polyline{stroke-dashoffset:0;transition:none;}
  .bpx-why-head .bpx-h2 .lm{background-size:100% 100%;transition:none;}
  .bpx-eb::before{width:26px;transition:none;}
  .bpx-btn,.bpx-fcard,.bpx-wc{transition:none;}
  .bpx-btn::after{display:none;}
  .bpx-float.f1,.bpx-float.f2{animation:none;}
  .bpx-hero::before{animation:none;}
}

/* ================= Mobile ================= */
@media (max-width:920px){
  .bpx-hero-grid,.bpx-cta-grid{grid-template-columns:1fr;}
  .bpx-story-card{grid-template-columns:1fr;}
  .bpx-band-in{grid-template-columns:1fr 1fr;transform:none;}
  .bpx-band{margin-top:clamp(40px,10vw,60px);margin-bottom:-64px;}
  .bpx-band-cell:nth-child(3){border-left:none;}
  .bpx-band-cell:nth-child(n+3){border-top:1px solid rgba(5,41,35,.14);}
  .bpx-does-grid{grid-template-columns:repeat(2,1fr);}
  .bpx-why-grid{grid-template-columns:repeat(2,1fr);}
  .bpx-intro{padding-top:calc(clamp(40px,10vw,60px) + 64px);}
  .bpx-float.f1{top:-16px;right:0;}
  .bpx-float.f2{bottom:-16px;left:0;}
  .bpx-cta-side{border-left:none;padding-left:0;border-top:1px solid rgba(182,200,197,.16);padding-top:24px;}
  .bpx-mock-wrap{margin-top:16px;}
  .bpx-works img{height:52px;}
}
@media (max-width:560px){
  .bpx-does-grid,.bpx-why-grid{grid-template-columns:1fr;}
}
</style>

<article class="bpx">

  <!-- ============ HERO ============ -->
  <section class="bpx-hero">
    <div class="bpx-in bpx-hero-grid">
      <div>
        <div class="bpx-eb rv">Bigplus × Xero · Now live</div>
        <h1>Your books, on <span class="bpx-hl">autopilot.</span></h1>
        <p class="bpx-hero-sub rv d1">Bigplus now syncs your sales, payments and inventory straight into Xero. Every sale you ring up, at the till or online, lands in your accounts automatically.</p>
        <div class="bpx-hero-btns rv d1">
          <a class="bpx-btn" href="https://bigplushq.com"><span>Book a demo</span> <svg viewBox="0 0 24 24"><line x1="4" y1="12" x2="20" y2="12"/><polyline points="13 5 20 12 13 19"/></svg></a>
          <a class="bpx-btn-o" href="https://bigplushq.com/pricing/">See pricing</a>
        </div>
        <div class="bpx-hero-checks rv d2">
          <span><svg viewBox="0 0 24 24"><polyline points="4 12.5 9.5 18 20 6.5"/></svg>Syncs every 5 minutes</span>
          <span><svg viewBox="0 0 24 24"><polyline points="4 12.5 9.5 18 20 6.5"/></svg>VAT mapped to Xero rates</span>
          <span><svg viewBox="0 0 24 24"><polyline points="4 12.5 9.5 18 20 6.5"/></svg>Setup handled for you</span>
        </div>
      </div>

      <div class="bpx-mock-wrap rv d2">
        <div class="bpx-hero-img">
          <img decoding="async" src="https://bigplushq.com/wp-content/uploads/2025/12/Xero-2.png" alt="Bigplus syncing sales into Xero">
        </div>
        <div class="bpx-float f1">
          <div class="ic"><svg viewBox="0 0 24 24"><polyline points="3 17 9 11 13 15 21 7"/><polyline points="15 7 21 7 21 13"/></svg></div>
          <div><div class="t1">Synced today</div><div class="t2">R248k</div></div>
        </div>
        <div class="bpx-float f2">
          <div class="ic"><svg viewBox="0 0 24 24"><polyline points="4 12.5 9.5 18 20 6.5"/></svg></div>
          <div><div class="t1">Manual capturing</div><div class="t2">R0.00</div></div>
        </div>
      </div>
    </div>

    <!-- Lime stat band, straddling the hero bottom edge -->
    <div class="bpx-in bpx-band">
      <div class="bpx-band-in" data-seq>
        <div class="bpx-band-cell rv"><div class="n" data-count="5" data-count-suffix=" min">5 min</div><div class="l">Sync interval, all day, every day</div></div>
        <div class="bpx-band-cell rv"><div class="n" data-count="1">1</div><div class="l">Deposit to reconcile per tender type</div></div>
        <div class="bpx-band-cell rv"><div class="n">Daily</div><div class="l">Accurate gross profit in Xero</div></div>
        <div class="bpx-band-cell rv"><div class="n">0</div><div class="l">Manual capturing, from day one</div></div>
      </div>
    </div>
  </section>

  <!-- ============ INTRO ============ -->
  <section class="bpx-intro">
    <div class="bpx-narrow rv">
      <p>If you run a retail business, you know the Sunday-night ritual. Exporting sales reports, capturing invoices into your accounting system, and hoping the numbers still match by month-end.</p>
      <p>That ritual just ended. The <b>Bigplus × Xero integration is now live.</b> No exports, no manual capturing, no "we'll fix it at year-end."</p>
      <div class="bpx-works">
        <span class="lbl">In partnership with</span>
        <!-- Xero logo (hotlinked for now). Before publish: download the official logo from xero.com/us/media/downloads/ and self-host it in the media library, then swap this src. -->
        <img decoding="async" src="https://www.logo.wine/a/logo/Xero_(software)/Xero_(software)-Logo.wine.svg" alt="Xero">
      </div>
    </div>
  </section>

  <!-- ============ WHAT IT DOES ============ -->
  <section class="bpx-does">
    <div class="bpx-in">
      <div class="bpx-does-head" data-seq>
        <div class="bpx-eb rv">How the sync works</div>
        <h2 class="bpx-h2 rv">Everything posts <span class="lm">itself.</span></h2>
        <p class="bpx-does-sub rv">Once connected, Bigplus creates a clean set of accounts in Xero, all prefixed <b>"Big Plus"</b>, so everything from go-live sits neatly apart from your legacy numbers. A clean cut-over, not a tangled migration. Then the sync takes over.</p>
      </div>

      <div class="bpx-does-grid" data-seq>
        <div class="bpx-fcard rv">
          <div class="ic"><svg viewBox="0 0 24 24"><circle cx="12" cy="12" r="9"/><polyline points="12 7 12 12 16 14"/></svg></div>
          <h4>Sales sync every 5 minutes</h4>
          <p>Every POS and account sale posts to your Big Plus sales account, with VAT mapped to the correct Xero tax rates.</p>
        </div>
        <div class="bpx-fcard rv">
          <div class="ic"><svg viewBox="0 0 24 24"><polyline points="3 17 9 11 13 15 21 7"/><polyline points="15 7 21 7 21 13"/></svg></div>
          <h4>Cost of sales, in real time</h4>
          <p>Each sale writes a cost-of-goods journal, so your gross profit in Xero is right every day, not just after a stocktake.</p>
        </div>
        <div class="bpx-fcard rv">
          <div class="ic"><svg viewBox="0 0 24 24"><polyline points="7 4 3 8 7 12"/><line x1="3" y1="8" x2="17" y2="8"/><polyline points="17 20 21 16 17 12"/><line x1="21" y1="16" x2="7" y2="16"/></svg></div>
          <h4>Payments close the loop</h4>
          <p>Card and cash payments mark invoices as paid via per-tender control accounts, and payments flow both ways.</p>
        </div>
        <div class="bpx-fcard rv">
          <div class="ic"><svg viewBox="0 0 24 24"><rect x="5" y="4" width="14" height="16" rx="2"/><line x1="8" y1="9" x2="16" y2="9"/><line x1="8" y1="13" x2="16" y2="13"/><line x1="8" y1="17" x2="13" y2="17"/></svg></div>
          <h4>Walk-in sales stay tidy</h4>
          <p>Cash sales roll up into one daily summary invoice, so your Xero contacts aren't flooded with one-time buyers.</p>
        </div>
        <div class="bpx-fcard rv">
          <div class="ic"><svg viewBox="0 0 24 24"><path d="M21 8l-9-5-9 5 9 5 9-5z"/><path d="M3 8v8l9 5 9-5V8"/><line x1="12" y1="13" x2="12" y2="21"/></svg></div>
          <h4>Stock posts automatically</h4>
          <p>Registrations and write-offs flow to a dedicated inventory control account, keeping your stock value honest.</p>
        </div>

        <!-- Live example tile -->
        <div class="bpx-xero-card rv">
          <div class="bpx-xero-head">
            <span class="t">Xero · Big Plus control accounts</span>
            <span class="d">Tuesday's trade</span>
          </div>
          <div class="bpx-xero-body">
            <div class="bpx-xr"><span class="n">Big Plus Card Tender Control<small>187 sales, rolled up</small></span><span class="v">R84 120.00</span></div>
            <div class="bpx-xr"><span class="n">Big Plus Cash Tender Control<small>Daily summary invoice</small></span><span class="v">R12 940.00</span></div>
            <div class="bpx-xr tot"><span class="n">Bank deposit</span><span class="v">R97 060.00</span></div>
          </div>
          <div class="bpx-xero-rec">
            <span class="l"><svg viewBox="0 0 24 24"><polyline points="4 12.5 9.5 18 20 6.5"/></svg>Reconciled</span>
            <span class="v">R97 060.00</span>
          </div>
        </div>
      </div>
    </div>
  </section>

  <!-- ============ WHY ============ -->
  <section class="bpx-why">
    <div class="bpx-in">
      <div class="bpx-why-head" data-seq>
        <div class="bpx-eb dk rv">Why it matters</div>
        <h2 class="bpx-h2 rv">Each system does what it's <span class="lm">best at.</span></h2>
        <p class="bpx-why-sub rv">Bigplus is your source of truth for retail — products, inventory, purchases, customers and sales. Xero stays the source of truth for the rest of the business — rent, phone bills, supplier statements and bank reconciliation. No double capturing, and no arguing about which number is right.</p>
      </div>

      <div class="bpx-why-grid" data-seq>
        <div class="bpx-wc rv">
          <div class="badge">01</div>
          <span class="tag">Time</span>
          <h3>Hours back, every week</h3>
          <p>Manual sales capturing disappears. Your bookkeeper reconciles one daily deposit per tender type instead of re-typing every transaction.</p>
        </div>
        <div class="bpx-wc rv">
          <div class="badge">02</div>
          <span class="tag">Accuracy</span>
          <h3>Profit you can trust daily</h3>
          <p>Because cost of sales posts with every sale, your income statement is decision-ready every morning, not six weeks after month-end.</p>
        </div>
        <div class="bpx-wc rv">
          <div class="badge">03</div>
          <span class="tag">Errors</span>
          <h3>The till is the ledger</h3>
          <p>Every manual capture is a chance for a typo. Automated posting means the number in Xero is the number from the till.</p>
        </div>
        <div class="bpx-wc rv">
          <div class="badge">04</div>
          <span class="tag">Audit</span>
          <h3>A cleaner audit trail</h3>
          <p>Control accounts, daily summaries and clearly prefixed accounts make life easier for your accountant, and cheaper for you.</p>
        </div>
      </div>
    </div>
  </section>

  <!-- ============ STORY ============ -->
  <section class="bpx-story">
    <div class="bpx-in">
      <div class="bpx-story-card rv">
        <div class="bpx-story-l">
          <span class="bpx-qm">"</span>
          <blockquote>One of our retailers went live on the integration this month, trading through POS from day one. By the next morning, their finance team was reconciling bank deposits against the control accounts. No capturing, no catch-up, no drama.</blockquote>
          <div class="bpx-attr">
            <div class="av"><span></span></div>
            <div>
              <div class="nm">The Bigplus team</div>
              <div class="rl">From a go-live earlier this month</div>
            </div>
          </div>
        </div>
        <div class="bpx-story-r">
          <div class="bpx-eb">First week live</div>
          <h3>What their finance team saw when they switched.</h3>
          <div class="bpx-sr"><span class="n">Day 1</span><span class="t">Trading through POS<small>Every sale posting to Xero from the first transaction</small></span></div>
          <div class="bpx-sr"><span class="n">Day 2</span><span class="t">Reconciling deposits<small>Bank recs against control accounts, next morning</small></span></div>
          <div class="bpx-sr"><span class="n">0</span><span class="t">Catch-up capturing<small>Nothing to re-type, nothing to fix at month-end</small></span></div>
        </div>
      </div>
    </div>
  </section>

  <!-- ============ CTA ============ -->
  <section class="bpx-cta">
    <div class="bpx-in bpx-cta-grid">
      <div>
        <div class="bpx-eb rv">Getting started</div>
        <h2 class="rv">Stop capturing. <span class="bpx-hl">Start reconciling.</span></h2>
        <p class="bpx-cta-sub rv d1">Book a demo and watch your sales land in Xero live. Our team handles the setup with you. That's the Bigplus way: hands-on onboarding, local support, no figuring it out alone.</p>
        <div class="bpx-cta-btns rv d1">
          <a class="bpx-btn" href="https://bigplushq.com"><span>Book a demo</span> <svg viewBox="0 0 24 24"><line x1="4" y1="12" x2="20" y2="12"/><polyline points="13 5 20 12 13 19"/></svg></a>
          <a class="bpx-btn-o" href="https://bigplushq.com/contact/">Talk to us</a>
        </div>
        <p class="bpx-cta-note rv d2">Available on the Advanced plan</p>
      </div>
      <div class="bpx-cta-side rv d1">
        <div class="row"><div class="h">Account mapping</div><div class="p">We set up your Big Plus accounts and map them with you.</div></div>
        <div class="row"><div class="h">Tax rates</div><div class="p">VAT mapped to the correct Xero tax rates before you trade.</div></div>
        <div class="row"><div class="h">Training included</div><div class="p">Your team and your bookkeeper, walked through it properly.</div></div>
      </div>
    </div>
  </section>

</article>

<script>
(function(){
  var reduce = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;

  function countUp(el){
    if(el.dataset.counted) return; el.dataset.counted = '1';
    var target = parseFloat(el.dataset.count);
    var suffix = el.dataset.countSuffix || '';
    if(isNaN(target)) return;
    if(reduce){ el.textContent = target + suffix; return; }
    var dur = 1100, start = null;
    function step(t){
      if(start === null) start = t;
      var p = Math.min((t - start) / dur, 1);
      var e = 0.5 - Math.cos(Math.PI * p) / 2;   // easeInOutSine
      el.textContent = Math.round(target * e) + suffix;
      if(p < 1) requestAnimationFrame(step);
    }
    requestAnimationFrame(step);
  }

  document.querySelectorAll('.bpx').forEach(function(root){
    if(root.dataset.bpxInit) return;
    root.dataset.bpxInit = '1';

    /* Split the hero headline into words for a staggered rise;
       leave the .bpx-hl highlight intact so it can wipe in. */
    var h = root.querySelector('.bpx-hero h1');
    if(h && !reduce){
      var nodes = Array.prototype.slice.call(h.childNodes);
      h.innerHTML = '';
      var wi = 0;
      nodes.forEach(function(node){
        if(node.nodeType === 3){
          node.textContent.split(/(\s+)/).forEach(function(w){
            if(w === '') return;
            if(/^\s+$/.test(w)){ h.appendChild(document.createTextNode(w)); return; }
            var s = document.createElement('span');
            s.className = 'w'; s.textContent = w;
            s.style.transitionDelay = (wi * 0.06) + 's'; wi++;
            h.appendChild(s);
          });
        } else {
          if(node.classList && node.classList.contains('bpx-hl')){
            node.style.transitionDelay = (wi * 0.06 + 0.14) + 's'; wi++;
          }
          h.appendChild(node);
        }
      });
      h.classList.add('split');
    }

    function reveal(el){ el.classList.add('go'); }

    if(reduce || !('IntersectionObserver' in window)){
      if(h) h.classList.add('go');
      root.querySelectorAll('.rv').forEach(reveal);
      root.querySelectorAll('[data-count]').forEach(countUp);
      return;
    }

    /* Cursor-follow spotlight on the cards */
    root.querySelectorAll('.bpx-fcard, .bpx-wc').forEach(function(card){
      card.addEventListener('mousemove', function(e){
        var r = card.getBoundingClientRect();
        card.style.setProperty('--mx', (((e.clientX - r.left) / r.width) * 100).toFixed(1) + '%');
        card.style.setProperty('--my', (((e.clientY - r.top) / r.height) * 100).toFixed(1) + '%');
      });
    });

    var io = new IntersectionObserver(function(entries){
      entries.forEach(function(en){
        if(!en.isIntersecting) return;
        var t = en.target;
        io.unobserve(t);

        if(t === h){ h.classList.add('go'); return; }

        if(t.hasAttribute('data-seq')){
          var kids = Array.prototype.filter.call(t.querySelectorAll('.rv'), function(k){
            return k.closest('[data-seq]') === t;
          });
          kids.forEach(function(k, i){
            k.style.transitionDelay = (i * 0.09) + 's';
            reveal(k);
          });
          t.querySelectorAll('[data-count]').forEach(countUp);
        } else {
          reveal(t);
          t.querySelectorAll('[data-count]').forEach(countUp);
        }
      });
    }, { threshold: 0.14, rootMargin: '0px 0px -6% 0px' });

    if(h) io.observe(h);
    root.querySelectorAll('[data-seq]').forEach(function(c){ io.observe(c); });
    root.querySelectorAll('.rv').forEach(function(el){
      if(el.closest('[data-seq]')) return;   // handled by its container
      io.observe(el);
    });
  });
})();
</script>				</div>
				</div>
					</div>
				</div>
				</div>
		<p>The post <a href="https://bigplushq.com/blog/xero/">Xero</a> appeared first on <a href="https://bigplushq.com">Bigplus Point of Sale</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
