# noon_content_prepare_publish_queue_template (https://sellersheetai.com/docs/mcp-api/tools/noon_content_prepare_publish_queue_template)

> Build the ordered column spec for a noon Publish Queue sheet by merging noon's attribute schema for every category the sheet holds — call it before writing or extending the sheet.

Access: **READ** · toolset noon · family null

Category is per family (a column), not sheet-wide, so pass every distinct category code.

## Call it

MCP tool call:

```json
{
  "name": "noon_content_prepare_publish_queue_template",
  "arguments": {
    "store": "myStore-US"
  }
}
```

Tool API (early access — contact us):

```bash
curl -X POST https://api.sellersheetai.com/api/v1/tools/noon_content_prepare_publish_queue_template \
  -H "Authorization: Bearer $SELLERSHEET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"store":"myStore-US"}'
```

## Arguments

| Name | Type | Required | Description |
|---|---|---|---|
| `store` | string | yes | the noon account ref `<account>-<CC>` (name-country, e.g. 'myNoon-AE') — one of get_user_context's noon store_refs, verbatim. |
| `category_code` | string |  | a single code (legacy) — only when you have exactly one and no list. |
| `language` | string |  | 'en' (default) \| 'en_ar' — the latter emits paired _en/_ar columns for every localizable attribute. |
| `image_columns` | integer |  | main_image_url + image_url_2..N (default 8). |
| `category_codes` | object[] |  | all distinct category codes on the sheet, one per product family (from noon_content_ListCategories); preferred over category_code and wins when both are given. One of the two is required. |

## Result

- `data.category_codes` — every code merged, in request order; data.category_code: the same codes comma-joined.
- `data.language / data.image_columns` — as requested.
- `data.columns` — [{key (row 5), name (row 6), guide (row 4), required (gold name), tier formula | identity | mandatory | facet | optional, type TEXT | SELECT | NUMERIC | METRIC | UNIT | BOOL | DATETIME | FILE | JSONDICT | null, language 'en' | 'ar' | null, attribute_code, options, units, multivalued, max_values, min_characters, max_characters, categories (codes the column belongs to — empty = every family), mandatory_for (codes that require it)}].

## Gotchas

- The sheet is the Amazon Publish Queue's layout: row 1 banner, row 2 labels Store ✎ | Language ✎ | Last Result, row 3 their values, row 4 guides, row 5 keys (hidden), row 6 names, rows 7+ one row per SKU. Columns A–F are imagePreview, Partner SKU, Parent Group Key, Parent Child Variation, Size Variation, Category Code (noon's own bulk-template trio for variations); Brand, images and attributes follow. A row-5 key is `<attribute_code>[_en|_ar][#*]`: `_en`/`_ar` = the value's language, `#*` = several values in one cell, one per line (line order = sort); `main_image_url` / `image_url_<n>` = image slot n. Rows sharing a Parent Group Key are one product, each row one size with its own Partner SKU and Size Variation; the row marked Parent holds the product details (category, brand, images, attributes), Child rows only add sizes. A product without sizes is one row with the trio blank.