Spreadsheet-fast inline editing
Tab, arrow keys, and direct cell editing across titles, status, prices, SKUs, inventory, tags, and vendors, plus rich-text descriptions in a focused editor. No forms, no CSV round-trips.
See the bulk product editor →BulkSheet is a Shopify bulk product editor: edit prices, variants, inventory, tags and metafields in one grid, review every change before it saves, and undo on every plan.
Rated 5.0 on the Shopify App Store

A throwaway sample catalog. Change a price, run a bulk template, then hit Undo and watch it come back. Nothing here touches a real store.
| Product | Status | Price | Tags |
|---|---|---|---|
| Linen Shirt | $ | ||
| Canvas Tote | $ | ||
| Wool Beanie | $ | ||
| Denim Jacket | $ |
Make a change, hit Save, then Undo - that one-click rollback is exactly how the real editor protects your catalog. How your catalog stays safe →
A two-minute tour: inline editing in the grid, bulk price templates with preview, and scheduled sales that revert themselves.
BulkSheet replaces CSV round-trips and one-off scripts with an editor designed for merchants who ship changes every day.
Tab, arrow keys, and direct cell editing across titles, status, prices, SKUs, inventory, tags, and vendors, plus rich-text descriptions in a focused editor. No forms, no CSV round-trips.
See the bulk product editor →Expand any multi-variant product into per-variant rows and edit variant prices, compare-at prices, SKUs, and inventory inline - no separate variant screens.
See the variant bulk editor →Pin product metafield definitions as grid columns and edit them inline - text, numbers, dates, colors, JSON, money, and more - with per-type validation, undo, and edit history.
See the metafields bulk editor →Combine tag, vendor, status, price range, inventory, on sale and has variants in one Shopify search, then narrow the loaded rows with missing SKU or no-image filters.
Apply a percent or fixed discount, raise prices, set compare-at anchors, change status or tags, or set inventory across every selected product, with .99 rounding. Every template previews first.
See the bulk price editor →Per-cell Cmd+Z, or step back through pending edits. Every plan can undo a save for 15 minutes after making it; Pro can revert older saved changes from Edit History.
Bring in a supplier price list or your own edited export. Rows match by Variant ID, handle, or SKU and land as unsaved edits you review. A blank cell never overwrites anything.
How imports stay safe →Small edits write back to Shopify immediately. Load up to 10,000 products in one grid; larger saves run as Shopify bulk operations. Large jobs show live progress.
See the inventory bulk editor →Pick products, set a discount with optional .99 rounding, and schedule it: prices change at your chosen time and revert when the sale ends. Every leg lands in Edit History. Paid plans.
How scheduled sales work →Swap a word or phrase across titles, vendors, SKUs, tags, and descriptions in one pass. Preview the matches, replace, and undo if anything looks off. Links survive. Paid plans.
How find & replace works →Filter to a tag, vendor, status, price range, or saved segment and export just those rows as CSV, with the columns you see in the grid. Growth and Pro.
See the product export →Let Claude, Cursor, or any MCP-compatible agent search, preview, apply, and undo bulk edits through a revocable token, with the same plan limits and drift-safe undo as the editor.
See the Shopify MCP server →BulkSheet is a Shopify app that changes many products at once in a spreadsheet-style grid, instead of one product page at a time. You filter your catalog by tag, vendor, status, price range or stock level, then edit cells directly, apply a bulk template such as 20% off with .99 endings, or import a CSV as reviewable drafts. Nothing reaches your store until you save, and a Review changes step lists every old and new value first. If something looks wrong, undo the pending edits, or undo the batch you just saved for 15 minutes on any plan. You can edit titles, descriptions, vendors, status, prices, compare-at prices, SKUs, inventory, tags and product metafields, down to individual variants. Large saves run as Shopify bulk operations with live progress. The Free plan allows 100 product saves a day with no credit card; paid plans start at $9.99 a month and remove the daily limit.
How the three common ways to change many Shopify products compare. The Shopify admin and CSV columns describe Shopify's admin as of October 2026; the BulkSheet column describes the current app.
| What you need | Shopify's built-in bulk editor | CSV export and re-import | BulkSheet |
|---|---|---|---|
| Preview before saving | No review of pending changes | No preview: the import writes every row in the file | Yes: a Review changes step lists old and new values before anything is written |
| Undo | No real undo after you save | No undo for an import; recovery means re-importing an earlier export | Pending edits on every plan, and the batch you just saved for 15 minutes on every plan; Pro can revert older saved batches |
| Scheduling | Not available | Not available | Paid plans: schedule a price change with an automatic revert time |
| Find and replace | Not available | Only inside your spreadsheet app, outside Shopify | Paid plans: titles, vendors, SKUs, tags and descriptions, with a preview |
| Safety on re-import | No file involved | Every column in the file is written for every row, and a blank cell in an included column is a write | A CSV import loads as unsaved drafts you review; a blank cell never overwrites a field |
| Scale | Works on the products on the current page | The whole catalog in one file | Load up to 10,000 products in one grid; larger saves run as Shopify bulk operations. |
Narrow 10,000 products down to the exact rows you want to edit using smart filters and search.
Change fields one cell at a time, or apply a bulk template - discounts, tags, status, inventory - across every selected product.
Confirm the diff, apply the batch, and roll it back with a single click if anything looks off.
Start free with 100 product saves per day, then upgrade to Starter, Growth, or Pro for unlimited saves and advanced features.
Start with inline editing on smaller catalogs.
Best for small catalogs and trying BulkSheet.
Unlimited saves at a starter price.
Best for growing stores that outgrow the daily save limit.
Full catalog editing as you scale.
Best for stores with 500+ SKUs editing weekly.
For high-volume catalogs and frequent editors.
Best for high-volume catalogs that need to roll back saved changes and get priority support.
Yes. BulkSheet works on every Shopify store plan - Starter, Basic, Shopify, Advanced, and Plus. It's an embedded admin app installed from the Shopify App Store, not a separate storefront or theme change, so there's nothing to configure differently by plan tier and no theme code to touch. The bulk editor automatically respects your Shopify API rate limits regardless of your store plan, throttling and retrying requests in the background rather than failing when a large batch hits a limit. What does vary by plan is BulkSheet's own pricing tier (Free, Starter, Growth, Pro) - not the underlying Shopify plan you're on - which controls daily save quotas, undo retention, saved view and segment limits, and advanced features like scheduled edits and CSV export. AI agent access via the MCP server is included on every tier, including Free, though Free's per-request row limit is lower (50 vs. 250 on paid plans) and agent-driven writes still count against Free's daily save quota. See the pricing page for the full plan-by-plan breakdown.
We request these Shopify Admin API scopes: read_products, write_products, read_inventory, write_inventory, and read_locations. We use them only for product catalog editing and variant inventory in the bulk editor. We do not request or access customer data, orders, or financial records.
Load up to 10,000 products in one grid; larger saves run as Shopify bulk operations. Smaller edits write straight to Shopify's productSet and inventory APIs; larger catalog-wide updates are automatically routed through Shopify's asynchronous bulk-operation pipeline, which chunks the work, handles rate-limit throttling, and retries failed requests without you having to split the job yourself or babysit the batch. The product grid itself is virtualized, so browsing and editing stays fast whether you're looking at a few hundred products or the full catalog - only the rows currently on screen are rendered, not the whole result set. You'll see live progress tracking in the app while a large batch runs in the background, and the same preview-before-save and undo guarantees apply regardless of batch size, so a 10,000-product price change is previewed and reversible exactly like a 10-product one - there's no separate "bulk mode" with fewer safety nets.
Yes, on every plan. Expand a multi-variant product to see one row per variant, then edit variant prices, compare-at prices, SKUs, and inventory inline. Price templates work on variants too - select variant rows and apply, for example, 20% off with .99 endings in one pass.
Yes, on all paid plans. Pick a column (title, vendor, SKU, tags, or description), enter the text to find and its replacement, preview the matching rows, and apply. Descriptions are HTML-aware: only visible text is replaced - links and styling are never modified. Nothing is saved to Shopify until you press Save, and the whole replacement is one undo step.
Yes, on all paid plans. Choose a price template (e.g. 20% off with .99 endings), preview the affected products, and pick a run time plus an optional auto-revert time. The edit runs in the background, appears in Edit History, and the revert restores the previous prices automatically - ideal for weekend sales. Each scheduled edit can target up to 5,000 products. Edits of up to 500 products start within about a minute of the time you set. Larger edits run through Shopify's bulk-operation pipeline: if another bulk operation (such as a large save) is already running on your shop, BulkSheet keeps retrying every minute for up to 30 minutes, then stops and emails you that it could not start. Starter supports up to 3 pending scheduled edits, Growth up to 5, and Pro is unlimited.
Yes, for product metafields. Open the column chooser, pick metafield definitions from your store, and they appear as editable grid columns - text, number, boolean, URL, date, color, JSON, money, rating, and measurement types edit inline; reference and list types are shown read-only. Variant metafields aren't supported yet. Edits validate as you type, save with the rest of the row, and show up in undo and Edit History. Free includes 5 metafield columns, Starter 10, Growth 15, and Pro unlimited.
Yes, on every plan, and nothing is saved until you review it. In the bulk editor choose Import CSV, pick a .csv file, and check how each column maps - rows are matched to your existing products by Variant ID, URL handle, or SKU, and BulkSheet's own export includes a Variant ID column for exactly this. Title, description, status, vendor, tags, price, compare-at price, SKU, pinned product metafields, and stock at one location you pick can be imported. The matched products load into the grid as ordinary unsaved changes, so you can review every one, keep editing, undo the import's cell changes in one step (stock changes have their own Remove button instead), and save when you're ready. A blank cell never changes anything, and an import only updates products that already exist - it never creates or deletes products. One import handles up to 2,000 products and 2,000 changed cells; on Free it loads at most as many products as you have saves left today.
Yes. All plans: use Undo (or Cmd+Z) in the editor to step back through pending edits before or after save. On paid plans, draft undo is preserved across sessions (30 days on Starter, 90 days on Growth, 180 days on Pro, up to 50 steps). To revert changes already saved to Shopify, Pro merchants can use Edit History → Revert (when available in Settings).
Install BulkSheet on your Shopify store in under a minute. Free forever - 100 product saves a day.
Install on Shopify