Quick answer

To sell online and in-store simultaneously in Kenya: set up an online store on Shopify or WooCommerce, connect WebpinnPOS as your in-store system, and let the integration keep inventory in sync across both channels. Set up M-Pesa separately for each channel: an online gateway (Pesapal or IntaSend) for your website, and WebpinnPOS STK Push for your counter.

The main challenge: shared inventory

The most common problem merchants run into when selling across online and physical channels is inventory. When stock is tracked separately in two systems, discrepancies build quickly. A product sells online while three units sit unsold in the shop. Or a popular item sells out at the counter while the website still shows it as available, leading to a frustrated customer and a cancelled order.

The solution is a shared inventory pool. One master stock count that both channels draw from. Every sale on either channel deducts from the same number. Every return on either channel adds back to it. This is not a new concept, but implementing it practically requires the right systems talking to each other.

In the Kenyan market, the most practical setup is: an online store on Shopify or WooCommerce for your web presence, and WebpinnPOS at your physical counter, with a two-way real-time inventory sync connecting them.

Choosing your online platform

Before connecting anything, you need an online store. The two main choices for Kenyan merchants are Shopify and WooCommerce. Both integrate with WebpinnPOS for inventory sync.

Shopify is simpler to set up and requires no hosting management. You pay a fixed monthly fee (starting at USD 29/month) and get a hosted store with built-in SSL, checkout, and theme editor. The trade-off is higher ongoing cost and less flexibility than a self-hosted solution.

WooCommerce is a free WordPress plugin. You own your hosting, your data, and have full control over your store's code. The trade-off is more technical setup and ongoing maintenance responsibility. WooCommerce is typically cheaper to operate once you are past the initial setup.

For a merchant who wants to get online fast and not manage servers, Shopify is the easier path. For a merchant with a developer on hand or existing WordPress infrastructure, WooCommerce offers more control at lower platform cost.

Connecting your POS for real-time stock sync

Once your online store is live, connect WebpinnPOS to it. The setup process differs slightly between Shopify and WooCommerce but the outcome is the same: a two-way real-time inventory sync.

For Shopify: install the WebpinnPOS app from the Shopify App Store, select your location, and run the initial product import. From that point, every in-store sale through WebpinnPOS reduces Shopify stock, and every Shopify online order reduces WebpinnPOS stock.

For WooCommerce: generate REST API credentials in your WordPress admin and enter them in the WebpinnPOS integrations settings. Run the initial product import. The sync then works the same way as with Shopify.

Run a stock count before enabling sync. The initial import uses your current stock quantities as the baseline. If your WooCommerce or Shopify inventory is out of date, those inaccuracies will carry into WebpinnPOS. Do a physical count first, update your online store quantities, then enable the sync.

Setting up M-Pesa for both channels

M-Pesa is the dominant payment method in Kenya, and you need it working on both your online and in-store channels. These are two separate technical implementations.

Online M-Pesa

Install a WooCommerce or Shopify-compatible payment gateway that supports M-Pesa. Pesapal and IntaSend both have plugins for both platforms. Once configured, your online checkout will offer M-Pesa as a payment option. When a customer selects it, they receive an STK Push on their phone and confirm with their PIN.

In-store M-Pesa

In your physical shop, WebpinnPOS handles M-Pesa STK Push natively. The cashier initiates payment from the POS screen, the customer's phone receives the STK Push, and WebpinnPOS confirms receipt automatically from Safaricom's callback. No separate confirmation step is required from the cashier.

The key point: your online M-Pesa gateway and your in-store WebpinnPOS M-Pesa are separate systems serving the same purpose on different channels. Your Daraja (Safaricom API) credentials may be shared if your gateway allows it, or you may have separate shortcodes for online and in-store. Confirm this with your gateway and WebpinnPOS during setup.

Managing orders from two channels

In-store sales are recorded and reported in WebpinnPOS. Online orders are recorded and managed in your Shopify or WooCommerce admin. This means your daily end-of-day view is split across two dashboards unless you take steps to consolidate.

Practically, most merchants develop a simple routine: check WebpinnPOS for in-store sales, cash reconciliation, and stock levels; check Shopify or WooCommerce for online orders, fulfillment status, and customer communications. The inventory count is shared and stays accurate, but the order workflows are separate.

For online orders that require physical fulfillment (packaging and courier delivery), designate one staff member responsible for checking the online dashboard each morning and preparing shipments. Use a courier partner like Sendy or Fargo that integrates with your WooCommerce or Shopify for tracking numbers.

Practical tips for a smooth dual-channel operation

  • Set a stock buffer for fast-moving products. If a product moves quickly in-store, set the online store to stop selling when stock reaches 1 or 2 units rather than 0. This prevents the race condition where both a walk-in customer and an online customer buy the last unit simultaneously.
  • Use consistent SKUs. Your product identifiers must match across WebpinnPOS, Shopify or WooCommerce, and your physical shelves. Inconsistent SKUs break the sync. Standardize before you go live.
  • Reconcile daily. Even with automated sync, review your stock counts at the end of each day for the first few weeks to catch any sync issues early.
  • Communicate online stock status clearly. If a product is low on stock online, show the quantity on the product page so customers know it is limited. This reduces customer service queries and cancellations.
  • Define your returns policy before you launch. Decide upfront whether online purchases can be returned in-store, and whether in-store purchases can be returned online. Make this policy visible on your website. Your staff need to understand how to process each scenario in WebpinnPOS.

Frequently asked questions

Connect your shop floor with your online store

WebpinnPOS syncs inventory with Shopify and WooCommerce in real time. M-Pesa STK Push at your counter. One system for both channels.

Start Free Trial
14 days free. No credit card required.