Every product has one of three statuses: draft, active or archived. Status is the one place where minipim enforces completeness: a product can only become active once its family’s required attributes are filled in.

In the admin

  1. Open a product under Catalog → Products.
  2. Use the Product status dropdown under the product name and pick draft, active or archived.
  3. If the page has unsaved edits, they’re saved first, then the status changes. If required attributes are missing, a message names them: “Can’t publish — Height, Width are required.”

To change many products at once, select them on the products list, click Status in the bulk bar, choose a New status and click Apply to N. The products list also has a status filter (All statuses, Draft, Active, Archived).

With the API

  • PATCH /v1/products/{id} with { "status": "active" }
  • POST /v1/products accepts status (default draft)
  • POST /v1/products/bulk-set-status with { "productIds": [...], "status": "archived" } (up to 500 ids, per-row results)
  • GET /v1/products?status=active to read only live products
curl -X PATCH https://api.minipim.com/v1/products/0b8c5d3a-… \
  -H "Authorization: Bearer pim_…" \
  -H "Content-Type: application/json" \
  -d '{ "status": "active" }'

A rejected publish returns 422 with one issue per missing attribute (attribute 'height' is required) in error.details.issues. See Errors and the full reference at api.minipim.com/docs.

What “required” means

An attribute is required on a product when its effective requirement in the family is required: the family’s per-attribute override if one is set, otherwise the attribute’s own setting. See Attribute families.

The check runs:

  • on create, when the product is created as active (single create and POST /v1/products/bulk);
  • on PATCH, when the status moves to active from anything else, even if the request only changes status;
  • on PATCH of attributes while the product is already active.

It does not run when you edit only the name, slug, tags or brand of an active product, and drafts are never blocked.

Rules and limits

  • New products default to draft. Duplicates are always created as drafts.
  • Variants have their own status and are never held to required attributes.
  • Channel required_attributes and readiness scores are informational. They never block a status change.
  • archived has no special behavior in the API. List endpoints return every status unless you pass ?status=, so storefronts should filter to active.
  • Status changes emit product.updated with status in changed_fields.

Connectors

  • When the BigCommerce connector pushes a product, only active is sent as visible. Shopify receives ACTIVE, DRAFT or ARCHIVED to match.
  • On pull, a visible BigCommerce product arrives active and a hidden one draft. Shopify statuses map one to one. Imported statuses are written as-is, without the required-attribute check.
  • A BigCommerce store/product/deleted webhook archives the matching product instead of deleting it.

See Connectors for the rest of the sync behavior.

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.
  • Attribute families — Attribute families define which attributes a minipim product carries: attaching attributes, requirement overrides, ordering, moving products, deletion.
  • Channels and readiness — Channels are where your catalog is sold. Set per-channel required attributes, read readiness scores, and learn how channel-specific values and deletes work.
  • Bulk editing — Change many products at once: set an attribute, status, tags or categories, move family, or delete. Up to 500 ids per API call, with a result for each product.