
The Catalog Builder page showing the AI connector card, the template upload card, and the list of recent builds.
How to get here
Entities → open a merchant → Catalog Builder tab.Access
If the merchant is outside your scope or does not have the Catalog feature, the tab returns you to Entities with an explanation.
The two ways to start a build
From your AI assistant
Drop a menu photo, PDF or unfamiliar spreadsheet into Claude and ask it to build the menu. Best for merchants who hand you a printed or photographed menu.
From the Taliup template
Fill the standard Taliup product spreadsheet and upload it here. Best when the merchant already has clean product data.
Upload the Taliup template
1
Download the template
Click Download template to get
BulkUploadTemplate.xlsx. It contains a Guidelines sheet plus Products, Attributes and Tags sheets.2
Fill it in
Complete the sheets. The column reference is the same one merchants use — see Bulk Import.
3
Upload
Drag the file onto the upload card or click Choose Excel file. Give the build a name so you can recognise it later, then click Create draft.
4
Wait for the draft
The file is read in the background. The build moves to Ready for review and opens the review screen.
Only the Taliup template is accepted on this upload. For a menu in any other shape — a photo, a PDF, a competitor’s export — use the AI connector instead.
Size limits
The upload card states both limits: 20 MB and 2,000 items. A workbook is counted before it is stored, so an oversized file is refused straight away rather than failing later in the queue.Build statuses
Review the draft
The review screen is where the real work happens. It shows the whole proposed catalog and lets you correct anything before committing.
The Catalog Builder review screen with the validation banner, tabs, and the menu tree of categories and items.
Tabs
Decide what happens to each row
Every row — every item, category, attribute, tax and tag — carries an action.
Catalog Builder compares every row against what the merchant already has and suggests a match. A coloured badge next to the action shows how confident the match is.
Click the match badge to open the picker, search the merchant’s catalog yourself, and choose a different record. A match you pick by hand is locked and will not be overwritten by later matching.
This matters for photos. Link existing writes nothing at all, so an item image in the draft is discarded — the row warns you when that would happen. Update existing adds the photo to an item that has none, and leaves an existing photo alone unless you set the image URL yourself in the review screen.Re-importing a menu the merchant already has is mostly link and update rows, so this is the usual case when adding photos to a catalog built earlier.
Edit items
Click any item to expand its editor. You can change the name, description, price, SKU, cost, supplier, mark up, type, taxes, tag, attributes and image.- Turn on Custom price for market-price items. The price field clears and the item is sold at a price entered on the POS.
- Supplier is created for the merchant if the name is new. Mark up (%) is worked out from cost and price when you leave it blank.
- Image takes either a web address or a file from your own machine — see below.
- Sold by weight requires a unit of kg, g, lb or oz, and cannot be combined with custom price.
- Switching an item to Service reveals duration and booking fields.
Item photos
Paste a web address into Image and Taliup downloads the picture and stores it on Taliup’s own storage — the merchant’s catalog never links to anyone else’s site, so it is unaffected if theirs goes away. Photos are stored at up to 1,200 pixels wide. Some websites refuse to serve pictures to Taliup’s servers even though they load perfectly in your browser. Wix is one. When that happens, click Upload a file instead and choose the picture from your own machine: your browser can fetch what the server cannot, and the file ends up in exactly the same place.The commit summary counts photos separately from records, and says which ones were downloaded, which you uploaded, which items kept a picture they already had, and which could not be fetched because the hosting site refused Taliup. Photos arrive a minute or so after the commit finishes — reload the product to see them.
Fix issues before committing
The banner at the top counts two kinds of problem.
Common errors are a missing price on an item that is not custom-priced, an attribute with no values, and a row set to Link existing with no record chosen.
Items with no price
A source that gives no price at all — a menu photo where the column was cut off, say — produces a custom price item, which means the cashier types the price at the till on every sale. That is a real decision made on your behalf, so the row carries a warning saying so. Clear it either way:- type the price, or
- confirm the item really is priced at the till, by ticking Custom price on the item or using the Mark as custom price bulk action.
Bulk actions
Select items with their checkboxes to reveal the bulk bar: set them all to Link existing or Create new, add a tax, move them to another category, mark them as custom price, or skip them. The overflow menu beside Commit applies Link all confident matches or Create all as new across the whole draft. Mark as custom price is the quick way to accept a whole section that is genuinely priced at the till. It clears each item’s price, turns off Sold by weight, and resolves the missing-price warning on every row it touches.Saving
Edits save automatically a few seconds after you stop typing, and Save draft forces a save. The indicator beside the button shows the current state.If someone else saves the same draft while you have it open — another admin, or your AI assistant staging an update — you will be told the draft changed elsewhere and asked to reload. Reloading discards your unsaved edits, so save early.
Commit
When the error count is zero and everything is saved, click Commit to catalog. A confirmation lists exactly how many records will be created, linked, updated and skipped.
The commit confirmation showing a per-record-type breakdown of creates, links, updates and skips.
If some rows fail
The build returns to Ready for review with the failures listed against the rows that caused them. Fix those rows and commit again — rows that already succeeded are skipped, so nothing is duplicated.Recent builds
The list on the Catalog Builder page shows the last 25 builds for the merchant with status, source, who started it, and counts. Open any build to see its draft or its commit summary. Builds still in progress refresh on their own. Cancel a build you no longer want from the list. Cancelling discards the draft.Finished builds keep their draft for 7 days and are then cleared, and the uploaded spreadsheet is deleted as soon as the build commits. A build left in review for 30 days is cancelled automatically.
One-time setup
This section is for whoever deploys Taliup HQ. Admins using the feature do not need it.
1
Run migrations
php artisan migrate creates the build tracking table and the OAuth tables used by the connector.2
Generate OAuth keys
php artisan passport:keys on each environment. The keys are not kept in source control.3
Enable the connector
Set
CATALOG_BUILDER_MCP_ENABLED to true, and list the AI clients allowed to connect in MCP_REDIRECT_DOMAINS. Leaving the flag off hides the connector card and disables its endpoints.MENU_FETCH_ALLOWED_DOMAINS, comma separated. The list is empty by default, which switches the feature off. A domain covers its subdomains, so example.com also permits www.example.com and order.example.com.
Imported item photos are stored no wider than 1,200 pixels (CATALOG_BUILDER_IMAGE_MAX_WIDTH), and a photo uploaded in the review screen may be up to 10 MB (CATALOG_BUILDER_IMAGE_UPLOAD_MAX_MB).
Background work — including fetching item photos — runs on a dedicated catalog-builder queue, so the queue worker must include it:
catalog-builder:prune, clears old drafts, expires abandoned reviews, and removes photos uploaded during review that were never committed. It runs daily as part of the normal scheduler.
When photos do not arrive
Photos are fetched after the records are written, so several separate things can stop one without stopping the build. Two read-only scripts in the application root answer it in order, rather than by guesswork:A photo that cannot be downloaded leaves a failed job and a warning in the log naming the URL and the reason. It is not silent.