Media > AI活用ユースケース > マーケティング > 小売店で、商品の特長メモ・売価・季節の訴求から店頭POPの見出しと説明文の案を作り、価格と産地の表示のルールに合う案だけを選べるようにする

小売店で、商品の特長メモ・売価・季節の訴求から店頭POPの見出しと説明文の案を作り、価格と産地の表示のルールに合う案だけを選べるようにする

実装ステータス:構成例 技術的に実現可能な構成として設計したもの。自社未検証

販促担当がまとめたPOPの依頼表から、商品ごとに見出しと説明文の案を3つずつ作ります。売価と比較の価格は売価マスタと履歴から規則で差し込み、表示のルールに合わない案を外したうえで、担当が1つを選んで店へ配ります。

サマリー
生成AI
ChatGPT/Claude/Gemini
連携・自動化
Google Apps Script/Python
対象業界
EC/その他/小売
対象部門
マーケティング
対象業務
内容確認・チェック/書類作成
主な課題
属人化している/書類作成に時間がかかる/確認ミスが多い
AIで行う処理
生成
主な効果
入力漏れ削減/品質標準化/工数削減
導入難易度
★☆☆☆☆
実装レベル
半自動化
費用感
API連携(中)
人間の確認
条件付き
現在工数
64h/月
AI導入後
24h/月
想定削減
63%
年間削減
480h
モデル条件による試算値です。実在企業の実績ではありません。

01導入前 / 導入後の業務フロー

導入前(Before)
  1. 仕入担当が、翌週の特売と新商品の一覧に特長メモを付けて販促課へ送る
  2. 販促担当が、商品ごとに見出しと説明文を考え、POPの依頼表に書く
  3. 販促担当が、売価マスタを開いて特売の売価(税込)を写す
  4. 「当店通常価格」を載せる商品は、前の週のPOPや記憶から通常の売価を写す
  5. 産地や「国産」の文言を、特長メモのとおりに写す
  6. 課長が依頼表を流し読みし、木曜日に各店へ配る
導入後(After)
  1. 人仕入担当が、POPの依頼表に商品コード・訴求のテーマ・特長メモ・POPの大きさを書く(水曜日の12時まで)
  2. 自動依頼表を締め、商品マスタから商品名と原産地、売価マスタから特売の売価(税込)を引く
  3. 自動依頼表の行ごとに、案を作る依頼を1行ずつのファイルにまとめ、まとめて送る
  4. 自動戻ってきた案に、文字数・禁止表現・数字の混入・根拠の有無の規則を当て、合わない案を外す
  5. 自動売価の履歴から、比較の価格を載せてよいかを規則で判定する
  6. 自動残った案と、差し込む売価・比較の価格を、選択用の表に書き出す
  7. 人販促担当が商品ごとに案を1つ選び、必要なら言葉を直す
  8. 人課長が「比較の価格あり」と「案が残らなかった」商品だけを確かめ、木曜日に各店へ配る
各工程の詳しい説明を読む
  1. 仕入担当が、翌週の特売と新商品の一覧に特長メモを付けて販促課へ送る
  2. 販促担当が、商品ごとに見出しと説明文を考え、POPの依頼表に書く
  3. 販促担当が、売価マスタを開いて特売の売価(税込)を写す
  4. 「当店通常価格」を載せる商品は、前の週のPOPや記憶から通常の売価を写す
  5. 産地や「国産」の文言を、特長メモのとおりに写す
  6. 課長が依頼表を流し読みし、木曜日に各店へ配る

(a)文案を考える時間が足りない。 1枚の見出しと説明文を考えるのに4分ほどかかり、週120枚では8時間です。締め切りの水曜日には、前の週の文案を少し変えて済ませる枚数が増えます。

(b)「当店通常価格」の根拠を誰も確かめていない。 4番目で写す通常の売価が、最近8週間のうち何週間その値段で売っていたかを、誰も履歴で見ていません。 前の週に特売をしていた商品だと、通常の売価で売った期間はほとんど無いこともあります。

(c)産地の書き方がメモ頼みになる。 特長メモに「国産」と書かれていれば、そのまま写します。仕入先が途中で変わり、商品マスタの原産地が変わっていても、メモは古いまま残ります。

