見出し画像

【GAS】デシル分析用の顧客データをShopify APIで取得してみる#09 (Shopify API + GoogleAppsScript)

こんにちは。Shopify専門エンジニアのまりん(@crowd37cord)です。

今日はShopify APIとGoogleスプレッドシートを使って、前回取得した注文データに顧客IDも追加してみます。

その顧客IDをもとに、デシル分析用の表とグラフを作成してみます!

前回の続きに顧客IDだけ表示するようにします。

ちなみに、データはダミーデータです。

デシル分析って何?って人はググれば情報たくさんあるのでお調べください!本記事では、コードや計算式などの解説はしておりません。

✔︎今日のゴール


✔︎作成手順

◆事前準備

まずはShopify APIを取得。まだの場合は下記ご参考ください。

◆アクセススコープ

アクセススコープは
・注文:read_orders
・顧客:read_customers
を使用します。

Step1  前回作成した注文情報取得したスプレッドシートを開く

O列に「顧客ID」欄を追加。

O4にヘッダー追加

Step2  スクリプトエディタを開く

下記を追記

if(order.customer != null){
      var customer_id = order.customer["id"];
    } else {
      var customer_id = "null";
    }

オーダー直下に顧客IDがあるので、

var order = orders[i];

の近くにコピペでいいと思います。

②var orderInfo 内にオブジェクト追記

下記の中に

var orderInfo = {}

こちらを追記。

customer_id: customer_id //顧客ID


③下記の中に

for (let i = 0; i < orderlists.length; i++){}

こちらを追記。

ss.getRange(i+5,15).setValue(list.customer_id); //顧客ID

顧客IDを取得してスプレッドシートに反映することができました。


ちなみにダミーで仮注文しているので、顧客がいないところはNullが表示されるようにしています。本番データは購入時点で顧客情報取得されると思うのでNullの記述はいらないと思います。

Step3 顧客IDを別シートに取得

注文情報からのIDだけだと、購入していないお客様のIDは取得されないので、購入していないお客様を含めたID一覧を作ろうと思います。

①新しくシート追加して「Customer」としておきます。

②スクリプトエディタで新規ファイル作成

ファイル名はなんでもOK です。
→私はcustomer.gsにしました

③顧客IDを取得するためにCustomerのAPIを使います。

/admin/api/2022-04/customers.json

参考:https://shopify.dev/api/admin-rest/2022-04/resources/customer#get-customers-count

上記の記載にすれば良いので、URLのところは下記にするだけでOK。

var response = UrlFetchApp.fetch(`https://${SHOP_ID}.myshopify.com/admin/api/${API_VERSION}/customers.json`,options);


④スプレッドシートに顧客IDを反映

//スプレッドシートに反映
function requestCustomerInfo() {
  var c = requestCustomerID_();
  var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Customer');

  for (var i = 0; i < c.customers.length; i++){
    var info = c.customers[i];
    ss.getRange(i+5,2).setValue(info.id); //顧客ID
  }
}


⑤ボタンにスクリプトを割り当てる

下記を割り当て。

requestCustomerInfo

以上でGASの方の設定は完了です。
顧客ごとの販売購入額を合計して順位を追記したいのでB列に表示されるようにしました。

順位、購入金額、グループ分けの欄も先に作っておきます。

A4:順位
C4:購入金額
D4:グループ分け

💡スクリプトフルコード

orderinfo.gsとcustomer.gsのフルコードを下記に置いておきます。
そのままコピペで使えると思います。

【ご購入時のご注意】
解説はしておりません。
コピペ用コードのみの販売になります。
サポート&返金は致しません。
環境により使用できないことはあるかもしれません。

ここから先は

6,915字 / 15画像
この記事のみ ¥ 1,200

この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?