Product

Slashing SME Onboarding from 14 Weeks to 6 Days: Rebuilding a B2B Distribution Platform's ERP Integration and Pricing Tiers

C
Chidi OkekeVP of Frontend Engineering
September 23, 202614 min read
Slashing SME Onboarding from 14 Weeks to 6 Days: Rebuilding a B2B Distribution Platform's ERP Integration and Pricing Tiers

A deep dive into how replacing off-the-shelf enterprise integrations with a lightweight local agent and redesigning flat Naira pricing transformed a West African FMCG distribution SaaS into a high-margin, scalable platform.

When software companies expand across West Africa, they usually bring along Silicon Valley playbooks: sell a seat-based or tier-based monthly SaaS plan, connect to the customer's cloud ERP using Zapier or enterprise iPaaS connectors, and bill in flat local currency. On paper, this strategy seems sound. In reality, it breaks down quickly when faced with low-margin distributor networks, legacy desktop accounting software, and rapid currency devaluation.

At Neobot Tech, we recently partnered with a B2B distribution startup (we will call them DistroGrid) serving mid-market FMCG fast-moving consumer goods wholesalers across Lagos, Onitsha, and Kano. DistroGrid's software aggregates inventory from multi-brand FMCG manufacturers and distributes order requests directly to regional tier-2 wholesalers.

When DistroGrid approached us, they were trapped in a classic software growth squeeze. Demand for their platform was high, but their gross margins had collapsed from 61% down to 22% over eight months. Meanwhile, their customer onboarding pipeline had slowed to a crawl: it took an average of 14 weeks to onboard a single distributor onto the platform.

Here is how we audited their architecture and product strategy, replaced off-the-shelf software with a custom sync agent, restructured their Naira pricing strategy, and brought onboarding time down to six days while restoring gross margins to 74%.

The Situation: Enterprise Complexity Meets West African SME Realities

DistroGrid originally built their platform assuming that regional distributors operated like modern tech-enabled logistics hubs. Their product architecture required real-time two-way synchronization with each distributor's accounting system so that product prices, quantities, and order receipts stayed current across all warehouses.

To power this sync, DistroGrid relied on an enterprise iPaaS (Integration Platform as a Service) middleware vendor. The middleware sat between DistroGrid's cloud backend and the customer's software. Whenever an order was placed on DistroGrid, the platform made an API call to the iPaaS, which parsed the payload and synced it with the distributor's inventory system.

DistroGrid charged distributors a flat fee of ₦450,000 per month. The target market was mid-sized businesses handling ₦50M to ₦300M in monthly trading volume. On paper, ₦450,000 felt predictable and accessible.

Three major bottlenecks destroyed this operational setup:

  1. The Desktop ERP Reality: Over 80% of DistroGrid's target distributors did not use cloud-hosted software like SAP S/4HANA or Dynamics 365. Instead, they ran legacy, on-premise accounting tools like Sage 50 Desktop, Tally Prime, or custom MS Access databases hosted on local desktop PCs sitting in warehouse offices. These machines experienced frequent power outages and intermittent local network connectivity.
  2. The iPaaS Cost Trap: The enterprise iPaaS vendor billed DistroGrid in US Dollars ($3,800/month base + $0.04 per synced payload record). As macro FX rates swung violently, DistroGrid's operating costs exploded while their subscription revenue remained locked in fixed Naira.
  3. Fragile Onboarding Engineering: Because off-the-shelf iPaaS tools are not designed to interface with air-gapped or intermittently connected Windows PCs over flaky networks, setting up a single distributor required custom network tunneling (ngrok/VPNs), static IP configurations, and hands-on intervention by senior engineers. Onboarding dragged out to 14 weeks per customer.

Architecture diagram showing DistroSync Go agent pulling local legacy DB records and pushing compressed batches to cloud endpoint

What Was Tried and Failed: The Enterprise Blueprint Fallacy

Before engaging our team, DistroGrid attempted two intuitive product fixes. Both failed.

Attempt 1: Forcing Distributors onto Cloud ERPs

DistroGrid offered to subsidize the transition of five large distributors in Lagos from Sage 50 Desktop to a modern cloud-native ERP. They assumed this would eliminate network sync complexity and streamline API connections.