(d)見出しの言葉が強くなりがち。 目立たせようとして「日本一」「最安値」「絶対おいしい」といった言葉が入ります。課長の流し読みでは、120枚のうちの数枚を見落とします。

(e)文案の良し悪しが担当者の経験で決まる。 経験の長い担当は食べ方や季節の言葉を引き出しから出せますが、異動してきたばかりの担当は、商品名を大きく書くだけのPOPになりがちです。 担当が替わるたびに売場の印象が変わります。

  1. 【人】 仕入担当が、POPの依頼表に商品コード・訴求のテーマ・特長メモ・POPの大きさを書く(水曜日の12時まで)
  2. 【自動】 依頼表を締め、商品マスタから商品名と原産地、売価マスタから特売の売価(税込)を引く
  3. 【自動】 依頼表の行ごとに、案を作る依頼を1行ずつのファイルにまとめ、まとめて送る
  4. 【自動】 戻ってきた案に、文字数・禁止表現・数字の混入・根拠の有無の規則を当て、合わない案を外す
  5. 【自動】 売価の履歴から、比較の価格を載せてよいかを規則で判定する
  6. 【自動】 残った案と、差し込む売価・比較の価格を、選択用の表に書き出す
  7. 【人】 販促担当が商品ごとに案を1つ選び、必要なら言葉を直す
  8. 【人】 課長が「比較の価格あり」と「案が残らなかった」商品だけを確かめ、木曜日に各店へ配る

7番目が、この設計の分かれ目です。 AIの案をそのまま配ることはしません。販促担当が選ぶ作業は残しますが、白紙から考える作業が、3つの中から選んで直す作業に変わります。

8番目で課長が見るのは、すべてではありません。 比較の価格を載せる商品と、案が残らなかった商品だけです。残りは、規則の点検を通った案から販促担当が選んだものなので、流し読みに時間を使いません。

5番目をAIの外に置いているのは、価格の表示が法令の考え方に関わるためです。 比較の価格を載せてよいかは、売価の履歴という数字だけで決まります。言葉を作る仕事と、数字で決まる仕事を、最初から分けておきます。

02今回想定するシステム構成

構成図
仕入担当 ── POPの依頼表(スプレッドシート)
              │ 商品コード/訴求のテーマ/特長メモ/POPの大きさ
              ▼【水曜12時に締める】
Python ── 商品マスタ(商品名・原産地)と売価マスタ(特売の売価・税込)を引く
              │ 依頼を1行ずつ JSONL にまとめる
              ▼
OpenAI API Batch(/v1/responses、構造化出力)
              │ 見出しと説明文の案 × 3、根拠にしたメモの文言
              ▼【24時間以内に戻る】
Python ── 規則の点検(文字数/禁止表現/数字の混入/根拠)
       ── 売価の履歴から比較の価格の可否を判定
              ▼
選択用の表 ── 販促担当が1つ選ぶ ── 課長の確認
              ▼
POPのテンプレート(各店で差し込み印刷)
役割想定する製品代替候補
処理ChatGPT(OpenAI API の Batch API と構造化出力)Claude API、Gemini API
集計Python(マスタの引き当て、規則の点検、比較の価格の判定)Google Apps Script
台帳Google スプレッドシート(依頼表と選択用の表)Microsoft 365 のオンラインの表計算

商品マスタ、売価マスタ、売価の履歴は、新しく足すものではありません。 この構成はそれぞれを読むだけで、どのマスタにも書き込みません。 POPのテンプレートも今のものを使い、差し込む列が増えるだけです。

点検の処理を Python で書くのは、売価の履歴が大きいからです。 22店舗・数千品目の日別の売価を8週間分読むので、表計算のスクリプトでは時間がかかります。依頼表の読み取りから結果の書き出しまでを、1本の処理にまとめます。

AIの呼び出しは、Batch API でまとめて行います。 Batch API は非同期の一括処理の仕組みで、公式には同期のAPIに比べて50%安く、別枠の高い利用上限があり、各バッチは24時間以内に完了するとされています。POPは翌日の木曜日に配れればよいので、すぐに答えが返る必要はありません。 週120枚の依頼を水曜日の昼に1回で送り、夕方から翌朝までに戻ってきた結果を点検します。

