publ betaReference (MCP guide)
Open publ console

commerce_product_settings_get

# commerce_product_settings_get

Inspect one existing X00004 product's editable settings and preserved option/image data. Read the [shop product guide](../guides/commerce-products.md) for the required COMMERCE_V2 configuration, exact installed-store/channel scope, current delegate policy and recovery. These prerequisites apply to reads as well as writes.

Supply only channelCode and an observed productId. `COMMERCE_PRODUCT_SETTINGS` returns product, the verified channel currency and a workflow-specific revision for [commerce_product_settings_apply](commerce_product_settings_apply.md). Repeated reads check the selected store/product, price currency, unique option-group/value identities and their parent relationships. Prices retain source strings/numbers in the returned projection; the writer accepts decimal strings.

Related category, label, badge and shipping descriptions have independent lifecycles. The settings revision compares product-owned fields and association IDs, not a guarantee that every linked description stays unchanged. This get does not discover all valid replacement associations or create them; use only observed IDs, which the writer verifies in the same store when requested. Omitted associations are preserved.

The result supplies the exact product detail destination. It makes no write or journal. A controls-selection revision is not interchangeable with this settings revision.

## Example

```json
{"channelCode":"selected-channel","productId":"observed-product"}
```

Replace both selectors with current observed values.

## Buyer input-field selection

Inspect the returned productInputOptionFields and copy its exact productInputOptionFieldId for edit/remove; do not use a numeric row ID or title. Creation requires an empty array, while edit/remove require exactly one same-product/store field with known metadata. A successful general settings read does not itself validate every input-field write or establish buyer checkout behavior. That record predates combined add-on edits; Actual save/console/restoration remains unverified, and a general settings read does not approve every option combination.

## Existing paid add-on selection

[settings.addons](commerce_product_settings_apply.md#existing-paid-add-on-options) uses this same reader and revision. Inspect productAddonGroups and its productAddonItems; copy the business productAddonGroupId/productAddonItemId rather than numeric row IDs or names. The writer requires one existing group with one to three ordered, unique, same-store items and known metadata. MCP also offers [group creation and single-item append](commerce_product_settings_apply.md#create-an-add-on-group-or-append-one-item): inspect an empty group array for create or the exact existing group below three items for addItem. The same settings revision applies. Creation needs a response-returned durable group/item identity, and cannot be combined with independent input-field creation. Receipt loss cannot be resolved by a matching later read or another save; only a persisted receipt supports read-only recovery. Fixture configuration cleanup is not physical deletion or original child-ID restoration.

## Inputs

| Field | Required here | Contract |
| --- | --- | --- |
| `channelCode` | Yes | string; min length 1; max length 512; The exact channelCode selected through channel discovery. Do not supply a URL, channel numeric ID, account ID or credentials. |
| `productId` | Yes | string; min length 1; max length 160; pattern `^[A-Za-z0-9_-]+$`; Exact resource identifier returned by this operation, never a title, unrelated row ID or URL. |