
PDFの価格表をブロック単位で読み取り、商品項目に対応付け、SKUでWooCommerceと同期する方法を解説。重複登録や架空のGTINを防ぎます。
PDFを、ショップで実際に販売できる商品リストに変える
PDFの価格表を商品リストに変えるには、各行を商品名、SKU、価格、通貨、GTIN、画像などのショップ項目に対応付けます。ファイルはスクリーンショットとしてではなく、ブロック単位で読み取ります。紙面上では揃って見える列が抽出時に結合したり、単位が見出しに隠れていたり、脚注が意図的にコピーしない限り説明文に入らなかったりします。商品情報の完全性は、保持したセル、確認したコード、添付した写真の範囲に左右されます。
クローラーやショッピングフィードの読み取りツールがWooCommerceの商品ページを確認するときは、id、title、description、link、image_link、price、availability、brand、gtin(メーカーコードがない場合はidentifier_exists)など、名前の付いた項目を探します。受信トレイにあるPDFは、これらの項目を公開しません。行が商品レコードになるまで、Merchant Center › 商品 › フィードには取り込むものがありません。実務上の変化は機械的です。表は価格を示す画像ではなく、ショップ、フィード、アシスタントが参照できるデータになります。公開ページでGoogleが文章より先に商品データを読む理由も、そこにあります。
PDFの価格表だけでは、なぜ公開カタログが自動更新されないのか
PDFがWooCommerceに商品名、価格、在庫を送り込むことはありません。ショップやフィードで使うには、各行を商品レコードに変える必要があります。
サプライヤーが今でも印刷用のシーズン商品一覧をPDFで送るのは、PDFならレイアウト、ロゴ、法的注記を固定できるからです。紙面では便利でも、カタログのデータソースとしては使いにくい形式です。WooCommerce › 商品 › すべての商品では、SKU、商品名、通常価格、在庫ステータスが求められます。読み取りツールが見出し行と本文行を分け、各列を割り当てるまで、PDFの中にこれらの項目名は存在しません。対応付けを確認しないままだと、共有ドライブのPDFが正しい一覧として扱われる一方で、オンラインカタログは古くなります。
同じファイルはショッピングフィードとしても機能しません。フィードの行には、id、title、description、link、image_link、ISO通貨付きのprice、availability、brand、gtinが必要です。PDFを商品説明に貼り付けると、表全体が1つのテキストの塊になります。クローラーに見えるのは価格ではなく段落です。後からChatGPT向けWooCommerce商品フィードが必要になっても、その塊はフィードではありません。価格表のスクリーンショットではなく、項目から始めてください。
日々の商品カタログ更新に時間をかけられない場合毎朝、在庫に関する問い合わせへの対応に追われている場合、サプライヤーからPDFが届くたびに40行を再入力する余裕はありません。新しいファイルをブロック単位で読み取り、列の対応付けを一度確認し、SKUで更新するのが実用的です。そうすれば前日の商品を複製せずに編集できます。PDF、スプレッドシート、WooCommerceの間で手作業で貼り付けると、単位、脚注、バーコードが失われやすくなります。
約40 SKUを管理する陶器販売の工房陶器を販売し、約40 SKUを管理する工房では、コード、釉薬名、直径、入数、価格を記載した1ページの商品一覧を受け取ることがあります。40行程度でも、400行のインポートと同じ落とし穴があります。直径が見出しにしか書かれていない、入数が価格に結合している、食洗機に関する脚注が説明文に入らない、といった問題です。40件の登録でも、通貨の間違いやSKUの重複は、その日のうちにショップで判明します。
毎シーズン、サプライヤーのPDFを更新する場合サプライヤーのPDFを毎シーズン更新する場合に必要なのは、属人的な再入力ではなく、繰り返し使える対応付けです。価格が変わり、色名に新しい接尾辞が付き、廃番コードが消えることもあります。WooCommerceにすでに登録されているSKUが、継続して使えるキーです。このキーを使わずに新しいPDFを新規インポートすると、ショップ内に重複商品が増え、古いURLには古い価格が残ります。
PDFをブロック単位で読むと、何が残り、何が失われるのか
ブロック単位の読み取りでは、名前を付けられるセルが保持され、結合列、見出しだけにある単位、脚注など、項目になっていないレイアウト情報は失われます。
PDFの価格表は、カタログを1枚の画像にしたものではありません。繰り返し表示される見出し、表の本文、法的な文言を含むフッター、ときには写真のまとまりからなるページブロックの集まりです。ブロックで処理する読み取りツールは、まず表を見つけ、次に見出し行、その後に各データ行を確認します。ファイルにテキストレイヤーがあれば、セルは文字として読み取られます。印刷物をスキャンしたPDFならOCRによる推測が必要になり、セルの結合が起きやすくなります。
フィードACPとは、段落をスクレイピングするのではなく、商品情報(識別情報、価格、在庫、リンク)をアシスタントが利用できるように整えた商品フィードです。他の商品フィードと同じ主要項目が必要です。PDFからの抽出は、そのレコードに至る最初の工程にすぎません。よくある欠落は次のとおりです。
- 結合された列:SKUと商品名が1つのセルに入り、ショップ上の商品名が「CR-204 Bowl stoneware」のようになります。
- 見出しにしかない単位:「Price / pack of 4」が行にコピーされず、登録価格が単品価格のように見えます。
- 脚注:価格のアスタリスクがページ下部の「VAT別」や「電子レンジ不可」を指していても、その文が説明文に入りません。
- ページ見出しの繰り返し:列名が商品として扱われ、見出しがSKUとして複製されます。
- 複数ページの表で番号が再開する:2ページ目が新しいカタログのように扱われます。
- 埋め込み写真:表の横にあっても、SKUと紐付いていません。
- 改行で分割されたバーコード番号:商品登録前にチェックデジットが壊れます。
こうした欠落があるため、テキストをWooCommerceのコンテンツエディターに流し込むだけの「PDFインポート」はカタログ化ではありません。単なる貼り付けです。名前の付いた項目を確認する必要があります。この考え方は、仕様を創作しない商品仕様書の例にも当てはまります。PDFに素材が書かれていなければ、商品情報に素材を追加してはいけません。
PDFの中にしか存在しないカタログ行は、まだ商品ではありません。フィードリーダーが解析できない表の画像です。
抽出したセルを商品項目に対応付ける方法
PDFの各列は1つの商品項目に対応付けます。名前を付けられない情報は、確認するまで商品リストに含めません。
表を検出した後に行うのは、書き直しではなく列の対応付けです。サプライヤーが印刷した見出しを確認し、ショップとフィードが理解できる項目に割り当てます。価格表では、次のような対応付けが実用的です。
- Code、art.、ref.、SKUは、フィードのidとWooCommerceのSKUに対応します。
- Descriptionまたはitem nameはtitleに対応し、残りの注記はtitleではなくdescriptionに入れます。
- Priceはpriceに対応し、通貨記号やISOコードは数値に混ぜず、currencyとして扱います。
- Stockまたは「available」は、PDFに記載がある場合に限り、availability(在庫あり、在庫なし、予約注文)に対応します。
- Brandは、セルがブランド名を示している場合に限りbrandに対応します。商品ライン名だけの場合は対応させません。
- EAN、UPC、ISBN、GTINは、チェックデジットが通った場合にのみgtinに対応させます。それ以外はidentifier_existsを正直に設定します。
- 色、サイズ、入数は、2つ目の商品名ではなく属性(WooCommerce › 商品 › 属性)に対応させます。
自動化してはいけないのは、情報の創作です。PDFに重量が書かれていなければ、商品情報に重量を追加しません。釉薬が「blue」と書かれていて「cobalt underglaze」とは書かれていないなら、商品名は「blue」のままです。事実を守った書き換えであれば、Title Caseの整理、残ったHTMLの除去、販売者自身のファイルにある情報による空の仕様項目の補完はできます。ただし、欠けている事実をウェブ上の推測で置き換えることはできません。2つのサイズが同じ商品名を持つ場合も、item_group_idを使ったバリエーションへのグループ化は、確認した場合に限り行い、黙って実行しません。
PDFに埋め込まれた画像をSKUに対応付ける方法
PDF内の写真は、ファイルとして抽出し、行と同じSKUに対応付けた場合にのみ役立ちます。
サプライヤーのカタログでは、最初の列にサムネイルを置いたり、複数のSKUの上にメイン画像を置いたりすることがあります。ブロックリーダーは、PDF内の埋め込み画像を商品ファイルとして取り出せます。対応付けは別の工程です。1つの行の横にある写真なら位置によって対応付けられます。3つのボウルの上にある写真を、確認なしに3商品すべてへ割り当てることはできません。フィード項目のimage_linkは、各商品リストの主要画像1枚を指すことが望ましいためです。
PDFに利用できる写真がない場合でも、ショッピングサービス上で商品情報を完全なものとして扱うには画像が必要です。Googleは将来的に画像の最小サイズ基準を厳格化するとの報道があり、Metaも同様の傾向があるようですが、これらの基準は引用可能な単一の仕様書として公開されておらず、変わる可能性があります。事実に沿った選択肢は、十分に鮮明ならPDFから切り出した画像を再利用する、所有している商品写真をアップロードする、ウェブ上の画像を探して権利を確認する、またはAI法第50条に基づく生成画像であることを表示したイラストを作成することです。複数のSKUで同じ画像を使う場合は、フラグを立ててください。Merchant Center › 商品 › フィードで、5つのボウルが同じサムネイルだと、同じ商品に見えるためです。
GTIN、価格、通貨の扱い方
バーコードと価格は販売者のPDFからコピーし、数値として検証します。ウェブから収集することはありません。
GTIN(EAN-13、UPC-A、GTIN-14、ISBN)は、末尾にGS1チェックデジットを持つ数字列です。チェックデジットは、その前にある数字から計算されます。最後の数字が計算結果と一致しなければ、そのコードは有効なGTINではないため、商品情報に書き込んではいけません。番号はPDFのセル、ページに描かれたバーコード、または販売者がすでに持っている商品写真から読み取ります。ウェブ検索は行いません。検索結果から、別の商品に属するコードをSKUへ割り当てる可能性があるためです。
価格も同じように分けて扱います。「€ 12,50*」というセルは、そのままフィード価格にはなりません。数値は12.50、通貨はEUR、アスタリスクは「VAT別」や「4個入り1パックあたり」といった脚注を指します。欧州の一覧では小数点にカンマを使うことがありますが、フィードではドットが必要です。記号を数値に残さないでください。PDFにその通貨で記載されていると書かれていない限り、通貨換算もしません。ファイルに記載がなければ、availabilityは空欄のままにします。古いシーズンのPDFは、現在在庫がある証拠ではありません。
GTINは販売者自身のPDF、商品写真、CSV列から読み取り、GS1チェックデジットを通過させます。ウェブで検索して取得するものではありません。
ファイルからWooCommerce商品登録までの手順
信頼できる手順は、ブロック単位で抽出し、列を対応付け、画像とコードを確認してからSKUで同期することです。これにより、ショップは重複せず更新されます。
1ページの陶器リストでも複数ページのサプライヤーカタログでも、次の手順を使えます。目的は、追加の調査作業なしでWooCommerce › 商品に登録できる商品情報を作ることです。
- サプライヤーから送ってもらえる場合は、テキストレイヤーを持つデジタルPDFを使います。写真に撮った印刷物ではOCRが必要になり、結合セルが増えます。
- PDFをインポートし、見出し、表の本文、フッター、埋め込み画像をブロック単位で読み取ります。
- 見出し行を指定します。「Price € / 4 pcs」が見出しなら、pack = 4、currency = EURとして列の意味を保存し、商品名には入れません。
- 列をid(SKU)、title、description、price、availability、brand、gtin、サイズや色などの属性に対応付けます。
- 脚注が商品情報(食洗機対応、VAT別など)ならdescriptionにコピーします。法的な定型文は商品名に入れません。
- すべてのバーコードでGS1チェックデジットを確認します。失敗したコードは拒否します。メーカーにGTINがない場合は、コードを創作せずidentifier_existsを設定します。
- 抽出した画像をSKUに対応付けます。グループ写真は確認します。解像度が低いファイルは、ショッピングサービスで受け入れられにくくなる可能性があるため、差し替えを検討します。
- 一括登録を確定する前に、サンプルの1行を完全な商品情報として確認します(下記の変換前・変換後を参照)。
- 公式プラグインを使い、SKUでWooCommerceと同期します。既存商品を更新し、新しいSKUは1度だけ作成します。商品名が変わったからといって、2つ目の商品を作らないでください。
- 商品レコードが整ったら、準備できた行だけをMerchant Center › 商品 › フィードに出力し、ChatGPTの商品フィードにも同じ項目を使います。
変換前(PDFに印刷された1行):CR-204 | Bowl, stoneware, Ø 18 cm, glazed blue* | 4 pcs | € 12,50。フッター:* dishwasher safe, not microwave。行にバーコードはありません。左側の余白には青いボウルのサムネイルがあります。
変換後(保存する商品情報):
- id / SKU:CR-204
- title:Stoneware bowl, glazed blue, 18 cm
- description:食洗機対応。電子レンジ不可。4個入り1パック。
- price:12.50 EUR(数値と通貨を分離)
- availability:PDFに在庫の記載がない限り空欄
- brand:一覧にブランド名がある場合のみ
- gtin:空欄。ページにメーカーコードがないためidentifier_existsを設定
- image_link:十分に鮮明な解像度なら抽出したサムネイル。それ以外は確認済みの商品写真
- 属性 pack:4、属性 diameter:18 cm
この変換後の状態が、PDFを商品リストに変える目的です。名前の付いた項目、確認済みの事実、余分なSKUなし、という状態です。
よくあるエラー
PDFインポートの失敗の多くは「AIのミス」ではありません。2つの事実が1つのセルに残っている、チェックデジットが不正、またはショップがすでに所有するSKUを使っていることが原因です。
無効または重複したSKUショップには「Invalid or duplicated SKU」と表示されます。これはWooCommerceにそのSKUがすでに存在するのに、既存商品を更新せず、2つ目の商品を作ろうとした場合に起きます。シーズンごとのPDFで同じコードに新しい価格が付くと発生します。SKUで照合し、既存商品の価格と商品名を更新し、パーマリンクはそのままにして解決します。SKUによる双方向同期が対策であり、空の新規作成では解決しません。
Missing value [gtin]フィード行にGTINも明確なidentifier_existsフラグもない場合、Merchant Centerは「Missing value [gtin]」と報告します。PDFのバーコードを読み飛ばした、改行で分割された、チェックデジットで不合格になった後に空欄のままにした、といった場合に起きます。販売者のPDFまたは商品写真から数字を読み取り、GS1チェックデジットを検証し、合格した場合だけgtinを書き込みます。メーカーにGTINがない場合は、その不在を明示します。代替コードをウェブ検索しないでください。
Price must be a numberエディターやフィードのバリデーターが「Price must be a number」と返す、または通貨記号だけでISOコードがないなどの通貨不一致が起きます。セルに「€ 12,50*」「from 12」「12,50 / 4 pcs」が残っている場合に発生します。金額、通貨、入数、脚注を分けて解決します。フィードでは小数点にドットを使い、通貨コードはEURとして保存し、「pack of 4」は属性またはdescriptionに入れます。
Could not detect a table on this pagePDFが写真である、価格がデザインの一部として描かれたカタログである、脚注と写真だけのページである場合、読み取りツールは「Could not detect a table on this page」と返します。テキストレイヤーも解析できるグリッドもないためです。デジタル版の商品一覧をサプライヤーに依頼する、PDFと一緒にCSVを提供してもらう、または商品ブロックを手作業で指定し、画像と近くのキャプションを対応付けることで解決します。インポートを動かすために、説明文へ架空の表を入力しないでください。
Katapicが同じPDFを確認可能な商品リストに変える方法
Katapicは価格表やカタログをブロック単位で読み取り、埋め込み画像を抽出し、SKUでWooCommerceと同期します。情報を再入力するのではなく、事実を確認できます。
PDFからのインポートはこのファイル形式に対応しています。価格表やカタログをブロック単位で読み取り、埋め込み画像を抽出し、確認できるよう商品に対応付けます。同じ作業スペースでは、写真(1枚の写真から1商品)やCSVも扱えます。確認するまで、カタログ内の商品情報は編集されません。公開WooCommerceカタログの初回スキャンはアカウントなしの読み取り専用モードで実行でき、最大100商品まで、従来型検索とアシスタント対応準備度のスコア、さらに不足または誤った項目を示す完全性の軸を確認できます。
GTINの扱いは、この記事の他の箇所と同じです。PDF、商品写真、CSV列から読み取り、GS1チェックデジットを通過させます。ウェブでは検索しません。書き換えは事実確認され、ブランド、認証、沿革は創作されません。タイトルと矛盾するウェブ上の数値も入りません。商品情報の書き換えは1クレジット、画像は1クレジットです。サブスクリプションはありません。クレジットに有効期限はありません。写真のない商品には、PDFの切り抜き、手動アップロード、権利を確認したウェブ画像、またはAI法第50条に基づく表示を付けた生成イラストを使えます。
WooCommerceとの同期はSKUによる双方向で、重複商品を作りません。公式プラグインはWordPress.orgにあります。チャネル対応では、Googleショッピング、ChatGPTフィード、Meta、PDF、ショップ、アシスタントの回答を対象にできます。商品リストが整った後に印刷カタログが必要なら、Catalogue Studioで30種類のテンプレートからページを作成できます。サプライヤーのファイルから始める実務上の流れは、Katapicでのインポート、確認済みの対応付け、すでに販売しているSKUの更新です。逆方向が必要なら、同じレコードからページ付きカタログPDFを生成できます。
FAQ
PDFの価格表をWooCommerceにインポートするには?PDFを表のブロック単位で読み取り、列をSKU、商品名、説明、価格、通貨、属性に対応付けてから、SKUで同期します。これにより既存商品が更新されます。ページ全体を商品エディターに貼り付けないでください。GTINをチェックデジットで確認し、埋め込み画像を対応付け、その後にWooCommerce › 商品でサンプルを確認します。この手順により、サプライヤーから次のシーズンの商品一覧が届いたときも、SKUの重複を避けられます。
PDFカタログから抽出できる商品データは?通常は、SKU、商品名、追加の注記、価格、通貨、入数またはサイズ、記載されている場合のブランド名、GS1チェックデジットを通過したバーコード、埋め込み写真を抽出できます。見出しだけにある単位、結合セル、脚注は、分割するまで項目として扱えません。ファイルに記載されていない重量や素材などの事実は空欄のままにします。抽出とは、id、title、description、price、availability、brand、gtin、image_linkへの対応付けであり、カタログ全体の完全な書き換えではありません。
仕様を創作せずにPDFから自動でカタログ化できますか?列の検出と画像の抽出は自動化できます。ファイルにない素材、認証、GTINを書き込むことはできません。PDFの情報で空欄を自動入力し、チェックデジットの失敗を知らせ、バリエーションやGoogleカテゴリは確認を待つのが正直な手順です。別の場所で見つかった数値が販売者の商品名と矛盾する場合は、販売者の値を優先します。仕様を創作する自動化では、フィード審査で説明できない商品リストになります。
既存のWooCommerce SKUがある場合、PDFカタログのインポートはどう動きますか?PDFにあるSKUが照合キーになります。ショップにすでに同じSKUの商品があれば、その商品の価格、商品名、画像を更新し、URLは維持します。SKUが新しい場合は、商品を1つ作成します。SKUではなく商品名で照合すると、名称変更後に気付かない重複が生まれます。後から同じレコードをショッピングフィードに出力する場合も、SKUによる双方向同期が保護策になります。
PDFにあるバーコードやGTINはどうなりますか?セルに印刷された数字やバーコードとして描かれた数字をコピーし、GS1チェックデジットで検証します。合格すればgtinを書き込みます。不合格なら項目を空欄にし、検索エンジンから取得した数字で「修正」してはいけません。メーカーがGTINを発行していない場合は、推測せずidentifier_existsを設定します。これにより、Merchant Centerに別の商品用コードを保存することを避け、アシスタント向けフィードも倉庫の商品と一致させられます。
価格表をコピーすると単位や脚注が消えるのはなぜですか?単位は「4個入り1パックあたりの価格」のように見出しだけにあり、脚注はページ下部だけにあることが多いため、行だけをコピーしても取得できません。その結果、パック価格が単品価格として表示されたり、「VAT別」「電子レンジ不可」が抜けたりします。対応付けの際に見出しの単位を属性として保存し、脚注の事実をdescriptionにコピーします。この分割を省くと、後続のすべてのフィードで誤りが繰り返されます。
商品リストが整ったら、新しいカタログPDFを作成すべきですか?SKU、価格、写真が商品レコードとして保存された後は、ページ付きカタログPDFは正本ではなく副産物です。ショップのデータから生成すれば、印刷物とオンライン情報のずれを抑えられます。サプライヤーから受け取ったPDFは、元の事実を示す資料として保管してください。公開カタログ、ショッピングフィード、アシスタント用フィードは、前シーズンのファイルのレイアウトではなく、インポート後に確認した同じ項目を参照するべきです。
関連記事
よくある質問
- PDFの価格表をWooCommerceにインポートするには?
- PDFを表のブロック単位で読み取り、列をSKU、商品名、説明、価格、通貨、属性に対応付けてから、SKUで同期します。ページ全体を商品エディターに貼り付けないでください。GTINをチェックデジットで確認し、埋め込み画像を対応付け、その後にWooCommerce › 商品でサンプルを確認します。
- PDFカタログから抽出できる商品データは?
- 通常は、SKU、商品名、追加の注記、価格、通貨、入数またはサイズ、記載されている場合のブランド名、GS1チェックデジットを通過したバーコード、埋め込み写真を抽出できます。見出しだけにある単位、結合セル、脚注は、分割するまで項目として扱えません。ファイルに記載されていない事実は、商品情報に創作せず空欄にします。
- 仕様を創作せずにPDFから自動でカタログ化できますか?
- 列の検出と画像の抽出は自動化できます。ファイルにない素材、認証、GTINを書き込むことはできません。PDFの情報で空欄を自動入力し、チェックデジットの失敗を知らせ、バリエーションは確認します。別の情報源が販売者の商品名と矛盾する場合は、販売者の値を優先し、追加の主張は含めません。
- 既存のWooCommerce SKUがある場合、PDFカタログのインポートはどう動きますか?
- PDFにあるSKUが照合キーになります。一致すれば既存商品の価格、商品名、画像を更新し、URLを維持します。新しいSKUなら商品を1つ作成します。商品名で照合すると、名称変更後に重複が生まれます。SKUによる双方向同期が、後続のショッピングフィードやアシスタント用フィードにも有効な対策です。
- PDFにあるバーコードやGTINはどうなりますか?
- セルに印刷された数字やバーコードの数字をコピーし、GS1チェックデジットで検証します。合格すればgtinを書き込み、不合格なら空欄にします。検索エンジンから別の数字を取得して置き換えないでください。メーカーがGTINを発行していない場合は、別の商品に属するコードを推測せずidentifier_existsを設定します。
- 価格表をコピーすると単位や脚注が消えるのはなぜですか?
- 単位は見出しだけにあり、脚注はページ下部だけにあることが多いため、行単位のコピーでは取得できません。その結果、パック価格が単品価格として表示されたり、安全上の注記が抜けたりします。対応付けの際に見出しの単位を属性として保存し、脚注の事実をdescriptionにコピーします。
- 商品リストが整ったら、新しいカタログPDFを作成すべきですか?
- SKU、価格、写真が商品レコードとして保存された後は、ページ付きカタログPDFは正本ではなく副産物です。ショップのデータから印刷物を生成し、チャネル間のずれを抑えます。サプライヤーのPDFは元の事実を示す資料として保管し、公開カタログとフィードはインポート後に確認した項目を参照します。