点数が増えると、何が崩れるか

商品が30点なら、価格改定の日に30ページを開いて直せば終わります。300点になると、同じ作業が10倍になります。1ページを開き、価格を探して直し、保存して、表示を確かめる。1件2分でも10時間です。

時間だけの問題ではありません。

  • 直し漏れ:何日かに分けて直すあいだ、新しい価格のページと古い価格のページが混ざる。最後まで直したつもりで、数件が残る
  • 表記のゆれ:「税込」と「税込み」、「mm」と「ミリ」。直す人や日によって書き方が変わる
  • 人への依存:どのページに何が書いてあるかを、一人の担当者だけが知っている

点数が増えると、1件ずつの更新は、手間ではなく精度の問題になります。

変わる情報を、頻度で分けてみる

一括更新を考える前に、商品の情報のうち、何が、どれくらいの頻度で、何件まとめて変わるのかを分けてみます。

情報 変わり方
価格 年に数回、多くの商品が一度に変わる
販売・受付の状況 商品ごとに、ばらばらに変わる
仕様・寸法 改良のときに、その商品だけ変わる
説明文・画像 たまに、個別に直す
新発売・販売終了 時期がまとまることが多い

多くの商品が一度に変わる情報は、一括更新に向きます。1件ずつ事情が違い、書き方に判断が要る情報は、手で直すほうが確実です。全部を一括にする必要はありません。

ページではなく、項目で持つ

一括更新ができるかどうかは、情報の持ち方で決まります。

商品の情報がページの本文に文章として書かれていると、価格は段落の途中に埋もれています。どこに価格があるかはページごとに違い、機械的に直すことはできません。

品名、型番、価格、寸法、説明、画像。これを決まった項目として持っていれば、「価格の項目だけを、この300件について変える」ことができます。ページは、その項目を並べて見せたものになります。

これから商品ページを作るなら、項目で持つ形にしておくことが、将来の一括更新の前提になります。

一括更新のやり方を比べる

やり方 向いている場面 気をつけること
何人かで分担して手で直す 点数がそこまで多くない。1件ずつ判断が要る 人によって書き方がゆれる。直し漏れの確認に手間がかかる
CSVファイルで取り込む まとまった変更が定期的にある。元のデータが表で手元にある ファイルの作り方を誤ると、一度に全部が間違う
別のシステムとつなぐ 元のデータが別のシステムにあり、頻繁に変わる 仕組みを作って保守する費用がかかる。つながりが止まったときに気づける必要がある

ファイルで取り込むやり方は、手間と仕組みの中間にあります。多くの現場で最初に検討されるのは、これです。

一括更新で事故を起こさないために

一括更新は、正しければ一度に全部が直り、誤っていれば一度に全部が壊れます。事故を防ぐ要点は、次のとおりです。

どの行がどのページかを、変わらない番号で結ぶ

ファイルの1行と、サイトの1ページを結びつけるものが要ります。品名はキーに向きません。品名は変わりますし、似た名前もあります。URLも、構成を見直せば変わります。システムが付けた、変わらない番号で結びます。

変えない列は、ファイルに入れない

全項目をファイルに入れて取り込むと、変えるつもりのない項目まで上書きされます。ファイルを作ったあとに誰かが画面で直した説明文が、ファイルの古い内容で上書きされて消えます。価格だけを変えるなら、ファイルには番号と価格だけを入れます。

あわせて、空欄のセルがどう扱われるかを確かめておきます。システムによって、空欄は「値を消す」ことも「触らない」こともあります。

いきなり本番に流さない

まずテストとして流し、何件が更新されるのか、エラーになる行はないかを確かめます。本番に流したあとも、何件かのページを開いて、表示を確かめます。

失敗した行だけを、流し直す

300行のうち5行が失敗することはあります。どの行が、なぜ失敗したのかが分かれば、その5行だけを直して流し直せます。全部を流し直すと、成功していた295行に同じ処理がもう一度かかり、確かめる範囲が広がります。

取り込む前の状態を取っておく

取り込む前に、いまの内容をファイルに出力しておきます。取り込んだあとで比べることも、元に戻すこともできます。

販売終了と新発売の扱い

販売が終わった商品のページを、すぐに消すとは限りません。古い型番で検索してくる人がいます。「販売を終了しました」と書き、後継の商品へ案内したほうが親切な場合もあります。消すか、見えなくするか、案内を添えて残すか、方針を決めておきます。

新しい商品は、発売日の前にページを用意し、発売日に見えるようにしておきます。公開するかどうか、いつからいつまで公開するかも項目として持っていれば、販売終了や新発売が何十点もまとまったときに、ほかの項目と同じように一括で扱えます。

writeWiredでは

writeWiredでは、コンテンツは項目の集合として保存されます。フォーム入力(定型編集)の画面では、テンプレートが定義した項目を埋めてコンテンツを作り、その項目が、CSVの列と対応します。画面で作るものとCSVで作るものが、同じ構造になります。

コンテンツのCSV取込でできることは、次のとおりです。

  • CSVでコンテンツを一括登録・更新する
  • 既存のコンテンツは、コンテンツIDで特定する(URLを変えることがあるため、URLはキーにしない)
  • CSVに無い列は触らずに更新する(列を絞った部分更新)
  • 本取込の前にテスト取込をして、結果を確かめてから反映する
  • コンテンツをCSVへ出力する
  • 掲載期間やステータスもCSVで更新する
  • 画像やファイルを、ライブラリ上のパスで指定する
  • ディレクトリ一覧からは、そのディレクトリ配下を対象に同じ操作をする

取込の実行はバッチとして記録されます。バッチ一覧では、処理の状態(実行前・実行中・エラー・終了)、成功と失敗の行数、エラーの注記、誰が流したかを確かめられ、詳細レポートをダウンロードできます。

一括更新の要点には、次のように当たります。行とページを結ぶのはコンテンツIDです。価格だけを変えるなら、コンテンツIDと価格の列だけのCSVを取り込めば、ほかの項目には触れません。本取込の前にテスト取込を挟み、失敗した行はバッチ一覧で確かめて、その行だけを直して流し直します。取り込む前の状態は、CSVへの出力で取っておけます。販売終了や新発売が何十点もまとまったときは、掲載期間やステータスの列で扱えます。

CSVのファイルを作る作業と、元になるデータを整えることは、取込の手前にある作業です。

運用の困りごと 一覧へ