Bulk price editor for your Clover menu and inventory

Change prices across every Clover item in one pass, preview each old and new price with margins, then apply and keep a full history.

App
CloverGoogle SheetsOperationsFinanceData Sync
PromptCreate

Build me an app for changing prices across my Clover menu in bulk, so I never have to edit items one at a time or export my whole inventory to a spreadsheet and reimport it. I open this when a supplier raises costs, when the menu changes for a season, or when I want to push a cash discount adjustment across the board.

The main screen is a table of every inventory item, loaded with Clover List Inventory Items and paged through with limit and offset until fewer than limit come back. Columns: item name, category, current price, cost, and current margin. Populate each item's category by expanding categories on the list call, and fall back to List Item Categories for anything that comes back without one. Above the table put a search box that filters on item name and a category dropdown populated from Clover List Categories. Every row has a checkbox, plus a select all control that selects everything matching the current filter rather than just the visible page. Show the selected count in the header at all times.

With a set of items selected I pick one bulk action: raise or lower price by a percentage, raise or lower price by a fixed dollar amount, set every selected item to one specific price, or round every selected price to the nearest .25 or the nearest .99. Clover prices are integers in cents, so do all arithmetic in cents and round to whole cents. Nearest .99 means the nearest whole dollar ending in .99. Display everything to me in dollars.

The preview step is mandatory and this is the most important part of the app. Choosing an action never writes anything. It builds a preview table with one row per selected item showing item name, current price, new price, the amount of the change, current margin, and new margin. Margin is price minus cost divided by price. Items with no cost on file show a clear no cost on file marker and are left out of the margin warnings. I set a target margin in the app settings, and any row whose new margin falls below it is flagged so I can see when a change pushes an item under water. Above the preview show a plain sentence with the count, like This will change 42 items. Keep the Apply button disabled until a preview has been generated for the current selection and settings, and invalidate the preview the moment I change the selection, the action, or the numbers.

Apply writes each change through Clover Update Inventory Item, one item at a time, sending the item id and the new price in cents. Clover resource updates are POST and there is no PATCH, so send the update as a POST to the item. Stay under Clover's rate limit, and when a 429 comes back, wait for the retry-after value and try again. Show live progress with a running count while the batch runs. If some items fail, show exactly which ones, keep them selected, and let me retry only the failures. End with a summary of how many succeeded and how many did not.

Every applied batch appends to a Google Sheets change log using Append Values, one row per changed item, so I have the price history Clover does not keep. Columns: timestamp, batch id, change type, item name, item id, old price, new price, old category, new category, and the name or email of the app user who ran it. Write prices in the log as dollars with two decimals so the sheet is readable, and convert back to cents when reading them. Write a header row when the tab is empty. The spreadsheet id and tab name live in an app settings screen along with the target margin, and are saved so I do not retype them.

Give me an Undo last batch button. It reads the log back with Google Sheets Get Values, takes every row belonging to the most recent batch id, and restores each item's old price through Clover Update Inventory Item. Run it through the same mandatory preview with the count so I can confirm before it writes. Log the undo as its own batch, marked as an undo of the original batch id, and disable the button once the most recent batch has been undone. Only the most recent batch needs to be undoable.

A second view handles bulk category reassignment, which is the other job that is painful item by item. Use the same filterable table and selection behaviour, then let me pick a target category from Clover List Categories. Show a preview listing each selected item with the categories it belongs to now and the category it will move to, plus the same count sentence, then apply with Clover Add Items to Category. Append those changes to the same Google Sheets log with change type set to category and the old and new category recorded in place of old and new price.

Anyone on my team who opens the app works against the same Clover location, and the log records who ran each batch, so the history tells me who changed what and when.

What does this prompt do?

  • Puts your whole Clover item list in one searchable table with name, category, current price, and cost, so you can filter down and tick exactly the items you want to change
  • Applies one bulk action to everything selected: raise or lower by a percentage, raise or lower by a fixed amount, set one price for all of them, or round to the nearest .25 or .99
  • Always shows a preview first, with old price next to new price, the recalculated margin against cost, a warning on anything that drops below your target margin, and a clear count of how many items the change will touch
  • Writes the approved batch to Clover, logs every change to a Google Sheet with the timestamp, item, old price, new price, and who ran it, and lets you undo the most recent batch
  • Includes a second screen for moving a group of items into a different category in one go

What do I need to use this?

  • A Clover account with permission to view and edit inventory
  • A Google account and a spreadsheet to use as your price change log
  • Cost filled in on your Clover items if you want the margin warnings to be meaningful
  • The categories you want to filter and reassign by already set up in Clover

How can I customize it?

  • Set your target margin so the preview flags any item a price change pushes below it
  • Choose which spreadsheet and tab the change log is written to
  • Add the bulk actions you reach for most, like a standard seasonal increase or a fixed cash discount adjustment across the board
  • Point the same bulk actions at item cost as well as price if you want to update supplier costs in bulk too

FAQs

Can it change prices before I have seen them?
No. The preview step is mandatory. Picking a bulk action only builds the comparison table of old price next to new price, and the Apply button stays disabled until you have generated that preview. Changing your selection or the numbers clears the preview so you have to look again before anything is written.
What if I apply the wrong change?
Every applied batch is written to your change log with the price each item had before it changed, and the app has an Undo button that restores the previous prices for the most recent batch. The undo runs through the same preview and count so you can confirm it first.
Do I still have to export my inventory to a spreadsheet and reimport it?
No. That round trip is exactly what this replaces. You filter, select, preview, and apply inside the app, and the changes go straight to Clover.
How do I know a price change will not kill my margin?
The preview shows each item's cost, its margin today, and its margin after the change. Anything that lands under the target margin you set is flagged, and items with no cost on file are called out separately so you are not fooled by an empty number.
How many items can I change at once?
As many as your filter and selection cover. The app shows the count before it runs, applies the changes one item at a time in the background at a pace Clover accepts, and shows progress plus anything that failed so you can retry just those.
Does it work across more than one location?
The app works against the Clover location you connect. To edit prices at another location, connect that location and open the app again.

Related templates

Prospecting desk that builds account lists from the live web

Stop buying stale lists. Reps run a saved search, work the results like an inbox, and only the accounts they approve ever reach your CRM.

Hyperbrowser
HubSpot
Google Sheets
App
Influencer campaign roster board with AI creator briefs

Drag creators through Sourced to Wrapped on a board grouped by campaign, with audience stats on every card and a one-click brief for each creator.

HypeAuditor
Google Sheets
Notion
App
Morning repricing console for Shopify with margin-safe rules

Pick a repricing rule, send an assistant out to check competitor pages, then approve the new prices that clear your margin floor.

Hyperbrowser
Shopify
Google Sheets
App
Pre-flight bounce check before you launch a cold email sequence

See the projected bounce rate for any outbound send before it goes out, and keep the launch button locked until the list is clean enough to be safe.

Hunter
Google Sheets
App
Per-device electricity cost explorer for your smart home

Pick any date range and see what each device in your home actually cost to run, not just how many kilowatt-hours it used.

Home Assistant
Google Sheets
App
Build a PR media list from real worldwide news coverage

Search three months of global coverage on your topic, rank the outlets actually writing about it, and draft a tailored pitch for each one.

GDELT
Google Sheets
Gmail
App

Stop exporting your whole menu just to change a few prices.

Filter, select, preview the margin impact, and push the new prices to Clover in one pass, with a change history Clover does not keep.