AI Product Tools
Product Tools

AI Bulk Product Editor

A spreadsheet-style grid for viewing and editing every AI-capable and core WooCommerce field across many products at once, with inline AI generation.

The AI Bulk Product Editor is a full-catalog grid: every row is a product, every column is a field, and cells you edit are kept as local drafts until you explicitly save. It is also where AI generation happens per cell or, on Business, for a whole selection in one run.

Plan note

The grid itself, inline editing, undo/redo, saved views, CSV export, filters, and generating AI content one cell or one row at a time are all available on Free. Generating AI content for many selected products in one run needs Business.

Before you start

  • Reaching this page needs WordPress's manage_woocommerce capability, which is stricter than the AI Product Tools menu's own capability. A user who can open the Toolkit but lacks this capability will not see this page in the menu at all.
  • Reach it from AI Product Tools > AI Bulk Product Editor, from Products > AI Bulk Product Editor, or from the AI Bulk Product Editor item in the top admin bar.
  • An AI provider must be connected in Settings before any Write or Generate Bulk action will do anything.
AI Bulk Product Editor grid with the search bar, filters button, columns button, AI bulk actions band, and the product rows
Default columns: Product, Title, SKU, Categories, Price, AI Status, Short Description, and more to the right.

The grid

The utility toolbar above the grid (visible in the screenshot above, between Columns and the density/undo-redo controls) also carries a Content Bank link. It opens the full write history for this tool, filtered to the Product Editor; once at least one result is waiting in review, the same link switches to the Review tab instead and shows a count badge.

Columns

Every column is one of: Core (Product, Title, SKU, Status, Product Type, Categories, Price, AI Status), Content (Short Description, Full Description, Tags, FAQ), SEO (SEO Title, Meta Description, Focus Keyword, Slug), Media (Featured Image, Gallery, Alt Text, Missing Alt), or AI (Last Generated, Review Status, Issues). Only Title and Price columns sort by clicking their header; every other header click does nothing.

Click Columns to open the column manager: drag the handle to reorder, tick a column to show it, use the pin icons to pin a column left or right, and each column's width shows in pixels. A group's own toggle shows or hides every column in that group at once. Reset to default restores the original set; Save as view carries your column choices into a saved view.

Columns side panel with grouped checkboxes, drag handles, pin controls, and column widths in pixels
Status, Product Type, Focus Keyword, Slug, Featured Image, Gallery, Missing Alt, Last Generated, Review Status, and Issues are hidden by default; everything else starts visible.

Full column reference:

ColumnGroupDefault visibleEditableAI-capableNotes
ProductCoreYesNoFixed width, pinned
TitleCoreYesYesYesRequired; the only other server-sortable column besides Price
SKUCoreYesYes
StatusCoreNoYesPublish/Draft/Pending/Private
Product TypeCoreNoNoFlags a type outside simple/variable/grouped/external
CategoriesCoreYesYesChips from existing categories only; never creates a new term
PriceCoreYesYesRegular price only; not editable for variable or grouped products
AI StatusCoreYesNoGenerated/Not Generated plus a per-type breakdown
Short DescriptionContentYesYesYes
Full DescriptionContentYesYesYes
TagsContentYesYesYes
FAQContentYesYesYesErrors on an empty question or answer; warns on duplicate questions
SEO TitleSEOYesYesYesWarns past 50 characters, errors past 60
Meta DescriptionSEOYesYesYesWarns past 150 characters, errors past 160
Focus KeywordSEONoYesYesWarns if SEO content exists with no keyword
SlugSEONoYes
Featured ImageMediaNoNoDisplay only
GalleryMediaNoNoDisplay only
Alt TextMediaYesYesYesPer attachment; warns on any missing alt text
Missing AltMediaNoNo
Last GeneratedAINoNo
Review StatusAINoNo
IssuesAINoNoClient-computed, always present

Filters

Click Filters to open a panel of chip groups mirroring every filter the grid supports: free-text Search, Category, Status, Stock, Special (Featured, On Sale), Visibility, AI Status (Processed/Not processed by AI, with a content-type sub-filter), Content (With Both, Full Only, Short Only, Has Tags, No Descriptions, No Full, No Short, No Tags), Type (Simple, Variable, Grouped, External), Media (Has/No Image, Has/No Gallery), and Inventory (Has/No SKU). Active filters also show as removable chips with a Clear all link, and the header shows a live {n} filters count.

Filters panel with Category, Status, Stock, Special, Visibility, AI Status, Content, Type, Media, and Inventory chip groups
Filters combine; use the AND/OR toggle inside the panel to control how.

A filter combination that matches nothing shows a plain empty grid rather than an error.

Grid showing 0 products after a search that matches nothing, with the filter panel still open
Clear the search or the active filter chips to get rows back.

