Bulk editing applies one change to a list of products, such as setting an attribute, changing status, editing tags or categories, moving family, or deleting. Each product is handled on its own. If one fails, the rest still go through, and you get a result for each product.

In the admin

  1. Go to Catalog → Products and filter the list down to what you want to change.
  2. Tick products, or tick the checkbox in the header row to select the whole page. A bar appears showing how many are selected.
  3. Choose an action:
    • Move family: pick a destination and Preserve — abort row if data would be lost or Drop unsupported attributes.
    • Set attribute: choose an attribute and enter the value.
    • Categories or Tags: pick Add to existing, Remove from existing or Replace existing.
    • Status: Draft, Active or Archived.
    • Delete: type delete to confirm. This can’t be undone.
  4. Click the apply button, for example Apply to 25. The bar shows how many were updated and lists up to 50 failures with the reason.

Selection only covers the current page of 25 products, and it clears when you change page or filters. For larger batches, use the API.

With the API

All endpoints take productIds (1–500 UUIDs) and return { results: [{ productId, ok, error? }] }.

Path (all POST)Body beyond productIds
/v1/products/bulk-set-attributecode, locale, channel, value, optional clear
/v1/products/bulk-set-statusstatus
/v1/products/bulk-set-tagsmode (add/remove/replace), tags
/v1/products/bulk-set-categoriesmode (add/remove/replace), categoryIds
/v1/products/bulk-move-familyfamilyId, mode (preserve/drop_unsupported)
/v1/products/bulk-delete—
curl -X POST https://api.minipim.com/v1/products/bulk-set-attribute \
  -H 'Authorization: Bearer pim_…' -H 'Content-Type: application/json' \
  -d '{ "productIds": ["…", "…"], "code": "material",
        "locale": null, "channel": null, "value": "cotton" }'

/v1/products/bulk is different. It creates up to 500 new products and is what CSV import uses. Full reference: api.minipim.com/docs.

The MCP server has a bulk_update_products tool. It runs a dry run unless you pass apply: true, and takes up to 100 ids per call.

Rules and limits

  • Set attribute merges into the product’s existing values and only touches the (code, locale, channel) you send. value: null clears just that one value, and clear: true removes every value for the code.
  • A row fails if the attribute isn’t in that product’s family, or if the value fails the attribute’s type or option checks.
  • Set attribute and Move family check the family’s required attributes on every product, drafts included. A product missing a required value fails the row until you fill it in.
  • In the admin, Set attribute writes localizable attributes to en_US and always writes the shared value, not a channel-specific one. Variant-axis attributes aren’t offered.
  • Move family in preserve mode fails a product that has attributes the new family doesn’t include. drop_unsupported deletes those values and reports droppedCodes.
  • Tags are normalized before the mode is applied, so removing "Summer Sale" removes summer-sale. See Tags. Replacing with an empty list clears all tags.
  • Categories in add mode skip ones already assigned. replace with an empty list removes every category.
  • Bulk delete removes the products and everything that belongs to them, such as variants and links. Uploaded files remain.
  • Every changed product emits its own product.updated or product.deleted event, so a 500-product edit sends 500 webhook events.

See also

  • Products — How minipim products work: family, slug, attribute payload and tags, plus creating, editing, duplicating and deleting them in the admin or via the API.
  • CSV import — Create products from a CSV file: map columns to attributes, how cell values are converted for each type, the 500-row limit, and how failed rows are reported.
  • Tags — Free-form tags on products and content pages: how minipim normalizes them, the limits, filtering with ?tag=, and listing the tags in use with counts.
  • Attribute families — Attribute families define which attributes a minipim product carries: attaching attributes, requirement overrides, ordering, moving products, deletion.