依頼は .jsonl のファイルにまとめます。 1行が1つの依頼で、各行に一意の custom_id を付けます。対象のエンドポイントには /v1/responses を選べます。1つのバッチに入れられるのは50,000件まで、ファイルは200MBまでです。週120件なら、上限を気にする必要はありません。

03どうやって実装するのか

Step1

処理の起点を決める

毎週水曜日の12時に、依頼表を締めたところで動かします。 仕入担当が行を足し終えた時刻で区切り、それ以降に足された行は翌週に回すか、販促担当が手で作ります。締める時刻を決めておかないと、バッチを送った後に足された行が漏れます。

送った後は、30分ごとにバッチの状態を確かめる処理を動かします。 状態が completed になったら結果を取り出し、規則の点検に進みます。expired(24時間の枠の中で終わらなかった)になったときは、完了していた依頼の結果は出力のファイルに入り、残りはエラーのファイルに書かれます。 残りだけを同期の呼び出しでやり直します。

新商品の差し込みなど、水曜日の締めに間に合わない1枚は、同じ指示で同期の呼び出しを1回だけ行います。 バッチを待つ必要が無い数なので、別の経路を用意しておきます。

Step2

入力データを集める

データ中身取得元
POPの依頼商品コード、訴求のテーマ(季節・売場)、特長メモ、POPの大きさ依頼表
商品の情報商品名、規格、原産地商品マスタ
売価特売の売価(税込)、特売の期間売価マスタ
売価の履歴日別の売価(税込)POSの日別の売価の履歴
表示のルール文字数の上限(大きさ別)、禁止表現の一覧、言い換えの例販促課の表示ルール表

質を決めるのは、特長メモです。 AIはメモに書かれたことしか書けない、という作り方にしているので、メモが「おいしいです」の一行だけなら、案も薄くなります。 仕入担当には、「誰が・いつ・どう食べるとよいか」が分かることを1つ以上書いてもらいます。

依頼表の1行の例です。

商品コード:4901234567890
訴求のテーマ:秋の鍋の売場
特長メモ:白菜の芯までやわらかい品種。鍋に入れると5分ほどで煮える。
          浅漬けにしても甘みが出る。1/4カットで冷蔵庫に入れやすい
POPの大きさ:B5

メモは、仕入担当が自分の言葉で書いたままで構いません。 箇条書きにそろえる必要はなく、「誰が・いつ・どう食べるとよいか」が1つ入っていれば、案の切り口が増えます。

原産地は、特長メモではなく商品マスタから取ります。 第3章の(c)のとおり、メモは古いまま残ることがあります。POPに産地を書くときの根拠は、商品マスタの原産地の列だけにします。 メモに「国産」とあって、マスタの原産地が違えば、その行は案を作らずに販促担当へ戻します。

禁止表現の一覧は、販促課で作ります。 「日本一」「最安値」「No.1」「絶対」のように根拠を示せない最上級の言葉、健康への効果をうたう言葉、他社と比べる言葉を並べ、それぞれに「使うなら根拠の資料が要る」「使わない」の区分を付けます。

Step3

データの取得方法を決める

依頼表、商品マスタ、売価マスタは、Python の処理が読み取るだけです。売価の履歴は、POSのデータから商品ごと・日ごとの売価(税込)を取り出します。比較の価格の判定に使うので、特売の期間を含めた最低8週間分を持ちます。

取るものどこから何に使うか
依頼の行依頼表の締め時刻までの行案を作る対象
商品名と原産地商品マスタ(商品コードで引く)商品名は案の材料、原産地はテンプレートへの差し込みと産地の点検
特売の売価と期間売価マスタPOPに差し込む売価
日別の売価POSの履歴(特売開始日から8週間さかのぼる)比較の価格を載せてよいかの判定
文字数の上限と禁止表現表示ルール表案への指示と、戻ってきた案の点検

AIに渡すのは、商品名・規格・特長メモ・訴求のテーマ・文字数の上限だけです。 売価も売価の履歴も渡しません。数字を渡すと、AIはそれを文案に使いたがります。

Step4

