SOY Shopのインポートエクスポートで、0からはじまる数字を扱いたい場合どうすれば良いのか?

という質問がありました。


0からはじまる数字というのは、

たとえば会員IDを00015という形で、15番なんだけど、今後の運営を見こうして5桁の数字と見なすようなことで、

最初に0を入れておくことで桁数が増えた時でもデータの並び替えがしやすくなります。


この説明を踏まえた上で、今回の質問に移ります。

今回の説明ではCSVの編集でLibreOfficeというオープンソースのオフィススイートを利用します。

MicroSoftのOfficeを持っていたとしても、CSVの操作はLibreOfficeで行うことをおすすめします。

LibreOffice(CSV周り) - おすすめ - SOY CMSを使ってみよう




はじめにカスタムフィールドかカスタムサーチフィールドで0からはじまる数字を入力するためのフィールドを作成します。

SOY Shopで高度な検索フォームを設置してみよう


CSVのエクスポートの準備として、作成したフィールドに



このように0から始まる数字を入力して更新します。

更新後に商品のCSVエクスポートの画面を開き、標準設定の状態でCSVをエクスポートします。


ダウンロードできたファイルをLibreOfficeで開くと、

※説明のために不要な項目のエクスポートは行っていません。



SOY Shopの管理画面で入力した00015が先頭の0の並びが外れて15と表示されてしまいます。

一応CSVファイルをテキストエディタで開いてみると、


1,item-001,苔オブジェ,00015

となっているので、SOY Shopからの出力は登録した値そのまま出力して、LibreOfficeの方が0を除く処理をしているらしい。

LibreOfficeの設定をそのままにして00017といった形を入力しても、自動で0が除かれ、

この状態でSOY ShopでCSVインポートしても、17というデータが登録されていまいます。




これから冒頭の0が消えてしまう対策を記載します。



数字を編集したいセルにフォーカスし、右クリックでセルの書式設定を開きます。




セルの書式設定の画面にある先頭のゼロの値に桁数を入れてOKを押すと、

※今回は5桁の数字なので5と入力する



セルの数字の箇所の表示が変わります。

この状態で00015から00017に変更します。


念の為にCSVファイルをテキストエディタで開いて確認してみて、


1,item-001,苔オブジェ,00017

冒頭の0が消えてないことを確認した上でSOY Shopの管理画面のCSVインポートを試してみると、



無事に冒頭の0が消えていない値として数字が登録されました。