What was breaking or what was the risk?
A thin catalogue is the normal condition for a new marketplace. Buyers hit empty results. An AI can invent a match instead of returning none. AI-written product data can publish unreviewed. Bulk import of foreign catalogues can create unbounded ingestion cost and legal exposure. Foreign-language listings can stay invisible to local search. Group buys can collapse with buyer money already committed. Quote requests can expire without response. Inventory can fragment across multiple transaction models. A platform can get tied to one host, runtime, or vendor roadmap.
What happens when a marketplace doesn't stock what the buyer is searching for?
It sources it. The assistant searches the live catalogue; on no match it discovers the product from external supplier catalogues and imports it on demand; on still no match it returns guidance and related products. A thin catalogue is the normal condition for a new marketplace, and the assistant is built for that condition rather than assuming it away.
How was it built to hold?
XMARTECH built the entire platform end to end — frontend architecture (TanStack Start / Router / Query), data layer (Drizzle), AWS infrastructure, a three-mode AI shopping assistant, cross-border product data sourcing with on-demand import, gap-driven ingestion, AI-assisted listing generation with confidence scoring and human sign-off, a twenty-language interface with RTL Arabic and direction switching, brand entity aliasing across twenty languages, per-field bilingual product content with tracked translation state, search token indexing, nine transaction models on one catalogue spine, direct store engine, wholesale, RFQ engine, buygroup engine, dropship engine with markup floor and ceiling enforcement, spare-parts system, services, vendor storefronts, discount engine, wallet, real-time layer (chat, notifications), organisations, teams, roles and permissions, first-party error and event telemetry, and anonymous cart persistence through login.
How it's wired
The obvious build
Nine separate storefronts with nine inventories and nine admin surfaces. A catalogue filled by bulk import of a foreign supplier's inventory.
This one
One catalogue spine with nine modes layered on it u2014 and a catalogue filled by demand, with the assistant's three modes as the branch: live catalogue, on-demand external sourcing, or honest guidance when neither has an answer.
What we engineered against
- Buyers hitting empty results on a thin catalogue
- An AI fabricating a match rather than returning nothing
- AI-written product data publishing unreviewed
- Unbounded ingestion cost and legal exposure from mirroring a foreign supplier catalogue
- Foreign-language listings invisible to local search
- A group buy collapsing with buyers' money already committed
- A quote request expiring with no vendor response and no escalation
- A reseller destroying another vendor's pricing
- Inventory fragmenting across nine transaction models
- A platform tied to one host, runtime or vendor roadmap
info Status: in progress, not delivered. This story reports engineered failure modes and countable capability figures, not commercial outcome numbers. No faster/lighter/improved claim is made because no benchmark has been measured.
flare The part they didn't know to ask for
XMARTECH built the AI shopping assistant for an Omani multivendor marketplace with a defined behaviour for having no answer. When a buyer's query matches nothing in the live catalogue, the assistant sources the product from external supplier catalogues and imports it on demand. When neither the catalogue nor external sources can satisfy the request, it returns guidance and related products rather than a wrong match. Products enter the catalogue because a buyer asked for one — never because a bulk import was run.
// A thin catalogue is the normal condition. The assistant is built for that — not assuming it away.
The refund path for the deal that doesn't happen
When a group buy fails to fill, refunds return automatically to the correct wallet or sub-account. The money path for the deal collapsing was designed alongside the path for it succeeding.
The request nobody answers
A buyer's quote request goes to all matching vendors with a 24u201372 hour response window. If no vendor responds, it escalates to an administrator rather than expiring silently.
The lock-in decision, made before any code existed
The client's engineers had specified the framework before the build began. XMARTECH changed it. The platform runs on an architecture not tied to a single host, runtime or vendor roadmap u2014 so the client can move hosting, change backend language, or replace the data layer without rewriting the product.
Buyer questions, answered
What happens when a marketplace doesn't stock what the buyer is searching for?
It sources it. The assistant searches the live catalogue; on no match it discovers the product from external supplier catalogues and imports it on demand; on still no match it returns guidance and related products. A thin catalogue is the normal condition for a new marketplace, and the assistant is built for that condition rather than assuming it away.
How do you fill a catalogue without bulk-importing a foreign supplier's entire inventory?
You import on demand and let failed searches decide. Products a buyer actually asked for enter the catalogue; nothing else does. The catalogue stays clean, storage and compute stay bounded, and the volume of third-party product data held stays proportionate to real demand.
How do you stop an AI from inventing a product match?
You define what it does when it has nothing. The assistant's third mode is a designed behaviour, not a fallback error u2014 guidance and related products in place of a fabricated result.
How does a listing an AI wrote get approved?
By a named person. Every AI-generated listing records its own confidence score and review notes, and a named administrator signs off before it publishes. The AI never has the last word.
How does a supplier listing written in another language become findable by a local buyer?
Through entity aliasing and per-field translation. Brand names carry aliases in twenty languages, so a Latin-script brand resolves from an Arabic, Chinese or Japanese query. Product names, descriptions and specifications are held per-language with tracked translation state, so it is always known what is translated and when.
Can one platform run retail, wholesale, group-buy and quote-based trade at the same time?
Yes, against one catalogue. Nine transaction models share a single product spine, one account, one wallet and one permission model u2014 so inventory does not fragment across nine systems and a vendor does not maintain nine listings for the same item.
What happens when a group buy doesn't fill?
Refunds return automatically to the correct wallet or sub-account. The money path for the deal collapsing was designed alongside the path for it succeeding.
Ultrasooq buyer experience
Live product browse and detail surfaces from the Ultrasooq buyer app.
Buyer app
Marketplace and product-detail flows
Core purchase path from product listing to product detail, matching the live Ultrasooq experience.
Product listing view
All-products catalogue with tabs, filters, cards, price, and quick quantity controls.
Product detail view
Detail page with media, pricing, quantity stepper, and direct Add to Cart action.
Under the hood
Method first. Outcomes when the client releases them.
Build ongoing for an Omani multivendor marketplace. The differentiator right now is the failure modes engineered against and the capability numbers proven in product, not commercial outcome claims that do not exist yet.
forumDirect conversation model
01
You share business goals, constraints, and deadlines.
02
You talk directly with the engineering team, not only account managers.
03
We turn strategy into a scoped delivery plan and execution timeline.
auto_graph Project-type focus
- Modular architecture decisions
- Scalable data interaction
- Fast product iteration loops