AIへ渡す前に整形する

  1. 締め時刻の確認 … 水曜12時より後の行は、今週のバッチに入れません
  2. マスタとの照合 … 商品コードが商品マスタにない行、売価マスタに特売の売価がない行は、案を作らずに販促担当へ戻します
  3. 産地の食い違いの確認 … 特長メモに産地の語(「国産」「〇〇県産」など)があり、商品マスタの原産地と合わない行は戻します
  4. 特長メモの長さの確認 … 20字に満たないメモは、案が薄くなるので仕入担当へ書き足しを頼みます
  5. 依頼のファイル作り … 1行ごとに custom_id(依頼表の行番号と週)を付け、/v1/responses への依頼として .jsonl に書きます
  1. 表示ルール表の版の確認 … 禁止表現の一覧を直した週は、版の番号を依頼のファイルに書き込み、どの版で点検したかを後から追えるようにします

3番目を省かないでください。 POPの産地の誤りは、お客様が売場で読んで、そのまま買う理由になる情報です。AIの案が正しくても、渡したメモが古ければ、誤った産地のPOPが22店舗に並びます。

Step5

AIに処理させる

させるのは、特長メモと訴求のテーマから、見出しと説明文の案を3つ作り、それぞれの言葉がメモのどの文言にもとづくかを書き出すことだけです。

作るもの決まり判断できないときの扱い
見出し大きさ別の文字数の上限以内(A6は12字、B5は16字)上限に収まらなければ案を減らし、減らした理由を書く
説明文大きさ別の文字数の上限以内(A6は40字、B5は60字)メモの材料が足りなければ、短い案だけにする
根拠案の中の特長の言葉ごとに、もとにしたメモの文言をそのまま写す根拠を写せない言葉は案に入れない
足りない情報案を良くするためにメモに足してほしいこと無ければ空

3行目の「根拠」が、この構成でいちばん大事なところです。 「甘い」「とろける」「朝どれ」は、POPに書きたくなる言葉です。メモに書かれていなければ、それは誰も確かめていない言葉です。 根拠の文言を写させ、写せない言葉を案から外させます。後段で、写した文言が本当にメモにあるかを機械で確かめます。

させないこと理由
売価・割引の額・割引率・比較の価格を書く数字はマスタから差し込む。AIが書いた数字は外す
産地を書く産地は商品マスタの原産地をテンプレートで差し込む
最上級や他社との比較の言葉を使う根拠の資料が無い。禁止表現の一覧で外す
健康への効果をうたう表示の判断が必要。案に入れない
メモに無い特長を足す確かめていない言葉が売場に出る
Step6

指示内容を固定する

あなたは食品スーパーの販促担当です。店頭POPの見出しと説明文の案を3つ作ってください。
下の「特長メモ」に書かれていることだけを材料にしてください。

【商品】{product_name}({spec})
【訴求のテーマ】{theme}
【特長メモ】{feature_memo}
【POPの大きさ】{size} 見出しは{headline_max}字以内、説明文は{body_max}字以内

【厳守事項】
- 価格、割引の額、割引率、「〇割引」「半額」「お買い得価格」など値段に関わる言葉を書かないでください。
  数字は使わないでください。価格はあとで別に入ります。
- 産地を書かないでください。産地はあとで別に入ります。
- 「日本一」「最安値」「No.1」「絶対」「どこよりも」など、比べたり一番だと言ったりする言葉を使わないでください。
- 健康や体への効果をうたう言葉を使わないでください。
- 特長メモに書かれていない特長(味、食感、鮮度、作り方など)を足さないでください。
- 案の中の特長の言葉ごとに、もとにした特長メモの文言を、そのまま書き写してください。
  書き写せない言葉は、案に入れないでください。
- 文字数の上限に収まらないときは、案の数を減らしてください。
- 3つの案は、それぞれ違う切り口にしてください(食べ方、季節、手軽さ など)。
- 案を良くするためにメモに足してほしいことがあれば、needs_info に書いてください。

「数字は使わないでください」を書いても、数字は混ざります。 「3分でできる」はメモにあれば使ってよい言葉ですが、「3割引」と区別がつかなくなります。指示では一律に数字を禁じ、メモにある数字(調理時間など)を使いたいときは、販促担当が選んだ後に手で足します。 後段の点検でも、数字の入った案は一律に外します。

「違う切り口にしてください」も効きます。 何も言わないと、3つの案は語尾が違うだけの同じ案になります。選ぶ意味のある3つにするために、切り口を指定します。

Step7

出力形式を固定する

次の形のJSONで受け取ります。 Batch API の各依頼の本体に、構造化出力の指定(text: { format: { type: "json_schema", strict: true, schema: ... } })を入れます。

