CSVで商品を一括登録しようとしたら、赤いエラーメッセージが並んで先へ進めない。この記事は、そこで手が止まった人向けです。エラーの種類は多く見えます。でも原因はだいたい数パターンです。メッセージの読み方から順に見ていきます。
エラーメッセージの「*行目」はヘッダー行を含む
スマレジのCSVアップロードに失敗すると、『11行目:[商品コード]半角英数記号で入力してください』のような形式でエラーが表示されます。行数と原因がセットになっているので、実は親切な作りです。
1つだけ注意があります。この『*行目』は、項目名が書かれたヘッダー行を含んだCSVファイル上の行数です。商品データの11件目、ではないのです。Excelで開いたときの行番号がそのまま対応するので、エラーに『11行目』とあればExcelの11行目を見ます。データの件数で数えて1行ずれたまま探すと、エラーのない行を延々と直し続けることになります。
よくあるエラーと対処
公式ヘルプ「CSVアップロードでエラーになる場合」に載っている主なメッセージと、直し方です。
- 項目数不正(◯項目): CSVファイルと『CSVアップロード設定』が一致していません。スマレジのCSV登録は、管理画面側で設定した項目と、ファイル側の項目の内容・並び順が完全に一致している必要があります。エラーの大半はここです。『商品 > 商品登録 > CSVで登録』から【CSVアップロード設定】を開き、ファイルの列と順番まで揃えます
- Shift-JIS以外の文字が含まれています: 保存形式の問題です。スマレジにアップロードするCSVはShift-JIS形式が前提で、UTF-8で保存するとエラーになります。Excelなら『ファイルの種類』で『CSV』を選びます。『CSV UTF-8』を選んではいけません。GoogleスプレッドシートはShift-JISで保存できないため、公式ヘルプでも他の表計算ソフトの利用が案内されています
- この商品コードは既に登録されています: 登録済みの商品コードと重複しています。管理画面の商品一覧で既存の商品コードを確認して、別のコードにするか、上書き更新の手順に切り替えます
- この部門IDは存在しません: CSVに書いた部門IDが、スマレジ側にまだ登録されていません。部門は商品より先に登録しておく必要があります
- 「税設定」のみのアップロードはできません: 『税設定』と『部門の税設定を使用』は2つで1セットです。片方だけ項目に入れるとエラーになるので、アップロード設定とCSVファイルの両方に2項目とも追加します
- アップロードに失敗しました: ファイルが大きすぎるか、連続アップロードのタイミングの問題です。CSVは10MB以内・最大3,500件が上限なので、超える場合はファイルを分けます
どのエラーでも、まず疑うべきは1つ目の「設定とファイルの不一致」です。公式ヘルプにも「エラー内容に関わらず不一致が原因の可能性があります」と書かれています。
商品コードが「4.57135E+12」になる指数表記
もう1つ、CSV登録でつまずく定番が数値の文字化けです。JANコードのような13桁の数値をExcelで開くと、『4.57135E+12』という表示に変わることがあります。指数表記といって、桁数の多い数値を表計算ソフトが省略して表示する機能です。おおむね12〜13桁以上で発動します。
見た目の問題だけなら無害ですが、このまま保存すると列内の違うコードが同じ文字列として保存され、アップロード時のエラー原因になります。直し方はこうです。
- 該当する列の列名(A、B、C…の部分)をクリックして、列全体を選択します
- 右クリックして『セルの書式設定』を開きます
- 『表示形式』の分類を【標準】から【数値】に変更し、【OK】をクリックします
- ファイル形式『コンマ区切り(.csv)』で保存します
罠がもう1つあります。保存したCSVをもう一度Excelで開くと、また指数表記に戻ります。保存後のファイルは開き直さず、そのままアップロードに使ってください。確認のつもりで開いたファイルを上書き保存して、元に戻ってしまうのがお決まりのパターンです。
CSVを整える作業ごとなくす選択肢もある
ここまでの対処で、たいていのエラーは抜けられます。ただ、入荷のたびに「設定と列を揃えて、Shift-JISで保存して、開き直さない」を守り続けるのは、正直なところ面倒です。CSVの整形が本業になってしまっている店もあります。
私が作っている「らくらくAI商品登録」というスマレジ連携アプリは、この整形工程を丸ごと省くためのものです。納品書のPDFやExcel、コピーして貼り付けたテキストをAIが読み取り、スマレジの商品マスタの形に変換して、画面上で確認・修正してから登録します。文字コードも列の並び順も気にする必要がありません。CSVとの付き合いに疲れたら、選択肢の1つとして見てみてください。
