Integrations
Integrations is BazaarPOS's central connection hub — one screen with eleven categories covering payments, e-commerce, social & search shopping, marketplaces, accounting, logistics, CRM, communication, reviews, restaurant delivery apps, procurement and hardware/compliance, where you plug in every outside service your shop uses.
Overview
The page is organised as a left-hand list of eleven categories (Payment Integrations, E-commerce Platforms, Social & Search Shopping, Marketplace Integrations, Accounting Integrations, Logistics & Shipping, CRM & Loyalty, Communication, Reviews & Reputation, Restaurant Integrations, Inventory & Procurement, Hardware & Compliance) with a card grid of individual services on the right; a search box replaces the category list and searches every service by name/description at once.
Every service card shows a status badge — Not Connected, Connected, Disabled (a payment gateway that has saved credentials but is currently switched off from the billing screen), or Coming Soon for services BazaarPOS has not built yet — plus a live green pulsing dot on any card that is connected.
Clicking Connect (or Configure once already connected) opens a modal with that service's exact fields — Merchant ID, API Key, Secret, etc. — pulled from BazaarPOS's built-in catalogue for that specific provider, along with a help note and a link to that provider's own dashboard/docs page.
Six of the payment gateways — PhonePe, Razorpay, Paytm, Cashfree, Stripe and Square — are tagged 🧾 POS Billing: connecting one of these immediately makes it available as a payment method on the Sales/billing screen, and each has its own Enable/Disable toggle on the card so you can temporarily hide it from billing without deleting the saved credentials.
Marketplace integrations that support it (Flipkart, Amazon, Meesho, Myntra, ONDC) offer a Test Mode switch inside the connect modal — turning it on skips credential validation entirely and lets you try the whole Online Orders workflow with 10 fake Indian orders before you have real seller credentials.
Before You Start
- Your plan must be on the Advanced tier or above — the entire Online Channels menu, including this page, is hidden below that tier.
- For real (non-test-mode) connections you need an active account with the outside provider (Razorpay dashboard, Flipkart Seller Hub, Shiprocket account, etc.) and its API credentials in hand before you open the Connect form.
- Any staff member who can see the Online Channels menu can open Connect and enter/replace credentials for every category — there is no separate Admin-only lock on this specific page, so decide who gets sidebar access to Online Channels carefully if credentials are sensitive.
Step-by-Step Guide
1 Find and connect a service
- Click a category in the left list (or type into the search box at the top, which searches every category's services by name and description at once and hides the category list while you search).
- Click Connect on the service's card to open its form.
- Fill in the required fields (marked with a red *) — click the eye icon next to any password-style field to reveal what you typed before saving.
- Read the blue help box for provider-specific instructions and click Docs to jump to that provider's own credential page in a new tab.
- Click Connect in the modal footer. A success toast confirms the connection and the card's badge switches to Connected with a pulsing green dot.
2 Connect a payment gateway for POS billing
PhonePe, Razorpay, Paytm, Cashfree, Stripe and Square are the six providers wired straight into the billing screen.
- Open the Payment Integrations category and click Connect on the gateway you use.
- A green banner in the modal confirms this specific service will appear as a payment option on the POS billing screen once connected.
- Enter the gateway's credentials (e.g. Razorpay Key ID + Key Secret + your store's UPI/Merchant VPA for QR fallback) and save.
- Back on the card, use the small pill toggle next to Configure to Enable or Disable the gateway for billing at any time without losing the saved credentials — Disabled shows an amber badge instead of green.
- Click the red ✕ button on a connected card to fully disconnect and remove the saved credentials.
3 Try a marketplace in Test Mode before going live
- Open Marketplace Integrations and click Connect on Flipkart, Amazon, Meesho, Myntra or ONDC.
- Toggle on Test Mode at the top of the form — the credential fields become optional and a violet notice explains that Sync Now will pull 10 fake Indian orders.
- Click Connect — the card shows a violet 🧪 Test tag alongside Connected.
- Go to the Online Orders page to see the fake orders flow through the same Sync/Pack/Dispatch/Convert workflow as a real connection, then come back here and turn Test Mode off and enter real seller credentials once you are ready to go live.
4 Sync Google reviews into BazaarPOS
- Open Reviews & Reputation and click Connect on Google Business.
- Find your Google Place ID (Google Maps → your business → Share → the
place_id=value in the link) and generate a Places API key in Google Cloud Console, then paste both into the form. - Save — the card gains a 🔄 sync button.
- Click the sync button any time to pull newly posted Google reviews; a toast reports how many new reviews were found, or confirms everything is already up to date.
5 Set up the restaurant delivery webhook
This panel only appears when the Restaurant Integrations category is selected.
- Open the Restaurant Integrations category — a Generic Delivery Webhook panel appears below the Swiggy/Zomato/ONDC/Dunzo cards.
- Copy the webhook URL shown (it embeds a per-store secret token) and register it with Swiggy, Zomato or any delivery platform's webhook settings.
- Incoming orders posted to that URL (with platform, customerName, customerPhone, deliveryAddress, items[] and total) appear automatically in your delivery queue.
- If the URL leaks or you switch delivery partners, click Regenerate — this immediately invalidates the old URL, so update it with every platform you had registered it on.
Every Field & Button, Explained
| Field / Button | What it does |
|---|---|
Category list (left rail) | Eleven groups — Payment, E-commerce, Social & Search Shopping, Marketplace, Accounting, Logistics & Shipping, CRM & Loyalty, Communication, Reviews & Reputation, Restaurant, Inventory & Procurement, Hardware & Compliance — each showing a connected-count badge. |
Search box | Searches every service across all categories by name or description; replaces the category list with a flat result grid while text is typed. |
X Connected badge | Header counter of how many services are currently connected across all categories. |
Connect / Configure button | Opens the credential form for a service — labelled Connect the first time, Configure once a connection already exists. |
Status badge | Not Connected, Connected (green, pulsing dot), Disabled (amber — gateway has credentials but is switched off from billing), or Coming Soon (service not yet built). |
Enable / Disable pill toggle | Appears only on connected payment-gateway cards (PhonePe, Razorpay, Paytm, Cashfree, Stripe, Square); flips whether that gateway shows as a payment option on the billing screen without deleting its credentials. |
🧾 POS Billing tag | Marks the six gateway integrations that plug directly into the Sales/billing payment method list once connected. |
🔄 Sync button | Shown only on Google Business (reviews); pulls newly posted reviews into your review dashboard on demand. |
Disconnect (✕) button | Removes a saved connection/credentials entirely; for gateways this also removes it from the billing payment method list. |
Connect modal — Test Mode toggle | Available on marketplaces that support it (Flipkart, Amazon, Meesho, Myntra, ONDC); skips credential validation and connects with mock data for a 10-order test sync. |
Connect modal — field eye icon | Toggles a secret field (API key, password, token) between hidden dots and plain text so you can proofread what you pasted. |
Connect modal — Docs link | Opens that provider's own credential/API documentation page in a new tab. |
Generic Delivery Webhook URL box | Only shown under Restaurant Integrations; a copyable, per-store secret URL to register with Swiggy/Zomato/any delivery platform so their orders land in your delivery queue automatically. |
Regenerate (webhook) | Issues a brand-new webhook token/URL and immediately invalidates the previous one — update every delivery platform you had registered with the old URL. |
Tips & Best Practices
- Connect payment gateways in Test/Sandbox mode first where the provider supports it (Environment: sandbox on PhonePe/Cashfree) before switching to production keys.
- Use a marketplace's Test Mode toggle to walk through the full Online Orders workflow — sync, pack, dispatch, invoice — before you have real seller credentials in hand.
- Disable a payment gateway with the pill toggle instead of disconnecting it if you just want to temporarily stop offering it at billing — you keep the saved credentials for next time.
- Restrict who has Online Channels sidebar access if your team should not be able to view or replace API keys/secrets, since this page has no extra per-action permission of its own.
Troubleshooting & FAQ
I clicked Connect but got "Fill in: …" and nothing saved.
A service shows "Coming Soon" and Connect does nothing useful.
My gateway shows "Disabled" instead of "Connected" or "Not Connected".
Where do I get real credentials for a specific provider?
I regenerated my restaurant webhook token and orders stopped arriving.
🧑💻 Developer Notes
Source component(s):
frontend-app/packages/pos-react-lib/src/pages/IntegrationPage.jsx
Backend endpoints used:
GET /integrationsPUT /integrations/:idDELETE /integrations/:idPOST /integrations/:id/syncGET /integrations/webhook-tokenPOST /integrations/webhook-token/regenerateGET /payment-gatewaysPOST /payment-gateways/:provider/connectPATCH /payment-gateways/:provider/toggleDELETE /payment-gateways/:provider
Related tables (db-core repositories):
IntegrationPaymentGateway
Redux slices:
scope (selectCurrentScope / getScopeQueryParams)
Feature flag key: integrations (requires advanced plan tier or above)
The eleven-category catalogue (CATEGORIES) is a static, hardcoded manifest in the component describing every provider's exact form fields, help URL and whether it supports test mode — it is not fetched from the backend. Gateway-specific integrations route through GATEWAY_FIELD_MAP/GATEWAY_PREFILL to translate the generic form values into the /payment-gateways/:provider/connect request body, while every other category goes through the generic /integrations/:id enable+config endpoints. Connected state for gateways is derived by checking hasCredentials on the /payment-gateways response rather than a separate flag.