入稿データフォーマット
概要
- データのフォーマットを整理します。
- ターゲットのユーザ
- 小売り
- メーカー
- マスタデータ管理周りのユースケースを整理し、フォーマットを定義します。
- 考えるユースケース
- 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,山田,太郎,ヤマダ,タロウ,sales,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 | 営業所コード は 権限 がsales の場合に必須です。 | ||
| 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 | sales | admin: 管理者権限 clerk: 事務員 sales: 営業員 | ||
| 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 | ASCII文字( \:*?"<> 以外) | |
| 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か都市ガスかを選択する必要がある商品 |
商品詳細 (Phase1未利用)
| カラム | 名称 | 型 | 長さ | PK | FK | 必須 | 例 | 備考 |
|---|---|---|---|---|---|---|---|---|
| 1 | 商品コード | string | 255 | o | o | o | 1234567890 | ASCII文字( \:*?"<> 以外) |
| 2 | 項目名 | string | 255 | o | o | 説明、動画URL、サイズなど | ||
| 3 | Markdown テキスト | mediumtext | 16,777,215 | o |
金額
| カラム | 名称 | 型 | 長さ | PK | FK | 必須 | 例 | 備考 |
|---|---|---|---|---|---|---|---|---|
| 1 | 商品コード | string | 255 | o | o | o | 1234567890 | ASCII文字( \:*?"<> 以外) |
| 2 | 小売コード | string | 255 | o | o | o | ||
| 3 | 契約金額 | integer | 2,147,483,647 | o | 税抜 | |||
| 4 | 開始日時 | datetime | o | |||||
| 5 | 終了日時 | 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 |
商品画像
- ロジック
- CSVファイルの入稿とは処理のロジックが異なります。
- 画像ファイルは追加されていきます。
- 削除するためには品番を削除するか、同じファイル名で再度アップロードしてください。
- 商品情報と紐付け可能なファイル名規則とする。
- フォーマット
[商品コード]-[sort].[jpg, png, gif]- sort: 2桁の数字
- ファイル名の例
0000001-00.jpg1234567-01.pngasdfasdf-01.pngasdfasdf/asdfasdf-01.png
- ディレクトリに入っていても大丈夫です。
- アップロードされたファイルを処理するプログラムはファイル名だけを参照して処理を行います。
- フォーマット
- 画像ファイルをzipファイルにまとめてアップロードします。
- 商品が削除されたタイミングで対象商品の画像が削除されます。
- ファイルサイズの上限や下限は現時点では設定していません。参考までに以下に目安を記載いたします。
- 画像の大きさ目安
- 横幅の下限: 200px
- 横幅上限: 1000px
- 画像の大きさ目安
受注リスト
- 雲の宇宙船と同じフォーマットで行う
- カラムの定義は同じですが、用語はタノミマスターの用語に合わせてあります。
- レコードのソート
- 発注依頼区分、営業所、発注日、注文番号、発注明細No の昇順
| カラム | 名称 | 型 | 長さ | PK | FK | 必須 | 例 | 備考 |
|---|---|---|---|---|---|---|---|---|
| 1 | 発注依頼区分 | 数値 | 1 | o | o | o | 0:発注 1:発注キャンセル | |
| 2 | 小売コード | 文字列 | 255 | o | ||||
| 3 | 小売名 | 文字列 | 255 | o | ||||
| 4 | 支店コード | 文字列 | 255 | o | ||||
| 5 | 支店名 | 文字列 | 255 | o | ||||
| 6 | 営業所コード | 文字列 | 255 | o | ||||
| 7 | 営業所名 | 文字列 | 255 | o | ||||
| 8 | 発注日時 | 半角英数字 | 16 | o | o | o | 発注確定日時(テーブルの値) | |
| 9 | 仕入先名 | 文字列 | 32 | o | o | o | ||
| 10 | 注文番号 | 半角英数字 | 10 | o | 注文番号 | |||
| 11 | 注文明細No | 半角英数字 | 3 | o | 明細No | |||
| 12 | 商品コード | 文字列 | 255 | o | ||||
| 13 | メーカー内部コード | 半角英数字 | 255 | o | ||||
| 14 | ガス種 | 半角英数字 | 10 | LP, 13Aなど | ||||
| 15 | 発注数 | 数値 | 4 | o | ||||
| 16 | 発注単価 | int | 9 | o | ||||
| 17 | 希望納期 | date | 10 | |||||
| 18 | 営業所名 | string | 255 | o | ||||
| 19 | 営業所電話番号 | string | 15 | o | ||||
| 20 | 営業所FAX | string | 15 | o | ||||
| 21 | 担当者名 | string | 255 | o | ||||
| 22 | 納品先名 | string | 20 | o | ||||
| 23 | 納品先住所 | string | 152 | o | ||||
| 24 | 納品先TEL | string | 15 | o | ||||
| 25 | 備考 | string | 22 | |||||
| 26 | 自社_会社名 | string | 50 | |||||
| 27 | 自社_部署名 | string | 50 | |||||
| 28 | 自社_郵便番号 | string | 8 | |||||
| 29 | 自社_住所 | string | 152 | |||||
| 30 | 自社_電話番号 | string | 15 | |||||
| 31 | 自社_FAX番号 | string | 15 |
カテゴリマスタ
- システム全体で共通のカテゴリ設定を利用します。
階層での表記
- 1 ガス機器
- 2 給湯器 **
- 3 ガス給湯器
- 4 ハイブリッド
- 5 小型湯沸かし器
- 6 ガスコンロ **
- 7 ビルトイン
- 8 テーブル
- 9 レンジフード
- 10 炊飯器 *
- 11 乾燥機 *
- 12 暖房機 *
- 13 ファンヒーター
- 14 ガスストーブ
- 2 給湯器 **
- 15 住宅設備機器
- 16 システムキッチン *
- 17 システムバス *
- 18 洗面化粧台 *
- 16 システムキッチン *
表記
**小売りトップにて大きいアイコンでリンク*小売りトップにて小さいアイコンでリンク
ID一覧
| ID | 名称 |
|---|---|
| 1 | ガス機器 |
| 2 | 給湯器 |
| 3 | ガス給湯器 |
| 4 | ハイブリッド |
| 5 | 小型湯沸かし器 |
| 6 | ガスコンロ |
| 7 | ビルトイン |
| 8 | テーブル |
| 9 | レンジフード |
| 10 | 炊飯器 |
| 11 | 乾燥機 |
| 12 | 暖房機 |
| 13 | ファンヒーター |
| 14 | ガスストーブ |
| 15 | 住宅設備機器 |
| 16 | システムキッチン |
| 17 | システムバス |
| 18 | 洗面化粧台 |