点数が増えると、何が崩れるか
商品が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のファイルを作る作業と、元になるデータを整えることは、取込の手前にある作業です。
この記事の根拠となる機能