{
  "pop_id": "2026W41-037",
  "candidates": [
    { "angle": "食べ方 | 季節 | 手軽さ | その他",
      "headline": "",
      "body": "",
      "claims": [ { "word": "", "memo_quote": "" } ] }
  ],
  "dropped_reason": "",
  "needs_info": ""
}

上の依頼表の例なら、案の1つは次のように返ります。

{ "angle": "食べ方",
  "headline": "芯までやわらか白菜",
  "body": "鍋に入れるとすぐ煮えて、芯までやわらか。浅漬けにしても甘みが出ます",
  "claims": [ { "word": "芯までやわらか", "memo_quote": "白菜の芯までやわらかい品種" },
              { "word": "甘みが出ます", "memo_quote": "浅漬けにしても甘みが出る" } ] }

メモの「5分ほど」は数字なので、案では「すぐ」に置き換わっています。販促担当が「5分で煮える」と書きたければ、選んだ後に手で足します。

1つ目の理由は、規則の点検を機械で行えることです。 required と additionalProperties: false で項目を固定するので、見出しと説明文と根拠が必ず別の項目で返ります。 点検の処理は、次の規則を当てます。

点検条件結果
文字数見出し・説明文が大きさ別の上限を超えるその案を外す
数字の混入見出し・説明文に数字(全角・漢数字を含む)か「円」があるその案を外す
禁止表現禁止表現の一覧の語を含むその案を外す。「根拠の資料が要る」区分なら課長へ回す
根拠memo_quote が特長メモの中に文字どおり無いその案を外す
案が残らない3つとも外れた「案なし」として販促担当が作る

2つ目は、custom_id で依頼表の行に戻せることです。 バッチの出力の行の順番は、入力の順番と一致しないことがあるとされています。順番に頼らず、custom_id で依頼表の行と結果を結びます。

3つ目は、needs_info が仕入担当への返事になることです。 「どんな料理に合うかが分かると案が増やせる」といった一言を、翌週の特長メモの書き方の改善に回します。

Step8

システムへ連携する

つなぎ先方式内容
依頼表スプレッドシートの読み取り締め時刻までの行
商品マスタ・売価マスタ読み取りのみ商品名・原産地、特売の売価と期間
POSの売価の履歴読み取りのみ(日次で取り出したファイル)比較の価格の判定
OpenAI API Batchファイルの送信と、状態の確認・結果の取り出し案の作成
選択用の表スプレッドシートへの書き出し残った案、差し込む売価、比較の価格の可否
POPのテンプレート選んだ案と差し込む値を各店へ配る印刷は各店

比較の価格の判定は、次の規則で行います。 価格表示ガイドラインの目安を、売価の履歴で計算できる形にしたものです。

判定条件(特売開始日からさかのぼる8週間、販売期間が8週間未満ならその期間)
載せてよい比較に使う売価で売っていた日数が、販売していた日数の過半を占め、かつ通算2週間以上で、かつ最後にその売価で売った日から2週間たっていない
載せない上のどれかを満たさない
課長へ履歴が欠けていて判定できない

載せない商品は、特売の売価だけを載せます。 「当店通常価格」の欄は、テンプレートの側で空けたまま印刷します。載せたいという要望があっても、判定を覆す経路は作りません。

売価はすべて税込で差し込みます。 国税庁の説明では、消費者に対してあらかじめ価格を表示する場合は税込価格を表示する必要があり、値札や店頭表示、チラシなど、どのような媒体かを問わないとされています。売価マスタの税込の列だけを使います。

Step9

人が確認する

  1. 販促担当が、商品ごとに案を1つ選ぶ … 言葉を直すのは自由です。ただし、直した後の文言にも同じ点検をもう一度当てます
  2. 「案なし」の商品は、販促担当が作る … 数は多くありませんが、メモが薄い商品に集中します。 仕入担当にメモの書き足しを頼むのが先です
  3. 課長が「比較の価格あり」の商品を確かめる … 判定の根拠になった日数を一覧で見ます
  4. 課長が「根拠の資料が要る」の語を含む案を確かめる … 資料があれば通し、無ければ外します

1番目の「直した後にもう一度点検」を省かないでください。 選んだ案に担当者が「最安値に挑戦」と足せば、AIの案を点検した意味がなくなります。 選択用の表で文言を直すと、その行の点検がもう一度走るようにしておきます。

