【GAS】デシル分析用の顧客データをShopify APIで取得してみる#09 (Shopify API + GoogleAppsScript)
こんにちは。Shopify専門エンジニアのまりん(@crowd37cord)です。
今日はShopify APIとGoogleスプレッドシートを使って、前回取得した注文データに顧客IDも追加してみます。
その顧客IDをもとに、デシル分析用の表とグラフを作成してみます!
前回の続きに顧客IDだけ表示するようにします。
ちなみに、データはダミーデータです。
デシル分析って何?って人はググれば情報たくさんあるのでお調べください!本記事では、コードや計算式などの解説はしておりません。
✔︎今日のゴール
✔︎作成手順
◆事前準備
まずはShopify APIを取得。まだの場合は下記ご参考ください。
◆アクセススコープ
Step1 前回作成した注文情報取得したスプレッドシートを開く
O列に「顧客ID」欄を追加。
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」としておきます。
②スクリプトエディタで新規ファイル作成
③顧客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列に表示されるようにしました。
順位、購入金額、グループ分けの欄も先に作っておきます。
💡スクリプトフルコード
orderinfo.gsとcustomer.gsのフルコードを下記に置いておきます。
そのままコピペで使えると思います。
ここから先は
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?