こんにちは。Shopify専門エンジニアのまりんです。
今回はテーマのカスタマイズではなく、Shopify APIとGoogleスプレッドシートを紐づけようと思います。まず手始めに商品IDと商品名をボタンをクリックしたらスプレッドシートに反映できるようにしてみました。
✔️事前準備 API発行
アクセストークンをまだ発行していない場合は下記の手順で作成しておいてくださいね。
①アプリ>アプリと販売チャンネルの設定>ストア用カスタムアプリ
②アプリを作成
アプリ名はなんでもOKです。
③アクセススコープの設定
使用する項目にチェック入れてください。
(例)商品名&商品IDを取得する場合:商品管理:read_productsのみに✔️
④アプリをインストール
API資格情報のタブをクリック。
Admin APIのアクセストークンが発行されるのでコピーします。
一度しか表示できないので忘れないようにどこかに保管しておいてくださいね。その下のAPIキーもあとで使用するので一緒にコピーしておきます。
また、設定タブに記載されているバージョンも後ほど使用するので控えておきます。
API アクセストークン:shpat_xxxxxxxx
APIキー:8gw2xxxxxxxxxx
バージョン:xxxx-xx
これで事前準備は完了です。
✔️GASとShopifyを紐づける
Step1 スプレッドシートを作成
新規スプレッドシートを作成して「Master」というシートを追加する。
一応わかりやすいように1行目に見出し入れておきます。
A1・・・商品ID
B2・・・商品名
Step2 スプレッドシート>App Scriptを開く
Step3 API用のスクリプトを作成
名前はなんでもOK です。→apiにしてみました
下記をコピペ。
===
function myAPI_() {
var shopifyAPI = {
shopID : "ここにストア名を入れる",
apiKey : "ここに上記で設定したAPIキーを入れる",
apiPass : "ここに上記で設定したアクセストークンを入れる",
apiVer : "バージョン入れる"
}
return shopifyAPI;
}
===
Step4 別のスクリプトに下記のコードをコピペ
ファイル名はなんでもOKです。私はproductinfoとしました。
productinfo.gs
◆下記のコードをコピペ
===
function setProductValues(){
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Master');
var response = requestShopifyAPI_();
response.products.forEach(function(product,index){
ss.getRange(index+2,1).setValue(product.id);
ss.getRange(index+2,2).setValue(product.title);
});
}
function requestShopifyAPI_() {
var myAPI = myAPI_();
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, // This is the important part
'followRedirects' : false,
};
var response = UrlFetchApp.fetch(`https://${SHOP_ID}.myshopify.com/admin/api/${API_VERSION}/products.json`,options);
return JSON.parse(response.getContentText());
}
===
保存し実行。
エラーのような表示が出てくるので、
1)詳細をクリック
2)xxxxに移動をクリック
3)許可ボタンをクリック
でOKです。
実行完了すると、商品ID &商品名がMasterシートに反映されていると思います。
以上で完了です。