The portal
- 24 modules: tasks, projects, CRM, telephony, files, mail, knowledge base
- Your server, your database, full source code
- No per-seat pricing
A Digital Workplace module
Not a separate platform you then have to wire into your operations — a section of the same portal on the same database. An order becomes a task for a manager, the buyer becomes a record in the customer directory, and revenue sits in a report next to everything else the company does.
Read this first
The storefront ships in Ukrainian, and the carriers, payment providers and fiscal service it integrates with are Ukrainian: Nova Poshta and Ukrposhta for delivery, LiqPay, monobank and WayForPay for payments, Vchasno.Kasa for fiscal receipts, and 1C for stock exchange.
Everything else — the catalogue, variants, pricing rules, discounts, cart and checkout logic, orders, reports and marketplace feeds — is market-neutral. Adapting the store to another country means writing adapters for that country’s carriers, payment providers and fiscal rules, against the same interfaces the Ukrainian ones use. We say this up front so the screenshots below are read for what they show, not for the language they are in.
From the order card, one click creates a task for a manager — with the contacts, the cart contents and the total inside it.
The customer card has a “Call” button and the full history of calls with that number: telephony here is not an integration, it is the next section along.
No monthly platform fee, no commission on turnover, no product limit inside a plan. There is your hosting.
Buyers, orders and history do not live in someone else’s back office that you will one day have to export “as best you can”.
Catalogue · filters · search
The sidebar filter counts products before anyone clicks: every value carries a number. There is no way to land on an empty “nothing found” page through your own filter.
Product variants
Size, colour, volume, grind. In the catalogue it is one product; in the warehouse these are separate units with their own SKU, price and stock. The card shows a price range when variants cost differently.
You mark which axes this product needs, and the portal offers to create every combination at once — telling you in advance how many that will be. The table is then edited in place: SKU, price, stock, photo, “sellable” — without opening each variant.
For a product with variants, “Price”, “Old price” and “Stock” become read-only. They are derived from the variants, and leaving a field to type into would mean two different truths about the same product.
Cart · discounts · delivery
The most common reason a cart is abandoned is a price that grew on the payment page. So the delivery cost sits next to every method before it is chosen, and the total recalculates with it.
Free, a flat fee, free above a threshold, or the carrier’s own tariff — set separately for each delivery method you offer.
If someone left their email and walked away, the portal sends one reminder after a configured number of hours, with a link that restores the cart — no sign-in, and from a different device. One email per cart, and only to someone who left the address themselves.
The email carries a promo code, and specifically one that is still valid: an expired code in a reminder is worse than no code at all.
Payments · fiscal receipts · refunds
Three payment providers, a bank webhook, a manager’s manual mark and a scheduled re-check all lead into the same piece of code. It verifies the amount, refuses to do anything twice, and only then writes to the log, the fiscal receipt and Telegram.
For all three providers, not only the one connected first — otherwise the payment form on the receipt would disagree with how the money actually arrived.
To the cent, with the variant label in the line. A receipt where the discount hangs as a single “minus 200” reads differently to an auditor than to your accountant.
Refunds return through the provider that took the payment. Cash and bank-transfer refunds are recorded too, so nothing in the report ends up as “it went somewhere”.
The buyer picks the lines and writes a reason; the amount is computed per line including the discount, and they see the manager’s decision with its explanation.
Working the orders
Tick them, then change the state, assign an owner, create waybills or send an SMS. The selection survives pagination, and every order still goes the normal route: reservation, stock write-off, promo code, log entry, message to the buyer.
Buyer contacts, delivery method with the address, payment method and the paid mark, the line items with SKUs, the discount and the delivery as separate rows, buttons for the waybill and the fiscal receipt, the change history and a “Create task” button.
The SKU in a line is frozen — exactly the one that existed at the time of the order. That matters when exporting to accounting, where a line must point at a specific stock unit rather than at the product card.
Feeds · pixels · reports
The source of an order is remembered from the first visit: utm tags, gclid, fbclid, ttclid and the referring domain. So the report shows the campaign the person first arrived through, not “direct”.
Revenue, orders and average order value — with the same previous period beside them. Revenue excludes cancelled orders, and cancellations are shown as their own number: hiding them would paint a better picture than the real one.
Price lists · accounting sync · directories
A supplier price list is read forgivingly: “1 234.50”, “1234,5”, “1 234.50 USD” and a non-breaking space inside the number all mean the same one thousand two hundred and thirty-four and a half — not one currency unit and some change.
“Model” is the card SKU, “Variant” is “Size: M, Colour: Red”. Axes and values are created automatically, and “M”, “m” and “ M ” collapse into one value.
The export and the template carry the same columns as the import — variants included. A thousand rows can be edited where that is actually comfortable.
It updates a specific variant. A card SKU sent for a product that has variants is rejected with an explanation rather than written silently — otherwise the stock would land on “the product in general”.
“Samsung”, “SAMSUNG” and a local spelling merge in one action — together with the products, the filter, the feeds and the exports. A brand with products behind it is disabled, not deleted.
Customer account
An order opens at its own tokenised URL — the buyer neither registers nor remembers a password. Registration stays available for people who want a purchase history, but it is never a condition of buying.
Pricing
The store is not part of the portal price and is bought on its own. It does need the portal: the catalogue, orders and customers live in its database and use its permissions, tasks and telephony.
The store ships as its own package with its own version numbers. That is not a formality: a portal update does not touch the store, and a store update does not touch the rest of the company’s work.
Contact
One call is enough to tell whether the store fits your product — and what would have to be built for your delivery and payment rules. We can show it working the same day.