It failed immediately. Distributors actively resisted moving away from local desktop software. Their warehouse managers were familiar with offline interfaces that functioned during power cuts and internet outages. Moreover, local accounting teams refused to store their full ledger data on external cloud platforms due to tax privacy concerns. The pilot stalled, and three distributors threatened to churn off DistroGrid entirely.

Attempt 2: Passing FX Costs directly to Customers in Naira

To combat shrinking margins, DistroGrid attempted to raise their flat subscription price from ₦450,000/month to ₦1,200,000/month to account for dollar-denominated vendor expenses.

Sales velocity dropped to zero. Distributors viewed DistroGrid as an order-processing tool, not a core revenue generator. A fixed fee of ₦1.2M represented a significant portion of a medium distributor's net operating margin, especially during low-volume months. DistroGrid's churn rate spiked to 42% in a single quarter.

The Pivot: Build-vs-Buy Decision and FX-Proof Value Pricing

We advised DistroGrid to abandon their enterprise integration tooling and rethink how they captured and delivered software value.

1. The Build-vs-Buy Decision: Dropping the iPaaS for a Lightweight Go Agent

Instead of paying third-party integration platforms thousands of dollars each month, we designed a lightweight, native sync utility called DistroSync.

Written in Go, DistroSync compiles to a single 12MB executable binary designed to run as a background Windows Service on the distributor's local office PC. It connects directly to local desktop databases (Sage, Tally, SQL Server, Access) via ODBC or native drivers, reads local table changes, compresses the payloads using zstd, and pushes updates asynchronously to DistroGrid's cloud backend.

Rather than requiring high-bandwidth live streaming, DistroSync works over unstable 3G networks using local SQLite buffer queues. When internet access drops, updates buffer locally; once connection returns, payloads sync in compressed micro-batches. If you are deploying production workloads under strict infrastructure budgets in West Africa, optimizing transport layers and self-hosting lightweight components is essential, as detailed in our guide on Coolify on Hetzner vs. Render vs. AWS ECS Fargate: Production Deployments Under West African Cloud Budget Constraints.

2. Pricing Restructure: Low Naira Base + Pegged Variable Fee

We scrapped the flat ₦450,000 monthly subscription. Flat pricing creates a fundamental mismatch: small distributors overpay and churn, while massive distributors underpay relative to the infrastructure load they generate.

We implemented a two-part pricing structure designed for local economic conditions:

  • Base Tier (₦150,000/month): Covers local setup, support, and basic platform access. This low entry price lowered barrier-to-entry friction.
  • Variable Tier (0.35% of GMV synced through platform): The variable usage fee grows directly alongside the distributor's trading volume. To safeguard against inflation and currency volatility without alienating customers with unpredictable invoices, the fee is calculated in Naira but tied to GMV volume bands that automatically adjust if currency fluctuations exceed pre-set bounds.

For a detailed walkthrough on setting up hybrid billing engines and managing dual-currency subscription mechanics locally, read our post on Dual-Currency SaaS Billing in West Africa: Implementing Real-Time FX Pegging and Metered Subscriptions with Paystack and Stripe.

Technical Implementation of the Custom Sync Agent

Below is a comparison of the technical trade-offs between the off-the-shelf enterprise iPaaS approach and the custom Go agent (DistroSync):

| Feature | Enterprise iPaaS (Old) | DistroSync Custom Agent (New) | | :--- | :--- | :--- | | Deployment Model | Cloud-to-Cloud with local tunnels | Native Windows Service running locally | | Monthly Third-Party Cost | $3,800 USD base + per-sync fees | $0 (Self-hosted on cloud server) | | Offline Resilience | Fails on internet drop; throws API errors | Buffers locally in SQLite; retries automatically | | Network Overhead | Uncompressed JSON payloads (~2.4MB/batch) | zstd compressed binary JSON (~110KB/batch) | | Average Onboarding Time | 14 Weeks (98 days) | 6 Days |

Here is a shortened example of DistroSync's local change-detection loop in Go, showing how it reads local ODBC database records and queues them safely in a local SQLite buffer during internet downtime:

package main

import (
	"database/sql"
	"log"
	"time"

	_ "github.com/mattn/go-sqlite3"
	_ "github.com/alexbrainman/odbc"
)

