在電子商務中,訂單管理與資料整合往往需要耗費大量時間與人力。本文將教您如何使用 WordPress 與 WooCommerce 的功能,將訂單資料自動同步至 Ragic,實現高效的工作流程。
為什麼要同步 WooCommerce 訂單至 Ragic?
Ragic 是一款強大的雲端資料庫工具,能夠幫助您整理與分析業務數據。而 WooCommerce 作為最受歡迎的 WordPress 電子商務插件,提供了靈活的訂單管理功能。通過將 WooCommerce 訂單資料自動同步至 Ragic,您可以:
-
減少手動操作:避免重複輸入訂單資料,提升效率。
-
降低人為錯誤:自動化流程能有效減少輸入錯誤。
-
集中管理數據:在 Ragic 中匯總並分析訂單資料,優化業務流程。
教學步驟
以下是設定 WooCommerce 與 Ragic 同步的完整步驟。
1. 啟用 WooCommerce 訂單完成後觸發的自動同步
首先,我們需要設定一個觸發條件,當訂單狀態變更為「已完成」時,觸發同步動作。您可以將以下程式碼添加至您的 WordPress 主題或插件中:
add_action('woocommerce_order_status_completed', 'sync_order_to_ragic');
2. 擷取 WooCommerce 訂單資料
接著,使用 WooCommerce 提供的 API 擷取訂單詳細資料,包括用戶資訊(姓名、電話、地址)及訂單商品資訊。範例如下:
$order = wc_get_order($order_id);
$email = $order->get_billing_email();
$first_name = $order->get_billing_first_name();
$last_name = $order->get_billing_last_name();
$phone = $order->get_billing_phone();
$address = $order->get_billing_address_1() . ', ' . $order->get_billing_city() . ', ' . $order->get_billing_state() . ', ' . $order->get_billing_postcode();
3. 準備訂單資料格式
將 WooCommerce 訂單中的商品資訊整理成易於傳輸的格式。例如:
$items = [];
foreach ($order->get_items() as $item) {
$items[] = $item->get_name() . ' x ' . $item->get_quantity() . ' (' . $item->get_total() . ')';
}
$items_string = implode('; ', $items);
4. 將資料組織成 Ragic 格式
根據 Ragic 的 API 文件,設定符合其欄位結構的資料格式:
$ragic_data = [
'1000686' => '網站',
'1000595' => $first_name . ' ' . $last_name,
'1000596' => $phone,
'1000563' => $address,
'1000634' => $email,
'1000597' => $items_string,
'1000610' => $order->get_total(),
'1000594' => $order->get_date_created()->date('Y-m-d H:i:s'),
];
5. 使用 API 同步資料至 Ragic
最後,通過 Ragic 提供的 API,將整理好的訂單資料提交到指定的 Ragic 表單中:
$response_ragic = wp_remote_post(
$ragic_url,
[
'method' => 'POST',
'headers' => [
'Content-Type' => 'application/json',
'Authorization' => 'Basic YOUR_RAGIC_API_CREDENTIAL',
],
'body' => json_encode($ragic_data),
]
);
6. 檢查 API 響應
確保同步動作成功,並記錄錯誤以便後續排查:
if (is_wp_error($response_ragic)) {
error_log('Ragic 同步失敗:' . $response_ragic->get_error_message());
} else {
$status_code_ragic = wp_remote_retrieve_response_code($response_ragic);
$body_ragic = wp_remote_retrieve_body($response_ragic);
if ($status_code_ragic == 200 || $status_code_ragic == 201) {
error_log('Ragic 同步成功:' . $body_ragic);
} else {
error_log("Ragic API 回應錯誤 (狀態碼: $status_code_ragic):$body_ragic");
}
}
注意事項
-
API Key 安全性: 請勿將 API Key 明文寫入程式碼,建議使用環境變數或安全存取工具。
-
欄位對應檢查: 確保 Ragic 表單的欄位 ID 與您程式中的對應正確無誤。
-
測試與效能優化: 在正式上線前進行充分測試,並檢查同步資料是否符合預期。
通過以上步驟,您就能輕鬆將 WooCommerce 的訂單資料同步至 Ragic,實現高效的資料管理與整合。如果您有任何問題,歡迎留言討論!