課長が見る一覧は、2つの区分だけに絞ります。 「比較の価格あり」と「根拠の資料が要る語を含む」です。120枚すべてを課長が流し読みしていた頃より、見る枚数は大きく減りますが、見る1枚の重さは増えます。

目標は、480枚をならして1枚3分です。 選ぶだけで済む枚数が大半で、案なしの商品と課長の確認に時間がかかります。選ぶときは、3つの案を声に出して読み比べると早く決まります。 売場で目に入るのは見出しの数文字なので、読んで引っかかる案から外していきます。

Step10

例外に対処する

起きること対応
バッチが expired になった完了分は出力のファイルから使い、残りをエラーのファイルから拾って同期で再実行
依頼の一部が失敗したエラーのファイルの custom_id で行を特定し、再実行
締め時刻の後に依頼が来た同期の呼び出しで1枚だけ作るか、翌週に回す
商品コードがマスタにない案を作らず、仕入担当へ戻す
産地がメモとマスタで食い違う案を作らず、仕入担当へ戻す
売価の履歴が欠けている比較の価格は載せず、課長へ回す
3つの案がすべて外れた「案なし」として販促担当が作る
特売の売価が週の途中で変わった売価マスタから差し込み直し、各店に差し替えを配る
特売の期間がマスタに無い比較の価格の判定ができないので、特売の売価だけを載せる

上の2行は、Batch API を使う以上いつか起きます。 どちらも、custom_id で依頼表の行に戻せる作りにしておけば、困ることはありません。

Step11

記録を残す

  • 依頼表の締め時点の写し(週ごと)
  • 送った .jsonl と、バッチの出力・エラーのファイル
  • 規則の点検で外した案と、外した理由
  • 比較の価格の判定に使った日数(販売日数、その売価の日数、最後の日)と判定の結果
  • 販促担当が選んだ案、直した文言、課長の確認の記録
  • 各店へ配ったPOPの差し込みの値
  • 商品ごとの、3つの案のうちどれが選ばれたか(切り口別の採用の数)

4行目は、後から問われたときの答えになります。 「当店通常価格」に根拠はあったのかと聞かれたとき、その週に何日分の履歴で、どう判定したかを示せることが大切です。 判定の記録は、POPを外した後も残しておきます。

最後の行は、指示を直す材料になります。 「手軽さ」の案がほとんど選ばれないなら、その切り口をやめて別の切り口を指定します。

04実装レベルの3段階

最小構成:ChatGPT の画面に指示と1枚分の材料を貼り、案を出させる / 文案の作成
半自動化:上記+依頼表を締めてバッチで一括作成し、規則の点検と比較の価格の判定を自動で行う / 文案の作成から、表示の点検と価格の差し込みまで
本格構成:上記+売場の写真の点検(UC-0625)とつなぎ、配ったPOPの文言と売価を付けた後にも照合する / POPの作成から付けた後の点検まで

本格構成で写真の点検とつなぐと、作ったPOPと付けたPOPを同じ商品コードで比べられます。 作る側で通した売価が、売場で別の数字に書き換わっていないかまで見られるようになります。ただし、まず半自動化で毎週の運用を安定させてからにします。 最小構成では、価格の判定ができません。 文案の質を確かめる段階です。半自動化で、1枚8分が3分になり、本記事の想定はこの段階です。 差が大きいのは、②の価格の確かめと③の表示の見直しが、規則の点検に置き換わるからです。

05工数削減シミュレーション

前提値(モデル条件)
対象人数
4 名
月間件数
480 件
1件あたり現在時間
8 分
1件あたり導入後時間
3 分
現在  480件 × 8分 ÷ 60 = 64 時間/月
導入後 480件 × 3分 ÷ 60 = 24 時間/月
月間削減時間
40h
削減率
63%
年間削減時間
480h
年間金額換算(時間単価3,000円)
144万円
モデル条件による試算であり、実際の効果は業務内容・運用方法によって異なります。

自社条件で導入効果を整理したい方へ

このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。

AI活用について相談する

06向いている企業・向いていない企業

