Online store on top of the Meridian and Formata CRM warehouse
The storefront shows what is actually in the selected warehouses, at prices from the CRM price list. An order immediately becomes a sale with a reservation, a payment becomes a wallet entry. No second product database and no manual stock reconciliation.
The demo store runs on top of a Formata CRM stand: 12 demo products, two warehouses, promo code DEMO10. Demo orders are not fulfilled.
What it looks like
The demo store on top of a Formata CRM stand — you can open it right now.
Why a store should live on top of the warehouse
A typical online store keeps its own product list and its own stock — and they always drift away from the books. Here the storefront owns nothing: it mirrors the CRM.
Stock does not lie
The storefront shows availability for the warehouses you enabled in the admin panel. An order takes the item off the stock through a reservation in the CRM, and other customers no longer see it.
One price
Prices come only from the selected CRM price list. If the list changed between browsing and checkout, the customer sees the difference before paying.
Accounting without double work
The sale, the payment and the write-off appear in the CRM by themselves. A manager sees the online order where the regular sales are and handles it with the usual tools.
The path of an order
Four steps — from the cart to a posted sale in the accounting system.
If the CRM is unavailable, operations are queued and resent. Retries are safe. An unpaid reservation is released automatically when it expires.
What the storefront can do
A complete store, not a “request form”: the customer walks the whole path alone.
Catalog and search
Categories, full-text search with suggestions, filters by brand, price, availability and warehouse, sorting.
Product page
Gallery, description, stock per warehouse, “similar products”.
Cart and checkout
No registration, one screen: pickup from a warehouse or courier delivery, promo codes.
Four payment methods
Crypto via NOWPayments, cash or card on delivery, bank invoice.
Order under control
Order page by a secret link, cancel and pay, lookup by number and e-mail, e-mails to the customer and the administrator.
Promo codes
Percent or fixed discount, validity period, usage limit.
Two languages and SEO
Russian and English, responsive layout, JSON-LD, OpenGraph, sitemap and robots.
Your own server
The storefront is installed on your server next to the website; nothing in the CRM is exposed — the store calls the CRM itself.
How it connects
One module, two accounting systems. The CRM database gets a shop schema — a set of views over the warehouse and a single dispatcher function; the store sees one and the same contract.
Meridian
- Database — migration 033_shop is applied by the standard database upgrade tool
- Service — CrmApi with the /api/v1/shop/* endpoints — the same service that serves mobile clients
- Store admin panel — CrmApi address, employee login and password, choice of warehouses and price list
Formata CRM
- Database — s_shop.sql is part of the standard crm-app content set
- Core — the shop_api named query through the core API — no separate service needed
- Store admin panel — core address and an API key with the query:shop_api scope, choice of warehouses and price list
Store admin panel
- CRM connection and connectivity check
- Choice of warehouses and pickup points
- Sync on schedule and on demand, with a log
- Catalog: hide, “Featured”, custom names and descriptions
- Orders: statuses, manual payment, resend to CRM, CSV export
- Promo codes, information pages, terms of sale
- Delivery, payment, currency, languages, notifications
What happens in the CRM
- Order → sale in the “reserved” state
- Payment → wallet entry and posting of the sale
- Cancellation or expired reservation → stock is returned
- Wallets per payment method and reservation period — in the shop schema settings
- Product images go to the storefront from the CRM product card
- Native warehouse tables are untouched: the shop schema is views only
Questions
Do I have to move products into the store?
No. The store syncs catalog, prices, stock and images from the CRM. In the admin panel you can only hide a product, mark it as “Featured” or give it a custom storefront name and description.
What does a customer see when an item is in several warehouses?
Stock for every enabled warehouse and the pickup address. At checkout they choose a pickup warehouse or courier delivery.
What if the CRM is down?
The storefront keeps working on its own database. Creating the sale and the payment is queued and resent when the CRM is back. Retries are safe.
Can I accept regular cards?
Today — card on delivery, bank invoice, cash and crypto via NOWPayments. Online card acquiring is connected per country and bank — write to us.
Where does the store run?
On your server, next to the website: a Python application with its own database. It only needs access to the CRM API.
How much does it cost?
The module ships for Meridian and Formata CRM; connection and implementation terms are available on request.
Take a look at the demo store
Its products, stock and prices come from a Formata CRM stand. Fill a cart, apply promo code DEMO10 and place an order: it shows up in the CRM as a sale with a reservation.