Inline editing

Click into any cell to start typing, or press Enter or F2 to open its full editor. Open a product's row drawer (the chevron at the end of its row) to edit several of its fields at once across Content, SEO, Media, and FAQ tabs; only tabs with content show. Every edit is kept as a local draft, shown in the sticky pending changes bar at the bottom, until you click Save changes.

Per-row AI generation (every plan)

Click a cell's AI generate affordance (or use the row drawer) to write that one field for that one product. The result lands in the cell as an AI DRAFT badge over the proposed new value, with small accept and reject icons right there.

Grid cell showing an AI DRAFT badge, the proposed new title, and small accept and reject icon buttons
Accepting turns the cell into a normal dirty edit; rejecting discards the suggestion.

Open the row drawer for the fuller picture: each suggested field shows as an AI SUGGESTION card with the old text struck through in red above the new text in green, and Accept, Reject, Edit, and Regenerate buttons.

Row drawer showing AI suggestion cards for Title, Short Description, Full Description, and Tags, each with a word-level diff and Accept, Reject, Edit, and Regenerate buttons
Each card strikes through the old text in red above the new text in green. The diff is word-level, so when only part of a field changes, just that part is marked rather than the whole value.

Once you accept a suggestion, that field shows a MODIFIED chip and a Revert link next to it, the same as any other manual edit.

Row drawer Title field showing a MODIFIED chip and a Revert link after accepting its AI suggestion
Revert discards this field's draft and falls back to the product's saved value.

Bulk AI generation (Business)

The AI bulk actions band above the grid shows a scope control (Selected, Page, All, each with a live count), a Fields to Generate popover, a Mode pill, and, once at least one product is selected, a Generate Bulk button.

AI bulk actions band with 2 selected, scope buttons for Selected, Page, and All, and the Generate Bulk button
Scope decides which products the run covers: just your checked rows, the current page, or every product the active filters match.

Fields to Generate lists every AI-capable column grouped the same way as the Columns panel, defaulting to whichever ones are currently visible.

Fields to Generate popover with grouped checkboxes for Title, Short Description, Full Description, Tags, FAQ, SEO Title, Meta Description, Focus Keyword, and Alt Text
Your picks are remembered for next time.

Mode chooses between filling only blank fields or replacing everything selected.

Mode popover with Fill empty fields only and Replace existing content options and their descriptions
"Fill empty fields only: Generate only where a field is blank, never overwrites content you already have." "Replace existing content: Overwrite every selected field, even ones that already have content."

Generate Bulk confirms with the exact scope before running:

Confirmation dialog reading Generate for 2 products times 8 fields, 16 generations, with Cancel and Generate Bulk buttons
In Replace mode the dialog adds a line warning that existing content will be overwritten.

While it runs, the same band shows a live progress bar and a Cancel button.

Generating progress row showing 2 of 16 generations complete, 12 percent, with a Cancel button
Each generation is one field on one product; 2 products times 8 fields here means 16 generations.

When it finishes, review the results from the pending changes bar below, the same as any per-row suggestion.

Selecting products still shows the scope control, Fields to Generate, Mode, and Generation settings; only the Generate Bulk button itself is replaced by an amber "Business plan adds..." strip naming your current scope.

Free plan AI bulk actions band with a Business plan adds strip in place of the Generate Bulk button
"Business plan adds | Fill the empty fields on the 1 product in one run"

Clicking the strip opens 3 benefit bullets and a Compare Free and Business button.

Popover reading Business applies a single generation action to your selection, a whole page, or everything matching your current filter, with 3 bullets and a Compare Free and Business button
Free keeps per-product AI generation with your own key, and every edit you can make today, per the popover's own footnote.

The full run control is available: pick a scope, fields, and mode, then Generate Bulk.

Generation settings

The Generation settings button opens a drawer with two tabs. General holds the site-wide content defaults (AI provider, model, language, writing style, brand context, keep existing images); without the Settings capability these show disabled with a hint to ask for access, regardless of plan.

Generation settings General tab with AI engine provider and model, content defaults language and keep existing images, and custom prompt writing style and brand context fields
These are the same defaults the main Settings page edits.

Tools gives each of the 7 generatable tools its own panel on the right, chosen from a rail on the left. Plan-gated fields inside a tool's panel show a small purple Business badge when you have access,

Tools tab, Title panel, with a Content structure chip, Max length, Tone, and Mode, Focus Keywords, and Sources fields tagged Business Plan
On Business these controls work; the badge is informational.

or collapse into a small upgrade card on Free:

Title panel on Free with the same Content structure chip, Max length, and Tone fields, and a Business upgrade card reading Business plan adds full control over title generation, with an Upgrade to Business button
Short Description, Full Description, and Tags have no gated fields at all; Title, FAQ, SEO Meta, and Alt Text each lock a handful.

