COLUMNS
Shopifyでのテーブル定義(オブジェクト構造定義)
従来型のシステム開発に携わったことのある方であれば、ShopifyのECシステムのテーブル定義はどうなっているのかと気になるかもしれません。想像するようなものはShopifyは提供しておりませんが、代わりにAPIドキュメントが用意されております。本記事では、APIドキュメントをテーブル定義的なものに変換した資料と、関係のあるShopifyの設計や仕様について説明します。
Shopifyがデータ操作に於いて従来型のECシステムと大きく異なるのは、データベース中心設計ではなく、API中心設計となっていることです。Shopify自体はもちろんデータベースにデータを保管しておりますが、Shopifyのユーザー(EC事業者)はSQL経由でデータを取得する(できる)わけではなく、管理画面やアプリからの抽出か、API経由での取得となります。
APIから取得できるデータに於いては、リソースのことをテーブルとは言わず、オブジェクトと言います。そこで、テーブル定義ならぬ、オブジェクト構造定義という言い方をしています。
Shopifyで取得できるオブジェクトは多岐に渡りますが、主たるものとしては下記となります。
- 商品(Product)とバリアント(Product Variant)
- コレクション(Collection) *カテゴリのこと
- 顧客(Customer)
- 注文(Order)、Refund(返金)、Transaction(トランザクション)
- 出荷(Fulfillment)
- 拡張項目(Metafield)
これらのオブジェクトのAPIドキュメントはREST API版とGraphQL版の二種が用意されており、慣れないうちや、概念的な定義をしているうちはREST API版を参考にするのが良いでしょう。
これらのドキュメントでは、各データ項目はプロパティとして説明されており、例えば下記はProductオブジェクトの最初の3項目です。
body_html |
A description of the product. Supports HTML formatting. |
created_at READ-ONLY |
The date and time (ISO 8601 format) when the product was created. |
handle |
A unique human-friendly string for the product. Automatically generated from the product's |
まだドキュメントが英語のみというところから始まり、各項目の説明は確かにされているものの、普段見慣れているものとは違いますよね。
ということで、当社ではプロジェクト都度、そのECサイトのオブジェクト構造定義をまとめております。下記の要領で、オブジェクト分Excelのシートがある形です。
オブジェクト構造定義書が役に立つ主なシーンは、
- Shopifyへのデータ移行時の新旧システムのデータのマッピング
- データ連携開発時のデータ項目の認識合わせ
- フロントエンド開発時の、項目一覧やその意味の確認
です。リリース時は良くても、どんどん忘れていくので、どの項目を何に使っているかのドキュメントは必須と考えます。
拡張項目Metafieldについて
ShopifyのAPIドキュメントをさらっと見た方は、決まったプロパティしかAPIで返ってこないため、独自のデータ項目は追加できないのか、と思われた方もいるかもしれません。データ項目の拡張は自在に可能でして、Metafieldという仕組みで、各オブジェクトにデータ項目を追加していくことができます。Metafield自体の説明は別の機会にしますが、Shopifyのオブジェクトは項目の拡張ができ、それもAPI経由で取れると認識いただいて相違ないです。
以上、Shopifyでのテーブル定義(オブジェクト構造定義)についてでした。
オブジェクト構造定義のテンプレートExcelファイルをご要望の方は、フラッグシップまでお問い合わせください。