type LocalChange struct {
	ItemID    string
	StockQty  int
	PriceNGN  float64
	Timestamp time.Time
}

// PollLocalODBC reads changes from legacy Sage/Tally databases via local ODBC
func PollLocalODBC(legacyDB *sql.DB, bufferDB *sql.DB) error {
	query := `SELECT item_id, qty_on_hand, unit_price FROM stock_status WHERE last_modified > ?`
	lastCheck := time.Now().Add(-5 * time.Minute)

	rows, err := legacyDB.Query(query, lastCheck)
	if err != nil {
		return err
	}
	defer rows.Close()

	tx, err := bufferDB.Begin()
	if err != nil {
		return err
	}

	stmt, err := tx.Prepare(`INSERT INTO sync_queue (item_id, qty, price, status) VALUES (?, ?, ?, 'PENDING')`)
	if err != nil {
		return err
	}
	defer stmt.Close()

	for rows.Next() {
		var itemID string
		var qty int
		var price float64
		if err := rows.Scan(&itemID, &qty, &price); err == nil {
			_, _ = stmt.Exec(itemID, qty, price)
		}
	}

	log.Println("[DistroSync] Successfully buffered stock changes to local queue.")
	return tx.Commit()
}

The full implementation patterns for cross-platform compiled binaries can be reviewed in the official Go language documentation.

By keeping software execution entirely local and lightweight, distributors do not need to configure complex firewall rules, rent static IPs, or open inbound ports. The installer takes five minutes to run on any local Windows desktop PC.

Results and Concrete Metrics

Within five months of deploying DistroSync and transitioning to the new pricing model, DistroGrid's operational metrics changed drastically:

  • Onboarding Time Reduced by 93%: Customer onboarding dropped from 14 weeks (98 days) to 6 days. The six-day timeline now accounts for staff training and initial physical inventory auditing, rather than waiting on integration engineering.
  • Gross Margin Recovery: Gross margins jumped from 22% to 74%. Eliminating third-party dollar-denominated iPaaS middleware saved over $4,000 monthly in software licensing fees.
  • Increased Monthly Active Distributors: Distributor churn fell from 42% to 4.2%. Lowering the entry fee to ₦150,000 unlocked smaller regional distributors who previously found flat subscriptions unaffordable.
  • Higher Revenue Realization: Total platform revenue increased by 180% year-over-year. The 0.35% GMV usage pricing allowed DistroGrid to capture significantly higher revenue from top-tier distributors moving large volumes without squeezing emerging operators.

The West African B2B Product Playbook

If you are designing, building, or scaling software products for West African mid-market businesses, here is the playbook distilled from this transformation:

1. Build for System Constraints, Not Ideal Workflows

Do not expect mid-market businesses in emerging markets to change their operational systems to fit your software assumptions. If your customers rely on legacy desktop accounting software running on a Windows 10 office PC, design lightweight edge utilities that plug directly into that reality. Custom background agents often deliver far better unit economics and reliability than third-party enterprise integrations.

2. Match SaaS Pricing to Customer Cash Flows

Flat subscription pricing hurts both early-stage customers and your software margins during economic shifts. Value-based usage pricing—such as a manageable base fee paired with a GMV percentage band—aligns your success directly with customer trading volume. For more industry research on value-metric design, review PostHog's guide on usage-based pricing models.

3. Make Time-To-First-Sync Your Primary Metric

For B2B platforms, onboarding friction is a major growth bottleneck. Measure software success by how quickly a new customer syncs their first live transaction record. If your onboarding process requires dedicated network setup, manual API configuration, or multi-week engineering support, replace off-the-shelf connectors with native, self-configuring utilities built for unreliable networks.

Neobot Engineering Standard

Every system deployed by Neobot Tech incorporates enterprise baseline practices. We continuously audit our database topologies, REST API query paths, and frontend modular bundles to prevent latency spikes and ensure top-tier security posture.

Tags:#Product Strategy#B2B SaaS#Build vs Buy#SME Tech#Architecture

Discussion

Comments Coming Soon

We are currently migrating our discussion engine to a new real-time database schema. Check back shortly to join the conversation.