A modifier is an option a shopper picks when ordering that doesn’t create a new SKU, such as engraving text, gift wrap or a subscription interval. You define a modifier once, then attach it to any number of products. If an option needs its own SKU, price or stock, use a variant instead.
In the admin
Create a modifier:
- Go to Catalog → Modifiers.
- Under Add a modifier, enter a name (for example “Ships every”) and choose a type.
- Click Add. minipim generates the code from the name and opens the modifier editor.
- In the editor you can change the Name and Type. For choice types, use Add choice to add each choice, with a Label, a Value and an optional Price change (None, Fixed or Percent) plus an Amount. Text types have Max length, and numbers have Min and Max.
- Click Save changes.
Attach it to a product:
- Open the product and scroll to the Modifiers section.
- Choose one from Attach a modifier…, tick Required if the shopper must answer it, and click Attach.
- Use the arrows to reorder attached modifiers, toggle Required, or click the × to detach one.
The types in the admin are Select (single), Select (multi), Text (one line), Text (multiline), Number, Yes / no and File upload.
With the API
| Method | Path | What it does |
|---|---|---|
| GET, POST | /v1/modifiers | List or create modifier definitions |
| GET, PATCH, DELETE | /v1/modifiers/{id} | Read, update or delete a definition |
| GET, POST | /v1/products/{id}/modifiers | List or attach a product’s modifiers |
| PATCH, DELETE | /v1/products/{id}/modifiers/{modifierId} | Change isRequired/position, or detach |
curl -X POST https://api.minipim.com/v1/modifiers \
-H 'Authorization: Bearer pim_…' -H 'Content-Type: application/json' \
-d '{
"code": "gift_wrap",
"label": { "en_US": "Gift wrap" },
"type": "select",
"validation": { "options": [
{ "value": "none", "label": "No thanks" },
{ "value": "premium", "label": "Premium wrap" }
]},
"config": { "priceAdjusters": {
"premium": { "adjuster": "fixed", "amount_cents": 500, "currency": "USD" }
}}
}'
Product reads include modifierCount and hasRequiredModifiers. @minipim/sdk ships helpers for reading choices and price changes, such as getModifierChoices and applyPriceAdjuster. See the SDK. Full reference: api.minipim.com/docs.
Rules and limits
- API types:
text,textarea,select,multiselect,number,boolean,file. codemust start with a lowercase letter and use onlya-z,0-9and_. Codes are unique within an organization, and a duplicate returns 409.- Choices live in
validation.optionsas[{ value, label }], and values must be unique. Onlyselect,multiselectandbooleancan have choices. maxLengthapplies only to text types.minandmaxapply only tonumber, andmincan’t be greater thanmax.- Price changes live in
config.priceAdjusters, keyed by choice value. A fixed change is integer cents plus a 3-letter ISO currency. A percentage change is integerbasis_points. A price change for a value that isn’t one of the choices is rejected. - Changing
typeto one that can’t hold the stored choices or prices is rejected unless the same request replaces them. - Attaching a modifier that’s already on the product returns 409. Use PATCH to change it. Detaching is idempotent.
- Deleting a modifier removes it from every product it’s attached to.
- Modifiers imported from BigCommerce have codes starting with
bc_mod_. The next pull replaces their name, type, choices and prices, so make lasting changes in BigCommerce. See Connectors. - Every change emits a
modifier.*orproduct_modifier.*event for webhooks.
See also
- Variants — minipim variants are the sellable SKUs under a product. How variant axes work, generating a variant matrix, SKU rules, overrides and the variant API endpoints.
- 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.
- Connectors — Install the BigCommerce, Shopify and Headless connectors in minipim, run pulls and pushes, enable BigCommerce webhooks, and know what a wipe-mode pull replaces.
- Webhooks — Send signed minipim catalog events to your storefront: install the Headless connector, choose event groups, verify signatures, and debug deliveries.