This panel's shape also depends on execution mode

Title, FAQ, SEO Meta, and Alt Text are also shaped by whether that tool currently runs on a content structure or on legacy custom prompts (set per generator, site-wide, in Content Templates; see Custom prompts (Advanced) mode). On a content structure, this tab shows that structure's own embedded editor instead of the generic fields pictured above, since the structure already decides them. Either way, Free and Business always show the identical fields for whichever mode is active, differing only in which ones are locked.

Undo, redo, and the pending changes bar

Undo (⌘Z) and Redo (⇧⌘Z) step through a client-side history of up to 100 batches; they reverse local drafts, not anything already saved. The sticky bar at the bottom of the grid appears whenever there is something to act on: a dirty-cell count, warning and error counts, a generated/failed/pending summary after a run, Accept all/Reject all for pending suggestions, Review changes, Discard (with a confirm step, since Undo can bring it back), and Save changes.

Pending changes bar showing 0 changes pending, 22 warnings, 14 generated, 0 failed, 16 pending, with Accept all, Reject all, Review changes, Discard, and Save changes
Save changes is disabled while a blocking (error-severity) validation issue exists anywhere in the pending set.

Protection against overwriting a colleague's change

Every save carries a token tied to the product's own last-modified state. If someone else changes a product directly (in the product editor, through another browser, or via any other tool) while you still have unsaved edits open for it here, clicking Save changes shows a conflict strip above the pending bar instead of silently overwriting their change:

Conflict strip reading 1 product changed on the server while you were editing, with Reload them and Overwrite anyway buttons, above the pending changes bar
Reload them discards your local draft for that product and refetches the live version; Overwrite anyway (a second confirmation) saves yours over theirs anyway. Anyone who can edit the product can use Overwrite anyway; it is not limited to a particular plan or role.

Saved views

Arrange your columns, filters, and sort the way you want, open the Saved views dropdown (next to the page title; it reads All Products with nothing active), and choose Save current as view....

Save current as view dialog with a View name field, a Make this my default view checkbox, and Cancel and Save view buttons
Up to 25 views per user; names up to 80 characters.

Reopen the dropdown and hover or click a saved view to open its own submenu: Apply this view, Set as default (greyed out once it already is), and Delete view.

Saved views dropdown listing a Needs SEO meta view above Save current as view
Each view's own submenu offers Apply this view, Set as default, and Delete view.

AI-touched content marking

Once a field has been written by AI anywhere (this panel, the per-product panel, a CSV import, or Automation), the product carries a small AI badge. It shows in the AI Status column here, with a per-type breakdown in its tooltip, and as a narrow AI column on WooCommerce's own Products list.

WooCommerce product list row with a purple-outlined AI badge in a narrow AI column
Hovering the badge shows which content types: here, "AI processed: description, tags, seo meta, faq."

A manual edit does not clear this mark by itself; an administrator can reset it in bulk from Settings, covered in History and safety.

Keyboard shortcuts

KeyAction
Enter or F2Open the focused cell's editor
AAccept the focused cell's pending AI suggestion
RReject the focused cell's pending AI suggestion
GRegenerate the focused cell's suggestion
EscapeNo effect once a cell editor is open (does not close it)
⌘Z / Ctrl+ZUndo
⇧⌘Z / Ctrl+YRedo
⌘S / Ctrl+SSave, inside the single-field cell editor modal

A, R, and G are ignored if held with any modifier key, or on key repeat, so they never collide with Select all or Reload.

Limits

LimitValue
Batch save30 requests per 60 seconds per user; 50 patches per request
Hydrate (loading row data)100 product ids per request
"All" scope (select all filtered)Resolves in pages of up to 200 ids; unavailable while a content filter like No Descriptions or Has Tags is active
Grid page sizeUp to 1000 rows (not virtualized, so a very large page size is also your real memory cost)
Saved views25 per user, name up to 80 characters
Undo/redo history100 batches

Free vs Business

CapabilityFreeBusiness
The grid itself: all columns, inline editing, filters, column manager, row drawerFull accessFull access
Per-row and per-cell AI generationFull accessFull access
Undo/redo, saved views, CSV exportFull accessFull access
Multi-row Generate Bulk runBusiness Replaced by an upgrade stripIncluded
Generation Settings > Tools, per-tool advanced fields (Title, FAQ, SEO Meta, Alt Text)Business Pro or Business; collapses to a small upgrade card per locked fieldIncluded
Generation Settings > General (shared content defaults)Full access (needs the Settings capability, any plan)Full access
Overwrite a save conflict ("Overwrite anyway")Full accessFull access

Troubleshooting