小売店で、商品の特長メモ・売価・季節の訴求から店頭POPの見出しと説明文の案を作り、価格と産地の表示のルールに合う案だけを選べるようにする
販促担当がまとめたPOPの依頼表から、商品ごとに見出しと説明文の案を3つずつ作ります。売価と比較の価格は売価マスタと履歴から規則で差し込み、表示のルールに合わない案を外したうえで、担当が1つを選んで店へ配ります。
- 生成AI
- ChatGPT/Claude/Gemini
- 連携・自動化
- Google Apps Script/Python
- 対象業界
- EC/その他/小売
- 対象部門
- マーケティング
- 対象業務
- 内容確認・チェック/書類作成
- 主な課題
- 属人化している/書類作成に時間がかかる/確認ミスが多い
- AIで行う処理
- 生成
- 主な効果
- 入力漏れ削減/品質標準化/工数削減
- 導入難易度
- ★☆☆☆☆
- 実装レベル
- 半自動化
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 仕入担当が、翌週の特売と新商品の一覧に特長メモを付けて販促課へ送る
- 販促担当が、商品ごとに見出しと説明文を考え、POPの依頼表に書く
- 販促担当が、売価マスタを開いて特売の売価(税込)を写す
- 「当店通常価格」を載せる商品は、前の週のPOPや記憶から通常の売価を写す
- 産地や「国産」の文言を、特長メモのとおりに写す
- 課長が依頼表を流し読みし、木曜日に各店へ配る
- 人仕入担当が、POPの依頼表に商品コード・訴求のテーマ・特長メモ・POPの大きさを書く(水曜日の12時まで)
- 自動依頼表を締め、商品マスタから商品名と原産地、売価マスタから特売の売価(税込)を引く
- 自動依頼表の行ごとに、案を作る依頼を1行ずつのファイルにまとめ、まとめて送る
- 自動戻ってきた案に、文字数・禁止表現・数字の混入・根拠の有無の規則を当て、合わない案を外す
- 自動売価の履歴から、比較の価格を載せてよいかを規則で判定する
- 自動残った案と、差し込む売価・比較の価格を、選択用の表に書き出す
- 人販促担当が商品ごとに案を1つ選び、必要なら言葉を直す
- 人課長が「比較の価格あり」と「案が残らなかった」商品だけを確かめ、木曜日に各店へ配る
各工程の詳しい説明を読む
- 仕入担当が、翌週の特売と新商品の一覧に特長メモを付けて販促課へ送る
- 販促担当が、商品ごとに見出しと説明文を考え、POPの依頼表に書く
- 販促担当が、売価マスタを開いて特売の売価(税込)を写す
- 「当店通常価格」を載せる商品は、前の週のPOPや記憶から通常の売価を写す
- 産地や「国産」の文言を、特長メモのとおりに写す
- 課長が依頼表を流し読みし、木曜日に各店へ配る
(a)文案を考える時間が足りない。 1枚の見出しと説明文を考えるのに4分ほどかかり、週120枚では8時間です。締め切りの水曜日には、前の週の文案を少し変えて済ませる枚数が増えます。
(b)「当店通常価格」の根拠を誰も確かめていない。 4番目で写す通常の売価が、最近8週間のうち何週間その値段で売っていたかを、誰も履歴で見ていません。 前の週に特売をしていた商品だと、通常の売価で売った期間はほとんど無いこともあります。
(c)産地の書き方がメモ頼みになる。 特長メモに「国産」と書かれていれば、そのまま写します。仕入先が途中で変わり、商品マスタの原産地が変わっていても、メモは古いまま残ります。
(d)見出しの言葉が強くなりがち。 目立たせようとして「日本一」「最安値」「絶対おいしい」といった言葉が入ります。課長の流し読みでは、120枚のうちの数枚を見落とします。
(e)文案の良し悪しが担当者の経験で決まる。 経験の長い担当は食べ方や季節の言葉を引き出しから出せますが、異動してきたばかりの担当は、商品名を大きく書くだけのPOPになりがちです。 担当が替わるたびに売場の印象が変わります。
- 【人】 仕入担当が、POPの依頼表に商品コード・訴求のテーマ・特長メモ・POPの大きさを書く(水曜日の12時まで)
- 【自動】 依頼表を締め、商品マスタから商品名と原産地、売価マスタから特売の売価(税込)を引く
- 【自動】 依頼表の行ごとに、案を作る依頼を1行ずつのファイルにまとめ、まとめて送る
- 【自動】 戻ってきた案に、文字数・禁止表現・数字の混入・根拠の有無の規則を当て、合わない案を外す
- 【自動】 売価の履歴から、比較の価格を載せてよいかを規則で判定する
- 【自動】 残った案と、差し込む売価・比較の価格を、選択用の表に書き出す
- 【人】 販促担当が商品ごとに案を1つ選び、必要なら言葉を直す
- 【人】 課長が「比較の価格あり」と「案が残らなかった」商品だけを確かめ、木曜日に各店へ配る
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どうやって実装するのか
処理の起点を決める
毎週水曜日の12時に、依頼表を締めたところで動かします。 仕入担当が行を足し終えた時刻で区切り、それ以降に足された行は翌週に回すか、販促担当が手で作ります。締める時刻を決めておかないと、バッチを送った後に足された行が漏れます。
送った後は、30分ごとにバッチの状態を確かめる処理を動かします。 状態が completed になったら結果を取り出し、規則の点検に進みます。expired(24時間の枠の中で終わらなかった)になったときは、完了していた依頼の結果は出力のファイルに入り、残りはエラーのファイルに書かれます。 残りだけを同期の呼び出しでやり直します。
新商品の差し込みなど、水曜日の締めに間に合わない1枚は、同じ指示で同期の呼び出しを1回だけ行います。 バッチを待つ必要が無い数なので、別の経路を用意しておきます。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| POPの依頼 | 商品コード、訴求のテーマ(季節・売場)、特長メモ、POPの大きさ | 依頼表 |
| 商品の情報 | 商品名、規格、原産地 | 商品マスタ |
| 売価 | 特売の売価(税込)、特売の期間 | 売価マスタ |
| 売価の履歴 | 日別の売価(税込) | POSの日別の売価の履歴 |
| 表示のルール | 文字数の上限(大きさ別)、禁止表現の一覧、言い換えの例 | 販促課の表示ルール表 |
質を決めるのは、特長メモです。 AIはメモに書かれたことしか書けない、という作り方にしているので、メモが「おいしいです」の一行だけなら、案も薄くなります。 仕入担当には、「誰が・いつ・どう食べるとよいか」が分かることを1つ以上書いてもらいます。
依頼表の1行の例です。
商品コード:4901234567890
訴求のテーマ:秋の鍋の売場
特長メモ:白菜の芯までやわらかい品種。鍋に入れると5分ほどで煮える。
浅漬けにしても甘みが出る。1/4カットで冷蔵庫に入れやすい
POPの大きさ:B5
メモは、仕入担当が自分の言葉で書いたままで構いません。 箇条書きにそろえる必要はなく、「誰が・いつ・どう食べるとよいか」が1つ入っていれば、案の切り口が増えます。
原産地は、特長メモではなく商品マスタから取ります。 第3章の(c)のとおり、メモは古いまま残ることがあります。POPに産地を書くときの根拠は、商品マスタの原産地の列だけにします。 メモに「国産」とあって、マスタの原産地が違えば、その行は案を作らずに販促担当へ戻します。
禁止表現の一覧は、販促課で作ります。 「日本一」「最安値」「No.1」「絶対」のように根拠を示せない最上級の言葉、健康への効果をうたう言葉、他社と比べる言葉を並べ、それぞれに「使うなら根拠の資料が要る」「使わない」の区分を付けます。
データの取得方法を決める
依頼表、商品マスタ、売価マスタは、Python の処理が読み取るだけです。売価の履歴は、POSのデータから商品ごと・日ごとの売価(税込)を取り出します。比較の価格の判定に使うので、特売の期間を含めた最低8週間分を持ちます。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 依頼の行 | 依頼表の締め時刻までの行 | 案を作る対象 |
| 商品名と原産地 | 商品マスタ(商品コードで引く) | 商品名は案の材料、原産地はテンプレートへの差し込みと産地の点検 |
| 特売の売価と期間 | 売価マスタ | POPに差し込む売価 |
| 日別の売価 | POSの履歴(特売開始日から8週間さかのぼる) | 比較の価格を載せてよいかの判定 |
| 文字数の上限と禁止表現 | 表示ルール表 | 案への指示と、戻ってきた案の点検 |
AIに渡すのは、商品名・規格・特長メモ・訴求のテーマ・文字数の上限だけです。 売価も売価の履歴も渡しません。数字を渡すと、AIはそれを文案に使いたがります。
AIへ渡す前に整形する
- 締め時刻の確認 … 水曜12時より後の行は、今週のバッチに入れません
- マスタとの照合 … 商品コードが商品マスタにない行、売価マスタに特売の売価がない行は、案を作らずに販促担当へ戻します
- 産地の食い違いの確認 … 特長メモに産地の語(「国産」「〇〇県産」など)があり、商品マスタの原産地と合わない行は戻します
- 特長メモの長さの確認 … 20字に満たないメモは、案が薄くなるので仕入担当へ書き足しを頼みます
- 依頼のファイル作り … 1行ごとに
custom_id(依頼表の行番号と週)を付け、/v1/responsesへの依頼として.jsonlに書きます
- 表示ルール表の版の確認 … 禁止表現の一覧を直した週は、版の番号を依頼のファイルに書き込み、どの版で点検したかを後から追えるようにします
3番目を省かないでください。 POPの産地の誤りは、お客様が売場で読んで、そのまま買う理由になる情報です。AIの案が正しくても、渡したメモが古ければ、誤った産地のPOPが22店舗に並びます。
AIに処理させる
させるのは、特長メモと訴求のテーマから、見出しと説明文の案を3つ作り、それぞれの言葉がメモのどの文言にもとづくかを書き出すことだけです。
| 作るもの | 決まり | 判断できないときの扱い |
|---|---|---|
| 見出し | 大きさ別の文字数の上限以内(A6は12字、B5は16字) | 上限に収まらなければ案を減らし、減らした理由を書く |
| 説明文 | 大きさ別の文字数の上限以内(A6は40字、B5は60字) | メモの材料が足りなければ、短い案だけにする |
| 根拠 | 案の中の特長の言葉ごとに、もとにしたメモの文言をそのまま写す | 根拠を写せない言葉は案に入れない |
| 足りない情報 | 案を良くするためにメモに足してほしいこと | 無ければ空 |
3行目の「根拠」が、この構成でいちばん大事なところです。 「甘い」「とろける」「朝どれ」は、POPに書きたくなる言葉です。メモに書かれていなければ、それは誰も確かめていない言葉です。 根拠の文言を写させ、写せない言葉を案から外させます。後段で、写した文言が本当にメモにあるかを機械で確かめます。
| させないこと | 理由 |
|---|---|
| 売価・割引の額・割引率・比較の価格を書く | 数字はマスタから差し込む。AIが書いた数字は外す |
| 産地を書く | 産地は商品マスタの原産地をテンプレートで差し込む |
| 最上級や他社との比較の言葉を使う | 根拠の資料が無い。禁止表現の一覧で外す |
| 健康への効果をうたう | 表示の判断が必要。案に入れない |
| メモに無い特長を足す | 確かめていない言葉が売場に出る |
指示内容を固定する
あなたは食品スーパーの販促担当です。店頭POPの見出しと説明文の案を3つ作ってください。
下の「特長メモ」に書かれていることだけを材料にしてください。
【商品】{product_name}({spec})
【訴求のテーマ】{theme}
【特長メモ】{feature_memo}
【POPの大きさ】{size} 見出しは{headline_max}字以内、説明文は{body_max}字以内
【厳守事項】
- 価格、割引の額、割引率、「〇割引」「半額」「お買い得価格」など値段に関わる言葉を書かないでください。
数字は使わないでください。価格はあとで別に入ります。
- 産地を書かないでください。産地はあとで別に入ります。
- 「日本一」「最安値」「No.1」「絶対」「どこよりも」など、比べたり一番だと言ったりする言葉を使わないでください。
- 健康や体への効果をうたう言葉を使わないでください。
- 特長メモに書かれていない特長(味、食感、鮮度、作り方など)を足さないでください。
- 案の中の特長の言葉ごとに、もとにした特長メモの文言を、そのまま書き写してください。
書き写せない言葉は、案に入れないでください。
- 文字数の上限に収まらないときは、案の数を減らしてください。
- 3つの案は、それぞれ違う切り口にしてください(食べ方、季節、手軽さ など)。
- 案を良くするためにメモに足してほしいことがあれば、needs_info に書いてください。
「数字は使わないでください」を書いても、数字は混ざります。 「3分でできる」はメモにあれば使ってよい言葉ですが、「3割引」と区別がつかなくなります。指示では一律に数字を禁じ、メモにある数字(調理時間など)を使いたいときは、販促担当が選んだ後に手で足します。 後段の点検でも、数字の入った案は一律に外します。
「違う切り口にしてください」も効きます。 何も言わないと、3つの案は語尾が違うだけの同じ案になります。選ぶ意味のある3つにするために、切り口を指定します。
出力形式を固定する
次の形の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 が仕入担当への返事になることです。 「どんな料理に合うかが分かると案が増やせる」といった一言を、翌週の特長メモの書き方の改善に回します。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 依頼表 | スプレッドシートの読み取り | 締め時刻までの行 |
| 商品マスタ・売価マスタ | 読み取りのみ | 商品名・原産地、特売の売価と期間 |
| POSの売価の履歴 | 読み取りのみ(日次で取り出したファイル) | 比較の価格の判定 |
| OpenAI API Batch | ファイルの送信と、状態の確認・結果の取り出し | 案の作成 |
| 選択用の表 | スプレッドシートへの書き出し | 残った案、差し込む売価、比較の価格の可否 |
| POPのテンプレート | 選んだ案と差し込む値を各店へ配る | 印刷は各店 |
比較の価格の判定は、次の規則で行います。 価格表示ガイドラインの目安を、売価の履歴で計算できる形にしたものです。
| 判定 | 条件(特売開始日からさかのぼる8週間、販売期間が8週間未満ならその期間) |
|---|---|
| 載せてよい | 比較に使う売価で売っていた日数が、販売していた日数の過半を占め、かつ通算2週間以上で、かつ最後にその売価で売った日から2週間たっていない |
| 載せない | 上のどれかを満たさない |
| 課長へ | 履歴が欠けていて判定できない |
載せない商品は、特売の売価だけを載せます。 「当店通常価格」の欄は、テンプレートの側で空けたまま印刷します。載せたいという要望があっても、判定を覆す経路は作りません。
売価はすべて税込で差し込みます。 国税庁の説明では、消費者に対してあらかじめ価格を表示する場合は税込価格を表示する必要があり、値札や店頭表示、チラシなど、どのような媒体かを問わないとされています。売価マスタの税込の列だけを使います。
人が確認する
- 販促担当が、商品ごとに案を1つ選ぶ … 言葉を直すのは自由です。ただし、直した後の文言にも同じ点検をもう一度当てます
- 「案なし」の商品は、販促担当が作る … 数は多くありませんが、メモが薄い商品に集中します。 仕入担当にメモの書き足しを頼むのが先です
- 課長が「比較の価格あり」の商品を確かめる … 判定の根拠になった日数を一覧で見ます
- 課長が「根拠の資料が要る」の語を含む案を確かめる … 資料があれば通し、無ければ外します
1番目の「直した後にもう一度点検」を省かないでください。 選んだ案に担当者が「最安値に挑戦」と足せば、AIの案を点検した意味がなくなります。 選択用の表で文言を直すと、その行の点検がもう一度走るようにしておきます。
課長が見る一覧は、2つの区分だけに絞ります。 「比較の価格あり」と「根拠の資料が要る語を含む」です。120枚すべてを課長が流し読みしていた頃より、見る枚数は大きく減りますが、見る1枚の重さは増えます。
目標は、480枚をならして1枚3分です。 選ぶだけで済む枚数が大半で、案なしの商品と課長の確認に時間がかかります。選ぶときは、3つの案を声に出して読み比べると早く決まります。 売場で目に入るのは見出しの数文字なので、読んで引っかかる案から外していきます。
例外に対処する
| 起きること | 対応 |
|---|---|
バッチが expired になった | 完了分は出力のファイルから使い、残りをエラーのファイルから拾って同期で再実行 |
| 依頼の一部が失敗した | エラーのファイルの custom_id で行を特定し、再実行 |
| 締め時刻の後に依頼が来た | 同期の呼び出しで1枚だけ作るか、翌週に回す |
| 商品コードがマスタにない | 案を作らず、仕入担当へ戻す |
| 産地がメモとマスタで食い違う | 案を作らず、仕入担当へ戻す |
| 売価の履歴が欠けている | 比較の価格は載せず、課長へ回す |
| 3つの案がすべて外れた | 「案なし」として販促担当が作る |
| 特売の売価が週の途中で変わった | 売価マスタから差し込み直し、各店に差し替えを配る |
| 特売の期間がマスタに無い | 比較の価格の判定ができないので、特売の売価だけを載せる |
上の2行は、Batch API を使う以上いつか起きます。 どちらも、custom_id で依頼表の行に戻せる作りにしておけば、困ることはありません。
記録を残す
- 依頼表の締め時点の写し(週ごと)
- 送った
.jsonlと、バッチの出力・エラーのファイル - 規則の点検で外した案と、外した理由
- 比較の価格の判定に使った日数(販売日数、その売価の日数、最後の日)と判定の結果
- 販促担当が選んだ案、直した文言、課長の確認の記録
- 各店へ配ったPOPの差し込みの値
- 商品ごとの、3つの案のうちどれが選ばれたか(切り口別の採用の数)
4行目は、後から問われたときの答えになります。 「当店通常価格」に根拠はあったのかと聞かれたとき、その週に何日分の履歴で、どう判定したかを示せることが大切です。 判定の記録は、POPを外した後も残しておきます。
最後の行は、指示を直す材料になります。 「手軽さ」の案がほとんど選ばれないなら、その切り口をやめて別の切り口を指定します。
04実装レベルの3段階
本格構成で写真の点検とつなぐと、作ったPOPと付けたPOPを同じ商品コードで比べられます。 作る側で通した売価が、売場で別の数字に書き換わっていないかまで見られるようになります。ただし、まず半自動化で毎週の運用を安定させてからにします。 最小構成では、価格の判定ができません。 文案の質を確かめる段階です。半自動化で、1枚8分が3分になり、本記事の想定はこの段階です。 差が大きいのは、②の価格の確かめと③の表示の見直しが、規則の点検に置き換わるからです。
05工数削減シミュレーション
導入後 480件 × 3分 ÷ 60 = 24 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 食品スーパー、ドラッグストア、ホームセンターなど、本部の販促担当が特売・新商品・季節の訴求のPOPを毎週まとめて作り、各店で印刷して売場に付けている小売チェーン。POPの文案を考える時間と、価格の表示や産地の書き方を確かめる時間が担当者ごとにばらついている場合。売価マスタと日別の売価の履歴をデータで取り出せる場合。
- POPが手書き中心で、店ごとの個性を出すことを重視している店。売価や比較の価格をPOPに載せず、商品の紹介だけを書く場合(価格の規則判定の部分が要りません)。月に数十枚しかPOPを作らない場合。健康食品や医薬品の効能を訴求するPOPが中心の場合(表示の判断を専門の担当に任せるべき範囲が大きくなります)。
07最小構成で試す方法
- 先週のPOPから30枚を選び、そのときの特長メモを集める(うち数枚は、メモが一行だけのものを入れる)
- ChatGPT の画面を開き、第7章の指示と、1枚分の商品名・特長メモ・テーマ・文字数を貼り付ける
- 出てきた3つの案を、実際に配ったPOPの文案と並べる
- 案の中の言葉が、すべて特長メモにもとづいているかを、販促担当が目で確かめる
- 30枚のうち10枚について、売価の履歴を見て「当店通常価格」の目安に合っていたかを手で数える
5番目を、この段階で必ずやってください。 文案の良し悪しよりも先に、これまでの比較の価格がどれくらい目安に合っていたかが分かります。
| 出てきた内容 | 判断 |
|---|---|
| 実際のPOPと同じくらい使える案が、3つのうち1つ以上ある | 依頼表とバッチの仕組みに進む |
| メモに無い言葉が案に混ざる | 指示と根拠の写しで直る。構成は有効 |
| 比較の価格が目安に合っていない商品があった | 文案より先に、価格の載せ方の決まりを作る |
3行目が出ることは珍しくありません。 特売を繰り返している商品ほど、通常の売価で売っていた期間が短くなります。これまで誰も数えていなかったことが、10枚を数えるだけで見えてきます。 その結果を持って、表示の担当と規則を決める打ち合わせに入ってください。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 案に数字や「円」が混ざる | 一律に外す。 使いたい数字は選んだ後に手で足す |
| メモに無い特長が書かれる | 根拠の文言を写させ、メモに文字どおりあるかを機械で確かめる |
| 3つの案がほぼ同じ | 切り口を指定する |
| 古いメモの産地がPOPに出る | 産地は商品マスタから差し込む。 食い違いは案を作らずに戻す |
| 「当店通常価格」の根拠が無い | 売価の履歴で8週間・過半・2週間の条件を判定する |
| 担当者が選んだ後に強い言葉を足す | 直した文言にも点検をもう一度当てる |
| バッチの結果の順番がずれる | custom_id で行に戻す |
| 締め時刻の後の依頼が漏れる | 同期の呼び出しの経路を別に用意する |
| 税抜の売価が差し込まれる | 売価マスタの税込の列だけを使う |
| 特長メモが薄く案なしが続く | needs_info を仕入担当へ返し、メモの書き方をそろえる |
| 店で手書きの比較の価格が足される | 店へ配る説明に、比較の価格の欄は本部の判定で決まることを書く |
上の2行が、この構成の失敗のほとんどです。 どちらも「AIが書いた言葉や数字を、そのまま売場に出す」ことから起きます。数字は外し、言葉は根拠で確かめる、という2つの決まりで防ぎます。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 商品名、規格、原産地、特長メモ、特売の売価と期間、日別の売価の履歴です。個人の情報は扱いません。 ただし、翌週の特売の商品と売価は、競合店に知られたくない情報です。外部へ渡す範囲を、文案の材料に絞ることが、この構成の情報の扱いの中心になります。
- AIに渡すのは文案の材料だけにする … 売価、売価の履歴、仕入の条件は渡しません。特売の計画は社外に出したくない情報でもあります
- 比較の価格の判定を人が覆せないようにする … 判定は売価の履歴の数字で決め、「載せたい」という要望で覆す経路を作りません
- 価格表示の判断は表示の担当と決める … 本記事の判定の規則は、消費者庁の価格表示ガイドラインの目安を計算できる形にしたものです。自社の運用として採るかどうか、例外をどう扱うかは、法務や表示の担当と決めてください
- 産地の根拠を商品マスタに置く … POPの産地はお客様が商品を選ぶ理由になります。メモではなくマスタを正とし、食い違いは作らずに戻します
- 税率の変更に備える … 国税庁のページでは、令和9年4月1日から2年間、飲食料品の消費税率が引き下げられ、総額表示の特例が設けられるとされています。売価はPOPに手で書かず、売価マスタから差し込む作りにしておくことが、切り替えへの備えになります
- 禁止表現の一覧を店にも配る … 店で手書きの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技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
Batch API が同期のAPIより50%安く、別枠の高い利用上限があり、各バッチが24時間以内に完了すること。入力が .jsonl で各行に一意の custom_id が必要なこと。/v1/responses が対象のエンドポイントに含まれること。1バッチ50,000件・200MBまでであること。出力の順番が入力と一致しないことがあり custom_id で対応付けること。expired のとき完了分は出力のファイル、残りはエラーのファイルに書かれること | OpenAI API: Batch API | 2026-10-07 |
text: { format: { type: "json_schema", strict: true, schema: ... } } でスキーマを渡し、required と additionalProperties: false で項目を固定できること | OpenAI API: Structured Outputs | 2026-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)についてのご相談はこちらから。
