---
page: products
sous-page: planning
route: /products/planning
statut: draft
version: 0.1
transverse-liées: [conventions, i18n, design-system, seo-eeat (brief)]
date: 2026-06-03
---

# CdC — `products/planning`

> **Optimisation produits** (entité `product_item`), sur **deux fronts** : la **fiche produit** (SEO organique) **et** les **attributs de flux** (Merchant). Reçoit des **keywords produits** ; brief EEAT adapté ; board jusqu'à publication / mise à jour du flux.

## 1. Objectif

Piloter l'optimisation SEO d'un catalogue : choisir **quels produits** travailler, produire/optimiser **title, description, schema Product, images** (page) **et** les **attributs Merchant** (flux), puis publier → met à jour `product_page` + `feed_status`.

## 2. Périmètre

- **Dans** : **inbox** de produits à optimiser (depuis import catalogue + keywords produits) ; **brief** (EEAT adapté fiche produit) ; **board de production** ; **portée** par item (`page` / `feed` / `both`) ; publication → maj `product_page` + flux.
- **Hors** : suivi post (→ `online`) ; perf (→ `stats`, en souffrance) ; import catalogue (→ `import-export`).

## 3. User stories *(persona : SEO e-commerce)*

- Je vois mes **produits prioritaires** à optimiser (mauvais titres, descriptions thin, flux en erreur).
- Je génère un **brief** pour optimiser une fiche.
- Je travaille **la page ET le flux** depuis le même item.
- À la publication, la fiche passe en `online` et le flux est mis à jour.

## 4. Fonctionnalités

- F1 — **Sélecteur de site global**.
- F2 — **Inbox** : produits à optimiser (depuis catalogue + keywords produits).
- F3 — **Brief EEAT** adapté fiche produit (USP, attributs, schema Product).
- F4 — **Board de production** + **portée** (`page` / `feed` / `both`).
- F5 — Édition **page** (title/description/schema/images) **et** **attributs flux** (titre flux, GTIN, catégorie Google, prix, dispo).
- F6 — **Publication** → maj `product_page` + `feed_status`.

## 5. UI / écrans

- **Board kanban** + calendrier ; panneau `product_item` à 2 onglets **Page** / **Flux**. **DnD** (R2). Tokens `design.md`. Responsive.

## 6. Données & actions

- **Affiché** : inbox, board, détail (page + flux).
- **Actions** : briefer, éditer page/flux, programmer, publier.

## 7. Modèle de données

```
product(id, site_id, sku, gtin?, title, description, brand?, google_category?,
        price?, availability?, locale, page_url?, created, updated)
product_item(id, site_id, product_id, scope, status, brief_ref?, assignee?,
        scheduled_for?, published_page_id?, created, updated)
   scope ∈ { page, feed, both } ; status ∈ { idea, brief, optimizing, review, ready, scheduled, published }
```

- **Deux entités** : publication → `product_item.published_page_id → product_page` (voir `online`).

## 8. API Hono

- `GET /sites/:siteId/products/inbox` · `GET …/items` · `/board` · `/calendar`
- `POST /sites/:siteId/products/items` · `PATCH …/:id`
- `POST /sites/:siteId/products/items/:id/brief` *(EEAT)*
- `POST /sites/:siteId/products/items/:id/publish` *(→ product_page + feed)*

## 9. Capacités requises *(fonctionnel — mapping modules TBD)*

Réception catalogue + keywords produits · brief EEAT · workflow d'optimisation (page **et** flux) · publication (page + flux).

## 10. Tools / capacités MCP

- `product_inbox` (read) · `product_board` (read)
- `product_brief` (write — EEAT) · `product_update` (write) · `product_publish` (write)

> Privé vs public-limité : **TBD**.

## 11. i18n

- Locale du produit (langue+pays). **Catégorie Google** et attributs flux dépendent du pays. Réf `localised-metadata`, `locale-content`.

## 12. Qualité *(réf. fiches des 128 par slug)*

- *Pour les fiches produites* : `structured-data` (Product/Offer/AggregateRating), `image-optimization`, `heading-hierarchy`, `localised-metadata`.
- A11y board clavier ; isolation **par site** ; noindex (app privée).

## 13. Critères d'acceptation

- [ ] Un produit à description « thin » remonte en inbox.
- [ ] Un item peut optimiser **page ET flux** (scope `both`).
- [ ] « Brief » génère un brief adapté fiche produit.
- [ ] **Publier** met à jour `product_page` + `feed_status`.
- [ ] Le **switch de site** isole tout.

## 14. Dépendances & risques · questions ouvertes

- **Dépend de** : `products/import-export` (catalogue), `keywords` (keywords produits), `seo-eeat`, `products/online`, `_transverse/conventions`.
- **Questions ouvertes** : édition du flux **dans SEO Insight** vs **dans le CMS/Merchant** (lié D2) ? schéma de brief produit.
