見出し画像

【GAS】注文情報をスプレッドシートに反映してみる#05 (ShopifyAPI + GoogleAppsScript)

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

今日はショッピファイの注文情報をスプレッドシートに反映してみます♪

✔️今日のゴール


✔️作成手順

まずは事前準備♪ Shopify APIを取得していない場合は先に発行しておいてくださいね。手順は下記に書いてます。

◆アクセススコープ

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

Step1  スプレッドシートに項目を追加

今日はShopify注文管理画面から

・注文番号
・Order ID
・販売日
・時間帯
・総売上高
・ディスカウント
・返金額
・小計
・消費税
・送料

を取得したいと思います。

上記の項目をスプレッドシートに入力。

シート名は「Order」にしておきます。

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

スクリプトのファイル名はなんでもOKです。
私は分かりやすく「orderinfo.gs」という名前で作成してみました。

まずは、定番のAPIを紐付けるコードを書いておきます。
使い回しできるので関数の中に入れずに記載しています。

ここは定番なので毎度コピペでいいと思います。
シート名(getSheetByName())だけ変えるだけかな。

var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Order");
var lastRow = ss.getLastRow();
var lastCol = ss.getLastColumn();
var lastID = ss.getRange(lastRow,2).getValue();
var l = ss.getLastRow()+1;

var myAPI = myAPI_(); //「api.gs」で定義した関数
var API_KEY = myAPI.apiKey;
var API_PASSWORD = myAPI.apiPass;
var SHOP_ID = myAPI.shopID;
var API_VERSION = myAPI.apiVer;

var encoded = Utilities.base64Encode(API_KEY + ':' + API_PASSWORD);
var headers = {
  "Content-Type" : "application/json",
  "Authorization": "Basic " + encoded
};

var options = {
  'contentType' : 'application/json',
  'method' : 'GET',
  'headers' : headers,
  'muteHttpExceptions' : true,
  'followRedirects' : false,
};


次に注文情報を取得します。

orderのGetを使用します

/admin/api/2022-10/orders.json?status=any

このまま使用するとフルフィルメント完了した注文オーダーが取得できず、未発送の注文しか取得できないので、発送済み&未発送注文両方の値を取得するよる必要があります。

書き方は簡単で、
status=anyのところを

▼発送完了の場合

&status=closed

▼未発送の場合

&status=open

にすれば良いだけ。

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

Step3  フルバージョンのコードをコピペ

◆コピペ用フルコード

ここから先は

3,362字 / 4画像
この記事のみ ¥ 1,200

この記事が気に入ったらチップで応援してみませんか?