Shopify API を利用して購入履歴を取得します。エンドポイントの orders.json に email のパラメータを付与して顧客毎の購入履歴を取得出来ます。さらに status のパラメータでステータスに応じた購入履歴の取得も可能です。
Shopify API で購入履歴取得
エンドポイント
フィルタなし
https://{$shop_url}/admin/api/{$api_version}/orders.json
メールアドレスで絞り込む
https://{$shop_url}/admin/api/{$api_version}/orders.json?email=" . urlencode($email)
メールアドレス&ステータスで絞り込む
https://{$shop_url}/admin/api/{$api_version}/orders.json?email=" . urlencode($email) . "&status=any
APIアクセススコープ
read_orders を設定します。
サンプルコード
<?php
// Shopify設定
$shop_id = "abc123"; // ShopifyストアID
$shop_url = $shop_id . '.myshopify.com'; // ショップURL
$api_key = "81******************************"; // APIキー
$accessToken = "shpat_03******************************"; // APIアクセストークン
$api_version = "2023-07"; // APIバージョン
$email = 'example@example.com'; // 顧客のメールアドレス
if ( $email ) {
// Orders APIのエンドポイント(メールアドレスでフィルタリング)
$apiEndpoint = "https://{$shop_url}/admin/api/{$api_version}/orders.json?email=" . urlencode($email) . "&status=any";
} else {
$apiEndpoint = "https://{$shop_url}/admin/api/{$api_version}/orders.json";
}
// cURLセッションの初期化
$ch = curl_init();
// cURLオプションを設定
curl_setopt($ch, CURLOPT_URL, $apiEndpoint);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, "$api_key:$accessToken");
// APIリクエストの実行
$response = curl_exec($ch);
// エラーが発生した場合はエラーメッセージを表示
if (curl_errno($ch)) {
echo "Error: " . curl_error($ch);
}
//
curl_close($ch);
// レスポンスの確認
if ($response === false) {
echo "APIリクエストに失敗しました。";
} else {
// 結果をJSONからPHP配列にデコード
$orders = json_decode($response, true);
//
// var_dump($orders);
// 注文情報を表示
if (isset($orders['orders']) && is_countable($orders['orders']) && count($orders['orders'])>0 ) {
foreach ($orders['orders'] as $order) {
echo "Order ID: " . $order['id'] . "<br>";
echo "Email: " . $order['email'] . "<br>";
echo "Total Price: " . $order['total_price'] . "<br>";
echo "Order Status: " . $order['financial_status'] . "<br>";
echo "<hr>";
}
} else {
echo "No orders found for email: $email";
}
}
?>
コメント