Store products
On a product page, the assistant knows the product the person is looking at right now — the chat window brings it along. But “show me other mice”, “anything cheaper?”, “what do you have under two thousand?” are questions about your whole range.
For that, the assistant needs one file your store already has: the feed — a list of all your products with prices, the kind stores give to marketplaces.
You can start without knowing where that file is:
let it know all our products
The builder will first look for the feed itself — on the site where the assistant's chat window sits, or on the one you name. If it finds one, it reads the products right away and tells you how many there are. From that moment on, the assistant searches them on its own during conversations; there's no separate ability to turn on.
If you already have the link, give it straight away:
here's the link to our products: https://myshop.ua/export/feed.xml
How the platform finds the feed by itself
Given your site's address, it looks in three places:
- Links on the home page that look like a product file.
- The platform's standard address — where it's the same for every store on that platform. Right now that's OpenCart with the “Google Base” extension turned on.
- The sitemap — if the first two found nothing.
The platform checks every find: it opens the file and reads products from it. A page that merely looks like a feed, or a blog feed, won't pass as one. It sends no more than twelve requests to your site.
If it finds several files — say, a price list for marketplaces and a feed for Google — the builder names them and asks which one to use. The most complete one is listed first.
Why the feed isn't always found
In Horoshop, on Prom and in WooCommerce plugins, the feed link contains a random string that's different for every store — there's no way to guess it. In that case the builder tells you where that link lives in your particular platform.
Where to get the link
You only need this if the platform didn't find the feed.
| Platform | Where the link is |
|---|---|
| Horoshop | “Marketing” → “Marketplaces” → the feed you need → copy the link |
| Prom | “Product list” → “Export” → “YML file” → “Generate link” |
| OpenCart | “Extensions” → type Feeds → turn on “Google Base” → the address from the Data Feed URL field |
| WooCommerce | a product feed plugin (for example, CTX Feed) → list of feeds → link to the .xml file |
| Shopify | an app from the Shopify App Store that builds an XML feed for Google Shopping → link to the file |
For any other platform:
- Open your store's admin panel.
- Find the section about marketplaces, product export or product feeds. Platforms name it differently: “Export”, “Price lists”, “Marketplaces”, “Product feed”, “XML/YML”.
- Copy the link to the file — it usually ends in
.xmlor.yml— and send it to the builder.
Both common formats work:
| Format | Where you've seen it |
|---|---|
| YML price list | Rozetka, Prom, Hotline and most Ukrainian marketplaces |
| Google Merchant feed | Google Shopping, Facebook, Instagram |
A catalog page is not a feed
A link to the products section of your site won't do: you need the actual file for marketplaces. If you give it a page, the builder will say so — that the link isn't a feed.
If your store has no feed at all, the assistant knows the product the person is looking at and whatever it read from your site — up to about fifty pages.
What the assistant does with it
When asked about products, it searches the catalog instead of answering from memory: a product that isn't in the search results doesn't exist for it. So it won't invent a model you don't sell or quote a price from two years ago.
- By words. “Mice” finds both “Keychron Mouse” and “Logitech Mouse”: word forms don't matter.
- By price. “Under two thousand”, “cheaper than this one”.
- By stock. What's in stock comes first; it says plainly when something isn't.
- By features and category. “White”, “wireless”, “from peripherals”.
It names a product with a link to its page in your store and the price next to it.
Search by meaning
Shoppers don't always name the product — more often they describe a need: “something for a gamer as a gift”, “a quiet one for the office”. Such a request has no words from the product name, and a word search finds nothing.
So when a word search finds fewer than three products, the catalog tops up the answer with products similar in meaning. Exact matches come first. The top-up is marked: the assistant presents it as something that might fit, not as exactly the product asked about. Price limits, stock and category apply to both parts.
To search like this, the platform “reads” each product once — name, category, brand and the start of the description. This happens in the background after the feed is read: word search works right away, meaning search as soon as it's ready. The builder tells you how many products are ready:
how are the products doing?
You'll see the same in the “Products it knows” sheet on the panel: the line “Searches by meaning among N of M” (or “Also searches by meaning” once all are ready). The search check there marks products found only by meaning — “similar in meaning, not by name”; if nothing was found by name, it says so, and the request goes into “Searched, not found”.
Re-reading the feed doesn't repeat this work: a change of price or stock costs nothing; only new products and those whose name, category, brand or description changed are read again.
If the builder says nothing about meaning
Then search by meaning isn't turned on on the platform, and the catalog searches by words only. The line “searches by meaning among N of M products” appears in the catalog status by itself as soon as it works.
Sizes and colours
A T-shirt in six sizes sits in the feed as six products with the same name. To a shopper it's one product: “do you have M?”, “in black?”. The assistant sees it that way too — as one product with a list of variants:
Basic T-shirt — 450–520 UAH, 3 of 4 variants in stock. Size: S (out of stock), M, L, XL; colour: white, black.
This means:
- Search isn't clogged with sizes. The T-shirt takes one place out of eight, not six.
- The assistant answers about each variant's stock: “only L and XL left”, “black — XL only” — and links to exactly the variant needed.
- Filters work per product. “In stock only” finds the T-shirt if at least one size is available. The product's price for “under 500 UAH” is the lowest among the sizes that are in stock: a T-shirt with only an S at 400, and that one out of stock, won't show up for “under 450”.
- The product page. Someone on the page of the white M asks “do you have it in black?” — the assistant knows all variants of this product from the catalog and answers from them, not from what's visible on the page.
- One card. If it suggests two sizes of the same T-shirt, there's one card under the answer — for the variant mentioned first.
What counts as one product. Only what the feed itself marked as a group: in a YML price list that's the same group_id on the offers (this is how Prom and Rozetka export “variants”); in a Google Merchant feed, the same g:item_group_id. Size and colour come from the offer's attributes (<param name="Розмір">, g:size, g:color).
Products with the same name but no group aren't merged: two “iPhone 15 cases” from different makers are two products, and the platform won't guess that they're sizes of one.
You can see how many products have variants on the panel in the “Products the agent knows” sheet (“1060 products for shoppers, 40 of them with variants”), and in search there — next to a product, “4 variants, 3 in stock”. Or ask the builder:
how are the products doing?
There are sizes, but the builder says nothing about variants
That means the feed lists sizes as separate products without a group. In your store's export settings (the marketplaces or feeds section), turn on exporting product variants together with their group — and have the products re-read.
Cards under the answer
In the chat window on your site, products the assistant suggests appear under the answer as cards: photo, name, price, pre-discount price and “out of stock”. The name and photo lead to the product page — in the same tab, and the conversation isn't lost. Nothing to turn on: if there's a catalog, there are cards.
Each card is a product the assistant found in your catalog in this answer and named with a link. That gives you two things you can rely on:
- No cards without words. The search found eight products, the assistant suggested three — there are three cards. A product the answer doesn't mention never sits under it. There are never more than six cards.
- Variants of one product — one card. It suggested M and L of the same T-shirt — there's one card, with the price and stock of the size mentioned first.
- Data comes from the catalog, not from the assistant's text. The card takes price, photo, stock and address from your feed. Even if the assistant gets a price wrong in the text, the card shows yours. A product that isn't in the feed never becomes a card at all.
Under a card are buttons the shopper uses to keep looking without typing anything:
| Button | What happens |
|---|---|
| Similar | “Show similar to “…”” appears in the conversation, and the assistant looks for products of the same type and category |
| Cheaper | “Show cheaper than “…”” — looks for the same thing at a lower price |
| Compare | the person marks two or three products (even from different answers) and taps “Compare” — the assistant compares them |
Along with the message, the chat window passes on exactly which product is meant, so the assistant doesn't guess it by name: it pulls that product from the catalog with all its attributes. It compares only by what's in the feed — for anything missing there, it says the catalog doesn't specify it rather than answering from memory.
Add to cart — only for this page's product
Product cards in an answer have no “add to cart” button: the cart belongs to your store, and the chat window can't press a button on another page. A link leads there instead. The exception is the card of the product whose page the person is on right now: it has the button, just like the card above the conversation.
If you want the assistant to recommend without cards, in plain text:
don't show product cards, text only
Links and prices in the text stay; to bring them back — “show products as cards”. How cards look with your settings, you can see in the chat window preview — there they're built from your own products.
A product with sizes or colours is labelled on the card with its number of variants: “4 variants”. For your own label — “on the card write ‘sizes: {n}’” (your own labels).
Searched, not found
A shopper asks “do you have white headphones?”, the assistant searches the catalog — and finds nothing. The platform remembers this request: what exactly was searched for and how many times. After a week you can see what's missing from your range: “white headphones — 14 times”.
- What's recorded is the assistant's search, not the person's message. The assistant only goes to the catalog when asked about a product, so “hi” and “thanks” never get here. No conversation text, no shopper's name or contacts.
- Similar doesn't count as found. Someone looked for white headphones, the catalog offered grey ones — the request is on the list: you don't have exactly those.
- Identical — one line. “White headphones” and “white headphones!” are one line with a counter.
- Searches with a price limit don't count. “Headphones under 200 UAH” might have come up empty because of the price, not your range.
- Your own checks don't count: searches in rehearsal and in the “Check whether it finds” field don't fill the list.
- A request nobody has searched for in two months disappears by itself.
The list is on the panel in the “Products the agent knows” sheet, below the search. Added the product, or the request isn't about a product — Remove. Or in words:
what did people search for and not find?
Prices don't go stale
The feed is re-read by itself, once a day. It costs no credits — unlike re-reading your site, which only turns on when you ask. Here it's the other way round: a stale price costs more than reading a file, because it gets quoted to a shopper.
To change the schedule:
re-read the products every six hours
To re-read right now:
re-read the products
When the store stops serving the file
The feed is read on a schedule, and nobody watches it. If the file is gone, the link has changed or the store isn't responding — nothing crashes: the assistant keeps quoting prices. Yesterday's.
So the platform tells you itself:
- the products stay — from the last successful read; an empty catalog is worse than yesterday's prices;
- you get a problem “product catalog isn't updating” — with the reason;
- on the panel, the Products line is dimmed: “prices aren't updating”;
- if this lasts longer than two intervals in a row, the assistant itself tells shoppers it's worth double-checking price and stock on the product page.
As soon as the file is read again, the problem disappears by itself. If the store gave you a new link:
here's the new link to the products: …
Check whether it finds
On the panel, the Products N line opens the catalog: how many products, when prices were last checked, and a search box. The search there is the same one the assistant uses in conversations, and it shows the same first eight products. If a query finds nothing here, the assistant won't find anything either.
Or in words:
will it find headphones?
Limits
| Limit | How much |
|---|---|
| products per agent | 20,000 — a larger file is cut off, and the builder tells you how many didn't fit |
| file size | 64 MB |
| products per search | 8 — the assistant couldn't relay more anyway; a product with variants counts as one of the eight |
| variants of one product as lines for the assistant | 24 — it sees the rest in the list of sizes and colours |
| cards under one answer | 6 |
| products in one comparison | 3 |
| “searched, not found” lines | 500 — after that no new ones are added, but existing counters keep growing |
| re-reading | from once an hour to once every 30 days; once a day by default |
A product without a name, link or price doesn't get into the catalog — the builder tells you how many there were.
What to say
| Say | And it will |
|---|---|
| “here's the link to our products: …” | read the feed and tell you how many products there are |
| “let it know all our products” | look for the feed on your site itself; if found — connect it, if not — explain step by step where to get the link |
| “our store is myshop.ua, find the products there” | look for the feed on the site you named |
| “will it find mice?” | search with the same search the assistant uses |
| “does it know sizes and colours?” | tell you how many products have variants; if none — what to change in your store's export |
| “don't show product cards, text only” | show products in conversations without cards, as links with prices |
| “what did people search for and not find?” / “what's missing from our range?” | list shopper requests that found nothing in the catalog, with how many times |
| “we've added the headphones, remove them from the list” | remove the “searched, not found” line |
| “why are the prices old?” | tell you when products were last checked and what's wrong |
| “how are the products doing?” | tell you how many products, how many have variants, when prices were checked and whether the catalog searches by meaning |
| “re-read the products” | read the feed now |
| “remove the products” | remove the catalog (it will ask for consent) |
What next
- Chat window on your site — the product the person is viewing, its card and the cart.
- Where's my order — order status, delivery and tracking number for the shopper.
- Payment in the conversation — a payment link for a product at the catalog price.
- What the agent knows — texts: delivery, payment, warranty.
- When something breaks — where problems are reported.