> ## Documentation Index
> Fetch the complete documentation index at: https://docs.markifact.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Product Input

> Patches ProductInputs in an API data source using an optional Google update mask, one or many at once (up to 200)

Patches ProductInputs in an API data source using an optional Google update mask, one or many at once (up to 200). Processing is asynchronous; the returned ProductInput is the submitted resource, not the final processed Product.

|                       |                            |
| --------------------- | -------------------------- |
| **App**               | Google Merchant Center     |
| **Operation ID**      | `gmc_update_product_input` |
| **Type**              | Action                     |
| **Connection**        | `gmc` (required)           |
| **Credits per run**   | 1                          |
| **Agent / MCP tool**  | Yes                        |
| **Requires approval** | Yes (write operation)      |

## Inputs

| Field                     | Type                                          | Required | Default | Description                                                                                                                                                                                                                                                                                                                                                   |
| ------------------------- | --------------------------------------------- | -------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `account`                 | DynamicAccount                                | Yes      | -       | Select the Merchant Center account that owns the product inputs.                                                                                                                                                                                                                                                                                              |
| `update_type`             | string or SelectableOption                    | Yes      | -       | Choose whether to update a single product or many at once. Options: single or bulk.                                                                                                                                                                                                                                                                           |
| `data_source_id`          | string or SelectItem                          | Yes      | -       | Primary or supplemental API data source ID containing the product inputs. Only API data sources support ProductInput writes. Applies to every row in bulk mode.                                                                                                                                                                                               |
| `product_input_id`        | string or SelectItem                          | No       | -       | Product input identifier, usually contentLanguage~~feedLabel~~offerId, for example en~~US~~sku123. Use Google's unpadded base64url form when an identifier component contains /, %, or \~. Required for single mode.                                                                                                                                          |
| `update_mask`             | string                                        | No       | -       | Optional Google FieldMask of ProductInput fields to update. Product attribute masks can only name top-level attributes; custom attributes use the customAttributes. prefix. A masked field omitted from product\_input is deleted. If omitted, Google updates all populated fields. Full replacement with \* is not supported.                                |
| `product_input`           | object or string                              | No       | -       | Official Google Merchant API ProductInput patch body as an object or JSON string. Use Google's REST camelCase field names exactly. The resource name is set from account and product\_input\_id. An empty object is valid when deleting every field in update\_mask. Note: Google hard-limits updates to twice per day per product. Required for single mode. |
| `structured_data`         | array (also accepts a comma-separated string) | No       | -       | Use only when update\_type is bulk. A list of up to 200 rows, each with product\_input\_id (required), product\_input (the official ProductInput patch body), and an optional update\_mask. Note: Google hard-limits updates to twice per day per product.                                                                                                    |
| `return_detailed_results` | boolean                                       | No       | `False` | Bulk mode only. If true, returns per-row results and does not raise on partial failures.                                                                                                                                                                                                                                                                      |

### SelectItem

| Field   | Type   | Required | Default | Description                                                                                          |
| ------- | ------ | -------- | ------- | ---------------------------------------------------------------------------------------------------- |
| `value` | string | Yes      | -       | The value of the selectable item.                                                                    |
| `label` | string | Yes      | -       | The label of the selectable item, used for display purposes. If not provided, defaults to the value. |

### SelectableOption

| Field   | Type   | Required | Default | Description |
| ------- | ------ | -------- | ------- | ----------- |
| `value` | string | Yes      | -       |             |
| `label` | string | Yes      | -       |             |

## Output

**Type**: `Dict`

Returns the updated ProductInput and applied update mask.

**Fields**: `product_input`, `update_mask`