向いている
  1. 食品スーパー、ドラッグストア、ホームセンターなど、本部の販促担当が特売・新商品・季節の訴求のPOPを毎週まとめて作り、各店で印刷して売場に付けている小売チェーン。POPの文案を考える時間と、価格の表示や産地の書き方を確かめる時間が担当者ごとにばらついている場合。売価マスタと日別の売価の履歴をデータで取り出せる場合。
向いていない
  1. POPが手書き中心で、店ごとの個性を出すことを重視している店。売価や比較の価格をPOPに載せず、商品の紹介だけを書く場合(価格の規則判定の部分が要りません)。月に数十枚しかPOPを作らない場合。健康食品や医薬品の効能を訴求するPOPが中心の場合(表示の判断を専門の担当に任せるべき範囲が大きくなります)。

07最小構成で試す方法

  1. 先週のPOPから30枚を選び、そのときの特長メモを集める(うち数枚は、メモが一行だけのものを入れる)
  2. ChatGPT の画面を開き、第7章の指示と、1枚分の商品名・特長メモ・テーマ・文字数を貼り付ける
  3. 出てきた3つの案を、実際に配ったPOPの文案と並べる
  4. 案の中の言葉が、すべて特長メモにもとづいているかを、販促担当が目で確かめる
  5. 30枚のうち10枚について、売価の履歴を見て「当店通常価格」の目安に合っていたかを手で数える

5番目を、この段階で必ずやってください。 文案の良し悪しよりも先に、これまでの比較の価格がどれくらい目安に合っていたかが分かります。

出てきた内容判断
実際のPOPと同じくらい使える案が、3つのうち1つ以上ある依頼表とバッチの仕組みに進む
メモに無い言葉が案に混ざる指示と根拠の写しで直る。構成は有効
比較の価格が目安に合っていない商品があった文案より先に、価格の載せ方の決まりを作る

3行目が出ることは珍しくありません。 特売を繰り返している商品ほど、通常の売価で売っていた期間が短くなります。これまで誰も数えていなかったことが、10枚を数えるだけで見えてきます。 その結果を持って、表示の担当と規則を決める打ち合わせに入ってください。

08実装時につまずきやすいポイント

問題対策
案に数字や「円」が混ざる一律に外す。 使いたい数字は選んだ後に手で足す
メモに無い特長が書かれる根拠の文言を写させ、メモに文字どおりあるかを機械で確かめる
3つの案がほぼ同じ切り口を指定する
古いメモの産地がPOPに出る産地は商品マスタから差し込む。 食い違いは案を作らずに戻す
「当店通常価格」の根拠が無い売価の履歴で8週間・過半・2週間の条件を判定する
担当者が選んだ後に強い言葉を足す直した文言にも点検をもう一度当てる
バッチの結果の順番がずれるcustom_id で行に戻す
締め時刻の後の依頼が漏れる同期の呼び出しの経路を別に用意する
税抜の売価が差し込まれる売価マスタの税込の列だけを使う
特長メモが薄く案なしが続くneeds_info を仕入担当へ返し、メモの書き方をそろえる
店で手書きの比較の価格が足される店へ配る説明に、比較の価格の欄は本部の判定で決まることを書く

上の2行が、この構成の失敗のほとんどです。 どちらも「AIが書いた言葉や数字を、そのまま売場に出す」ことから起きます。数字は外し、言葉は根拠で確かめる、という2つの決まりで防ぎます。

09セキュリティ・AIガバナンス上の注意点

この構成で扱うデータ: 商品名、規格、原産地、特長メモ、特売の売価と期間、日別の売価の履歴です。個人の情報は扱いません。 ただし、翌週の特売の商品と売価は、競合店に知られたくない情報です。外部へ渡す範囲を、文案の材料に絞ることが、この構成の情報の扱いの中心になります。

  1. AIに渡すのは文案の材料だけにする … 売価、売価の履歴、仕入の条件は渡しません。特売の計画は社外に出したくない情報でもあります
  2. 比較の価格の判定を人が覆せないようにする … 判定は売価の履歴の数字で決め、「載せたい」という要望で覆す経路を作りません
  3. 価格表示の判断は表示の担当と決める … 本記事の判定の規則は、消費者庁の価格表示ガイドラインの目安を計算できる形にしたものです。自社の運用として採るかどうか、例外をどう扱うかは、法務や表示の担当と決めてください
  4. 産地の根拠を商品マスタに置く … POPの産地はお客様が商品を選ぶ理由になります。メモではなくマスタを正とし、食い違いは作らずに戻します
  5. 税率の変更に備える … 国税庁のページでは、令和9年4月1日から2年間、飲食料品の消費税率が引き下げられ、総額表示の特例が設けられるとされています。売価はPOPに手で書かず、売価マスタから差し込む作りにしておくことが、切り替えへの備えになります
  1. 禁止表現の一覧を店にも配る … 店で手書きのPOPを足すことはなくなりません。本部の一覧を各店にも配り、手書きのPOPにも同じ言葉の決まりを使ってもらいます

