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
"body_html": "It's the small iPod with a big idea: Video."

A description of the product. Supports HTML formatting.

created_at
READ-ONLY
"created_at": "2012-02-15T15:12:21-05:00"

The date and time (ISO 8601 format) when the product was created.

handle
"handle": "ipod-nano"

A unique human-friendly string for the product. Automatically generated from the product's title. Used by the Liquid templating language to refer to objects.

 

まだドキュメントが英語のみというところから始まり、各項目の説明は確かにされているものの、普段見慣れているものとは違いますよね。

ということで、当社ではプロジェクト都度、そのECサイトのオブジェクト構造定義をまとめております。下記の要領で、オブジェクト分Excelのシートがある形です。

オブジェクト構造定義サンプル

 

オブジェクト構造定義書が役に立つ主なシーンは、

  1. Shopifyへのデータ移行時の新旧システムのデータのマッピング
  2. データ連携開発時のデータ項目の認識合わせ
  3. フロントエンド開発時の、項目一覧やその意味の確認

です。リリース時は良くても、どんどん忘れていくので、どの項目を何に使っているかのドキュメントは必須と考えます。

拡張項目Metafieldについて

ShopifyのAPIドキュメントをさらっと見た方は、決まったプロパティしかAPIで返ってこないため、独自のデータ項目は追加できないのか、と思われた方もいるかもしれません。データ項目の拡張は自在に可能でして、Metafieldという仕組みで、各オブジェクトにデータ項目を追加していくことができます。Metafield自体の説明は別の機会にしますが、Shopifyのオブジェクトは項目の拡張ができ、それもAPI経由で取れると認識いただいて相違ないです。

 

以上、Shopifyでのテーブル定義(オブジェクト構造定義)についてでした。

オブジェクト構造定義のテンプレートExcelファイルをご要望の方は、フラッグシップまでお問い合わせください。

 

← 一覧に戻る