Introduction
Here is how to construct an inventory and pricing command centre with ToolJet MCP for the merchandising team that keeps channel prices, stock risk and approvals in one place. Step by step, discover how to build an inventory and pricing command centre with ToolJet MCP for the merchandising group while coordinating repricing, alerts and purchase requests. Below, you will explore how to build an inventory and pricing command centre with ToolJet MCP for the merchandising team that manages pricing changes, stock shortages and product history. An agent generates the app, and what comes out is a structured ToolJet application, with data, queries and interface kept together for the team to run. The article shows the screen, the tables and the control flow so you can reproduce the result from the prompt in this article.
Catalogue: price, units this week and margin per channel, stock, cover versus lead time and the last price change
Alerts: stock-outs ranked by revenue lost over the lead time, pending price approvals and below-margin listings
Product: price history by channel, stock projection, channel prices and the price-change trail
Draft purchase request: quantity worked out from sell-through, lead time, case pack and MOQ, with the supplier email ready to review
What We're Building
The Catalogue page uses one dense row per product, so you scan price, sell-through, margin and stock context without opening extra screens. Reprice opens a modal that shows the live band, floor price and weekly impact, then asks for a reason before the change lands. Alerts orders stock-out risk by revenue at risk over supplier lead time, then surfaces a Draft PR action that calculates quantity and drafts the supplier note. The hidden product view keeps the deeper trail for a single SKU, including the price-change log and linked requests. The layout stays compact, muted and built for repeated review.
- Dense product rows with channel pricing and stock context in one scan
- A repricing modal with live band, floor price, margin preview and required reason
- Ranked stock-out alerts that turn into drafted purchase requests
- A hidden product view for price trails, stock movement and linked requests
- Role-based access for merchandisers, category heads and finance
Build an Inventory and Pricing Command Centre with ToolJet MCP for Merchandising Teams
Want to build it yourself? Start with the ToolJet MCP repository for setup instructions, supported agents, and everything you need to follow along.
The Consolidated Build Prompt
The real build took several passes. The requirements are consolidated here into one prompt that could have been used from the start, so you can reproduce the app in a single shot.
Build a 3-page inventory and pricing command centre in ToolJet for the merchandising team of a consumer electronics brand selling through its own store, Amazon and two regional marketplaces. Use ToolJet DB tables prefixed mcc_: channels with fee percentages, categories with a minimum margin and a price band percentage, suppliers with lead time, MOQ and case pack, products with unit cost, stock on hand and reserved, channel prices with a stored band low and high, weekly sales per channel, weekly stock history, a price-change audit table, purchase requests and app roles. Seed about 20 realistic SKUs in USD.
Catalogue (home): one dense row per product with, for each channel, the price, units sold this week and margin after fees; stock on hand, reserved, available, cover versus supplier lead time, and the last price change. A Reprice row action opens a modal previewing the band, floor price, new margin and weekly margin impact, with a required one-line reason. Inside the band the price applies immediately; outside it is saved as pending for the category head. Every change writes old price, new price, who and why to the audit table.
Alerts: stock-out risks ranked by revenue lost over the lead time, not days of cover, each with a Draft PR action that works out the quantity (sell-through times lead time plus 28 days, minus available, rounded to whole cases, at least MOQ) and drafts the supplier email for a person to send. List listings below their category margin floor, and a pending-approval queue with margin impact where category heads approve or reject.
Product (hidden): price history by channel, stock history with a projection, channel prices, purchase requests and the price-change trail.
Roles: merchandisers change prices within the band, category heads approve out-of-band changes, finance sees everything and changes nothing. Enforce the band server-side, restrict every write query to the right groups and use a dense, muted Nordic design with native components.
How ToolJet MCP Builds the App
The agent works through the whole application, not the screen: the data model, the queries, the component tree and the wiring between them all land as one structured ToolJet application. Enterprise app building does not end at the interface, data connectivity, workflows, permissions, deployment and ongoing change are the rest of the job, and the generated app sits on a runtime that carries those where supported instead of handing the team a codebase to operate themselves. The path stays open: AI generation, then visual editing, then code where a case needs it.
The One Thing That Broke
The first catalogue and alerts tables clipped on a laptop because the combined columns were wider than the canvas. Tightening the row density and simplifying the table layout fixed the fit, and the app rendered cleanly after that.
Data Created
The app ended up with ten tables in three groups. mcc_products, mcc_channel_prices, mcc_categories, mcc_channels and mcc_suppliers hold the merchandising reference data, mcc_sales_weekly and mcc_stock_history capture demand and stock movement, and mcc_price_changes, mcc_purchase_requests and mcc_app_roles track change history, requests and access.
| Page | Components | What they cover |
|---|---|---|
| Catalogue | 11 | dense product table and the reprice modal |
| Alerts | 16 | stock-out ranking, approvals queue, low-margin list and the PR modal |
| Product | 13 | price and stock history, channel prices and the audit trail |
What Got Generated
| Metric | Result |
|---|---|
| Pages | 3 |
| ToolJet DB tables | 10 |
| Queries | 23 |
| Components | 40 |
| Code files to maintain | 0 |
| Repair cycles | 1 |
| Final validation | 0 errors |
Industries That Run This
Consumer electronics and appliance brands, direct-to-consumer retailers selling on Amazon and regional marketplaces, fashion and footwear merchandising teams, home goods and personal care brands, and any omnichannel seller that prices the same catalogue differently per channel while buying stock from suppliers with long lead times.
Who Gets Access To The Built App
As built, three workspace groups gate the writes. Merch - Merchandisers and Merch - Category Heads can change prices and draft purchase requests; only Merch - Category Heads can approve or reject out-of-band changes; Merch - Finance and everyone else can open every page but no write query runs for them. The price band is also enforced on the server by the write query itself. The groups were created empty, so people still have to be added to them, and the app's role table only drives what the interface enables.
Role-Based Access Control in ToolJet
A Merch Command Centre app is only ready for a real team when every person can see and change exactly what their job needs, and nothing more. ToolJet handles this with role-based access control (RBAC) at two levels: platform-level permissions decide who can reach a workspace resource at all, and app-level permissions decide what each user can open, run and see inside one app. Both are enforced by the ToolJet server, not by hiding controls in the browser.
ToolJet role-based access control: platform-level and app-level permission layers
App-Level Permissions: Pages, Queries and Components
Inside the app builder, ToolJet dynamic access rules restrict individual parts of an app to chosen users or groups, so one app can serve several roles without a copy per team.
- Page permissions: decide who can open a page, such as an approvals queue or an admin screen, while everyone else keeps the pages they need.
- Query permissions: decide who can run a query. This is the layer that protects the data: a read-only user cannot trigger a write query even if they find the button.
- Component permissions: decide who sees and uses a component such as a button, form or modal, so a viewer gets a clean screen instead of controls they cannot use.
- Row-level security: filters which records each user gets back from a query, so a manager sees their own region and not the whole table.
Query permissions in the builder: the five write queries are locked to the merchandiser and category head groups
Platform-Level Permissions: Roles, Custom Groups and Access Rules
At the workspace level, ToolJet decides who can reach an app, a data source or a workflow before any app-level rule applies.
- User roles: every member has a base role, Admin, Builder or End user, which sets what they can do in the workspace.
- Custom groups: group people by team, such as finance or regional managers, and grant permissions once to the group instead of person by person.
- Granular access rules: for each group, choose which apps it can edit or only view, whether an app is hidden from the dashboard and which environments it can open, which data sources it can configure or build with, and which workflows, modules and folders it can reach.
- Workspace permissions: group-level switches for creating and deleting apps, managing workspace constants, working with ToolJet Database and organising folders.
Custom groups in workspace settings, each with granular view access to the Merch Command Centre app
Together, the two layers let one Merch Command Centre app go live for the whole team: platform permissions decide who gets in, and app permissions decide what each role can do once inside. ToolJet MCP can apply these rules while it builds, so access control ships with the first version of the app instead of arriving as a retrofit. Dynamic access rules are part of the ToolJet Enterprise plan.
Enterprise Features for Your Inventory and Pricing Command Centre
A merchandising app handles product costs, price-change history, and supplier lead times. ToolJet covers that governance at the platform layer, so you configure it once instead of rebuilding it in every app.
- SSO and SCIM: sign in with SAML, OIDC or LDAP, and provision users automatically
- Role-based access control: scope permissions to the app, the data source, and each query
- Audit logs: track every login, edit, and approval decision for compliance review
- Air-gapped deployment: self-host on Docker or Kubernetes so your data stays in your network
- Multiplayer editing: several builders work on the same app, with versioning and Git sync
- ToolJet AI inside your own deployment: run the AI features in your tenancy rather than a shared service
ToolJet Workflows adds the notification layer. One workflow fires when a category head approves an out-of-band price change, posts a Slack message with the SKU and new price, emails the merchandiser through Gmail, and writes the decision back to mcc_price_changes.
Final Takeaways
This build shows that an agent can assemble a working merchandising application, not just a layout, by tying product rows, repricing, stock risk and purchase request drafts into one app. The structured ToolJet application matters because the output stays inside a runtime you continue to edit, instead of becoming a codebase you now have to own end to end. Visual edits cover most changes, code handles the sharper rules, and the data, workflow and access layers stay in step as the app changes over time.
Try ToolJet MCP
Build your own merchandising command centre with ToolJet MCP, then request a ToolJet demo for your product and stock data.
FAQs
What does the ToolJet agent build path do?
It turns a written requirement into a working app inside ToolJet, with pages, queries, data tables and access rules connected as one system. In this build, that means merchandising data, repricing logic and stock alerts live together in one application.
What does the catalogue page show in Merch Command Centre?
The catalogue page gives you one row per product with channel pricing, units sold, margin and stock context in a single scan. From that row, you open repricing, see the live band and reason field, and write a change to the audit trail.
Can I use my own merchandising data for this app?
Yes. The app is shaped around product, channel price, sales, stock, supplier, request and role records, so your own data can fit if the same business fields exist. The prompt in this article gives the same structure the build expects.
Do I need to write code for this app?
You do not need code for the core flow. The visual app covers the tables, screens and approvals, and you only drop into code when a calculation or rule needs a tighter expression.
What happens to the app after the agent finishes?
The agent leaves you with a structured ToolJet application, not a screen mockup or a code drop. ToolJet keeps the app on its runtime, so the data, queries, workflows and access rules stay attached as the requirements change.
How is this different from starting with generated code?
A generated codebase hands you files first and integration work later. This build starts with the app structure already in place, so the business rules, data tables and approvals are connected from the start.
Can several people work on the same app at once?
Yes. Role-based access lets merchandisers, category heads and finance users share the same application without sharing the same write paths. In this build, price edits and approvals follow different permissions, so each group sees the actions it owns.







Top comments (0)