誤りが起きた場合のリスクは、根拠の無い比較の価格を載せることと、確かめていない特長や産地を売場に出すことの2つです。 前者は売価の履歴による判定で、後者は根拠の写しと商品マスタで防ぎます。

10まず何から始めるか

1週目:禁止表現の一覧と比較の価格の決まりを作る

販促課で、POPに使わない言葉を書き出し、「使わない」「根拠の資料が要る」に分けます。比較の価格の判定の規則を、表示の担当と確かめます。

2週目:30枚で試す

先週のPOPから30枚を選び、ChatGPT の画面で案を作らせます。あわせて10枚の比較の価格を、売価の履歴で手で数えます。

3週目:依頼表を変える

依頼表に商品コード・訴求のテーマ・特長メモ・POPの大きさの列をそろえ、仕入担当に特長メモの書き方を伝えます。

4週目:バッチと点検をつなぐ

依頼表の締めからバッチの送信、結果の取り出し、規則の点検までを作り、1週分を手作業と並べて動かします。 手作業のPOPとAIの案のどちらを配るかは、この週は販促担当が決めます。外れた案の理由を読み、禁止表現の一覧と文字数の上限を直します。

2か月目: 比較の価格の判定と、売価の差し込みを加えて、各店への配布まで切り替えます。3か月目以降: 案なしの商品の傾向を見て特長メモの書き方を直し、1枚の時間が3分前後に落ち着いた時点で、この構成は完成です。


11関連ユースケース

12この仕組みを理解するための記事

13技術仕様の確認日・参考情報

技術仕様確認日:2026-10-07/最終更新:2026-10-07
確認した内容情報源確認日
Batch API が同期のAPIより50%安く、別枠の高い利用上限があり、各バッチが24時間以内に完了すること。入力が .jsonl で各行に一意の custom_id が必要なこと。/v1/responses が対象のエンドポイントに含まれること。1バッチ50,000件・200MBまでであること。出力の順番が入力と一致しないことがあり custom_id で対応付けること。expired のとき完了分は出力のファイル、残りはエラーのファイルに書かれることOpenAI API: Batch API2026-10-07
text: { format: { type: "json_schema", strict: true, schema: ... } } でスキーマを渡し、required と additionalProperties: false で項目を固定できることOpenAI API: Structured Outputs2026-10-07
同一ではない商品の価格や実際と異なる価格を比較対照価格に用いる二重価格表示が不当表示に該当するおそれがあること。最近相当期間にわたって販売されていた価格であれば不当表示に該当するおそれはないこと消費者庁: 二重価格表示2026-10-07
「最近相当期間にわたって販売されていた価格」の目安が、セール開始時点からさかのぼる8週間(販売期間が8週間未満ならその期間)のうち当該価格での販売期間が過半を占めることで、通算2週間未満の場合や最後の販売日から2週間以上経過している場合は当たらないとされること消費者庁: 不当な価格表示についての景品表示法上の考え方(PDF)2026-10-07
総額表示義務が消費者にあらかじめ価格を表示する場合に税込価格の表示を義務付けるもので、表示媒体を問わないこと。令和9年4月1日から2年間、飲食料品の消費税率が引き下げられ、総額表示の特例が設けられるとされていること国税庁: No.6902「総額表示」の義務付け2026-10-07

比較の価格の載せ方と禁止表現の範囲は、自社の法務・表示の担当と決めてください。 本記事は上記の公開情報で確認できた範囲だけを扱っています。API の料金とモデルごとの性能は、OpenAI の最新の案内を確認してください。

実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。

自社の業務に使えるAI活用候補を整理します

このユースケース(UC-0660)についてのご相談はこちらから。

AI活用について相談する
目次