入稿データフォーマット
概要
- データのフォーマットを整理します。
- ターゲットのユーザ
- 小売り
- メーカー
- マスタデータ管理周りのユースケースを整理し、フォーマットを定義します。
- 考えるユースケース
- Create
- 新規作成
- Update
- 更新
- Delete
- 物理削除or論理削除
文字コード
- Shift-JIS
- CR+LF
ロジック
基本ルールは「最新のマスタ情報を手元で管理し、そのファイルをアップロードする」
このルールを踏襲することにより運用は以下のようになります。
- CUD(Create, Update, Delete) のアップロードするインターフェイスは1つになります。
- 最新のマスタファイルは手元にある状態なので、最新のマスタファイルをいつでもアップロードして大丈夫な状態にシステム側を作ります。
内部の処理ロジック
- Create
- データをInsertします。(=upsert)
- Update
- プライマリキーが同じで、その他の項目が異なる場合は、その他の項目が更新されます。 (=upsert)
- Delete
- 手元のマスタデータから消してアップロードします。
CSVファイルの1行目は、ヘッダレコードです。マスタデータとしては取り込まれません。ヘッダレコードは仕様にある項目名と同一にしておく必要があります。
- カラムの順番は仕様通りの順番ではなくても大丈夫です。CSVファイルの1行目であるヘッダに記載がある情報を元に取り込まれます。
例:
営業員コード,営業所コード,メールアドレス,パスワード,姓,名,姓(かな),名(かな),権限,電話番号
123456,1,foo@example.com,strongpassword,山田,太郎,ヤマダ,タロウ,general,0120-444-444
ヘッダ
- 1行目はヘッダです
- 入稿されません
- ヘッダに書かれている文字は、カラムの定義にある文字列と一致する必要があります。
- 今後のアップデートにより、古いフォーマットのデータを入稿しないようにするためです。
型
MySQLの型に準拠します。
- string
- 文字
- マルチバイト文字も1文字とカウント
- mediumtext
- 16,777,215文字
- tinyint
- -128から127
- integer
- -2,147,483,648から2,147,483,647
- bigint
- -9223372036854775808から9223372036854775807
- boolean
- 半角数字
- false: 0, true: 1
- datetime
- YYYY-MM-DD hh:mm:ss
- date
- YYYY-MM-DD
表記
PK
- Primary Keyの略。主キーを指します。
- スコープ
- 各メーカー、各小売ごとです。
- 注文番号、カテゴリはシステム全体です。
FK
- Foreign Keyの略です。
- 別のマスタでPKとなっています。
長さ
- カラムのタイプが文字列ならば最大文字数
- カラムのタイプが数値ならば最大数
小売り・メーカー共通
支店マスタ
カラム | 名称 | 型 | 長さ | PK | FK | 必須 | 例 | 備考 |
---|---|---|---|---|---|---|---|---|
1 | 支店コード | string | 255 | o | o | 001 | ||
2 | 支店名 | string | 255 | o | 東京支店 |
営業所マスタ
カラム | 名称 | 型 | 長さ | PK | FK | 必須 | 例 | 備考 |
---|---|---|---|---|---|---|---|---|
1 | 営業所コード | string | 255 | o | o | 1 | ||
2 | 支店コード | string | 255 | o | o | 11 | ||
3 | 営業所名 | string | 255 | o | 渋谷 | |||
4 | 郵便番号 | string | 255 | o | 111-1111 | |||
5 | 都道府県 | string | 255 | o | 東京都 | |||
6 | 市区町村 | string | 255 | o | 渋谷区 | |||
7 | 町名番地 | string | 255 | o | 代々木1-1-1 | |||
8 | 建物名・部屋番号 | string | 255 | 代々木ハウス1-1-1 | ||||
9 | 電話番号 | string | 255 | 03-0000-0000 | ||||
10 | FAX番号 | string | 255 | 03-0000-0000 |
ユーザマスタ
カラム | 名称 | 型 | 長さ | PK | FK | 必須 | 例 | 備考 |
---|---|---|---|---|---|---|---|---|
1 | 営業員コード | string | 255 | o | o | 1 | ||
2 | 営業所コード | string | 255 | o | 11 | |||
3 | メールアドレス | string | 255 | o | example@example.com | |||
4 | パスワード | string | 255 | 空の場合は更新されません | ||||
5 | 姓 | string | 255 | o | 佐藤 | |||
6 | 名 | string | 255 | o | 太郎 | |||
7 | 姓(かな) | string | 255 | o | さとう | |||
8 | 名(かな) | string | 255 | o | たろう | |||
9 | 権限 | string | 255 | o | general | admin: 管理者 general: 一般1 | ||
10 | 電話番号 | string | 255 | 090-0000-0000 |
納品先住所マスタ
カラム | 名称 | 型 | 長さ | PK | FK | 必須 | 例 | 備考 |
---|---|---|---|---|---|---|---|---|
1 | 納品先コード | string | 255 | o | 1 | |||
2 | 支店コード | string | 255 | o | 1 | 指定した場合、営業員が所属する支店で絞り込むことができます | ||
3 | 営業所コード | string | 255 | o | 1 | 指定した場合、営業員が所属する営業所で絞り込むことができます | ||
4 | 納品先名 | string | 255 | o | 横浜営業所 | |||
5 | 郵便番号 | string | 255 | o | 227-0062 | |||
6 | 都道府県 | string | 255 | o | 神奈川県 | |||
7 | 市区町村 | string | 255 | o | 横浜市青葉区 | |||
8 | 町名番地 | string | 255 | o | 1-2-3 | |||
9 | 建物名・部屋番号 | string | 255 | ABCビル | ||||
10 | 電話番号 | string | 255 | 03-1111-2222 |
メーカーのみ
商品
カラム | 名称 | 型 | 長さ | PK | FK | 必須 | 例 | 備考 |
---|---|---|---|---|---|---|---|---|
1 | 型式(品番) | string | 255 | o | o | 1234567890 | ||
2 | カテゴリID | bigint | o | o | 1 | |||
3 | メーカー内部コード | string | 255 | |||||
4 | 商品名 | string | 255 | o | ||||
5 | メーカー希望小売価格(税抜) | integer | 2,147,483,647 | 単位は日本円。税抜。空白の場合はオープンプライス。 | ||||
6 | 目安納期日数 | integer | 2,147,483,647 | o | 3 | 営業日の数字を記載 | ||
7 | ガスマスタを使うかどうかフラグ | boolean | o | 1 | 注文時にLPか都市ガスかを選択する必要がある商品 | |||
8 | カタログURL | text | 65535 | |||||
9 | 承認図URL | text | 65535 | |||||
10 | 商品説明 | text | 65535 | 改行タグ<br> を使用することができます |
商品詳細 (Phase1未利用)
カラム | 名称 | 型 | 長さ | PK | FK | 必須 | 例 | 備考 |
---|---|---|---|---|---|---|---|---|
1 | 型式(品番) | string | 255 | o | o | o | 1234567890 | |
2 | 項目名 | string | 255 | o | o | 説明、動画URL、サイズなど | ||
3 | Markdown テキスト | mediumtext | 16,777,215 | o |
金額と納期目安
形式(品番)ごと、小売ごとに納期目安を設定したい場合は4カラム目に納期目安の日にちを入力します。
カラム | 名称 | 型 | 長さ | PK | FK | 必須 | 例 | 備考 |
---|---|---|---|---|---|---|---|---|
1 | 型式(品番) | string | 255 | o | o | o | 1234567890 | |
2 | 小売コード | string | 255 | o | o | o | ||
3 | 契約金額 | integer | 2,147,483,647 | o | 税抜 | |||
4 | 目安納期日数 | integer | 2,147,483,647 | 3 | 営業日の数字を記載 | |||
5 | 開始日時 | datetime | o | |||||
6 | 終了日時 | datetime |
メーカー側の注文担当者
カラム | 名称 | 型 | 長さ | PK | FK | 必須 | 例 | 備考 |
---|---|---|---|---|---|---|---|---|
1 | 小売コード | string | 255 | o | o | o | ||
2 | 小売営業所コード | string | 255 | o | o | o | ||
3 | メーカー営業員コード | string | 255 | o | o | o |
納期回答
- 納期回答は、受注した商品の1品番に対して1レコードで行います。
カラム | 名称 | 型 | 長さ | PK | FK | 必須 | 例 | 備考 |
---|---|---|---|---|---|---|---|---|
1 | 注文番号 | string | 255 | o | o | o | ||
2 | 注文明細No | string | 255 | o | o | o | ||
3 | 納期日 | date | o | |||||
4 | 小売コード | string | 255 | o |
商品画像
- ロジック
- CSVファイルの入稿とは処理のロジックが異なります。
- 画像ファイルは追加されていきます。
- 削除するためには品番を削除するか、同じファイル名で再度アップロードしてください。
- 商品情報と紐付け可能なファイル名規則とする。
- フォーマット
[product_code]-[sort].[extension]
- product_code: 型式(品番)
- sort: 2桁の数字
- extension: ファイル拡張子。jpg, png, gifが許可されています。
- ファイル名の例
ABC-00.jpg
product-code-01.png
product-code-02.png
any-name/product-code-01.png
- ディレクトリに入っていても大丈夫です。
- アップロードされたファイルを処理するプログラムはファイル名だけを参照して処理を行います。
- フォーマット
- 画像ファイルをzipファイルにまとめてアップロードします。
- 商品が削除されたタイミングで対象商品の画像が削除されます。
- ファイル容量、画像サイズの上限や下限は現時点では設定していません。参考までに以下に目安を記載いたします。
- 画像の大きさ目安
- 横幅の下限: 200px
- 横幅上限: 1000px
- 画像の大きさ目安
受注CSV
- 雲の宇宙船と同じフォーマットで行う
- カラムの定義は同じですが、用語はタノミマスターの用語に合わせてあります。 - レコードのソート
- 発注依頼区分、営業所、発注日時、注文番号、発注明細Noの昇順
カラム | 名称 | 型 | 長さ | PK | FK | 必須 | 例 | 備考 |
---|---|---|---|---|---|---|---|---|
1 | 発注依頼区分 | integer | 1 | o | o | o | 0:発注 1:発注キャンセル | |
2 | 小売コード | string | 255 | o | ||||
3 | 小売名 | string | 255 | o | ||||
4 | 小売支店コード | string | 255 | o | ||||
5 | 小売支店名 | string | 255 | o | ||||
6 | 小売営業所コード | string | 255 | o | ||||
7 | 小売営業所名 | string | 255 | o | ||||
8 | 発注日時 | 半角英数字 | 16 | o | o | o | 発注確定日時(テーブルの値) | |
9 | 仕入先名 | string | 32 | o | o | o | ||
10 | 注文番号 | 半角英数字 | 10 | o | 注文番号 | |||
11 | 注文明細No | 半角英数字 | 3 | o | 明細No | |||
12 | 型式(品番) | string | 255 | o | ||||
13 | メーカー内部コード | 半角英数字 | 255 | o | ||||
14 | ガス種 | 半角英数字 | 10 | LP, 13Aなど | ||||
15 | カタログURL | text | 65535 | |||||
16 | 承認図URL | text | 65535 | |||||
17 | 発注数 | integer | 4 | o | ||||
18 | 発注単価 | integer | 9 | o | ||||
19 | 希望納期 | date | 10 | |||||
20 | メーカー営業所名 | string | 255 | o | ||||
21 | メーカー営業所電話番号 | string | 15 | o | ||||
22 | メーカー営業所FAX | string | 15 | o | ||||
23 | 小売担当者名 | string | 255 | o | ||||
24 | 納品先名 | string | 20 | o | ||||
25 | 納品先住所 | string | 152 | o | ||||
26 | 納品先TEL | string | 15 | o | ||||
27 | 明細単位の備考 | string | 255 | |||||
28 | 注文単位の備考 | string | 255 |
商品属性
- メーカーの管理メニューから遷移可能な「商品属性」のページに、CSV入稿時に利用する「サブマスタ区分」と「サブマスタ区分値」の値を記載しています。
- 管理者権限のユーザのみ閲覧可能。
カラム | 名称 | 型 | 長さ | PK | FK | 必須 | 例 | 備考 |
---|---|---|---|---|---|---|---|---|
1 | 型式(品番) | string | 255 | o | ||||
2 | サブマスタ区分 | string | 255 | o | bath | |||
3 | サブマスタ区分値 | string | 255 | o | reheating |
- v3.9.0にて変更しました。下位互換性維持のためにv3.8.0以前に利用していたclerk, salesを指定した場合はgeneralとして扱われます。v4でこの下位互換性は削除予定です。↩