84 lines
2.1 KiB
Bash
84 lines
2.1 KiB
Bash
|
|
#!/bin/bash
|
|||
|
|
|
|||
|
|
# Star ERP 整合 API 手動測試腳本
|
|||
|
|
# 用途:手動驗證商品同步、POS 訂單、販賣機訂單 API
|
|||
|
|
|
|||
|
|
# --- 設定區 ---
|
|||
|
|
BASE_URL=${1:-"http://localhost:8081"}
|
|||
|
|
TOKEN=${2:-"YOUR_TOKEN_HERE"}
|
|||
|
|
TENANT_DOMAIN="localhost"
|
|||
|
|
|
|||
|
|
echo "=== Star ERP Integration API Test ==="
|
|||
|
|
echo "Target URL: $BASE_URL"
|
|||
|
|
echo "Tenant Domain: $TENANT_DOMAIN"
|
|||
|
|
echo ""
|
|||
|
|
|
|||
|
|
# 顏色定義
|
|||
|
|
GREEN='\033[0;32m'
|
|||
|
|
RED='\033[0;31m'
|
|||
|
|
NC='\033[0m'
|
|||
|
|
|
|||
|
|
# 輔助函式:執行 curl
|
|||
|
|
function call_api() {
|
|||
|
|
local method=$1
|
|||
|
|
local path=$2
|
|||
|
|
local data=$3
|
|||
|
|
local title=$4
|
|||
|
|
|
|||
|
|
echo -e "Testing: ${GREEN}$title${NC} ($path)"
|
|||
|
|
|
|||
|
|
curl -s -X "$method" "$BASE_URL$path" \
|
|||
|
|
-H "X-Tenant-Domain: $TENANT_DOMAIN" \
|
|||
|
|
-H "Authorization: Bearer $TOKEN" \
|
|||
|
|
-H "Accept: application/json" \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-d "$data" | jq .
|
|||
|
|
|
|||
|
|
echo -e "-----------------------------------\n"
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# 1. 商品同步 (Upsert)
|
|||
|
|
PRODUCT_ID="TEST-AUTO-$(date +%s)"
|
|||
|
|
call_api "POST" "/api/v1/integration/products/upsert" "{
|
|||
|
|
\"external_pos_id\": \"$PRODUCT_ID\",
|
|||
|
|
\"name\": \"自動測試商品 $(date +%H%M%S)\",
|
|||
|
|
\"price\": 150,
|
|||
|
|
\"barcode\": \"690123456789\",
|
|||
|
|
\"category\": \"飲品\",
|
|||
|
|
\"cost_price\": 80
|
|||
|
|
}" "Product Upsert"
|
|||
|
|
|
|||
|
|
# 2. POS 訂單同步
|
|||
|
|
call_api "POST" "/api/v1/integration/orders" "{
|
|||
|
|
\"external_order_id\": \"POS-AUTO-$(date +%s)\",
|
|||
|
|
\"status\": \"completed\",
|
|||
|
|
\"payment_method\": \"cash\",
|
|||
|
|
\"sold_at\": \"$(date -Iseconds)\",
|
|||
|
|
\"warehouse_id\": 2,
|
|||
|
|
\"items\": [
|
|||
|
|
{
|
|||
|
|
\"pos_product_id\": \"TEST-FINAL-VERIFY\",
|
|||
|
|
\"qty\": 1,
|
|||
|
|
\"price\": 100
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
}" "POS Order Sync"
|
|||
|
|
|
|||
|
|
# 3. 販賣機訂單同步
|
|||
|
|
call_api "POST" "/api/v1/integration/vending/orders" "{
|
|||
|
|
\"external_order_id\": \"VEND-AUTO-$(date +%s)\",
|
|||
|
|
\"machine_id\": \"Vending-Machine-Test-01\",
|
|||
|
|
\"payment_method\": \"line_pay\",
|
|||
|
|
\"sold_at\": \"$(date -Iseconds)\",
|
|||
|
|
\"warehouse_id\": 2,
|
|||
|
|
\"items\": [
|
|||
|
|
{
|
|||
|
|
\"product_code\": \"FINAL-OK\",
|
|||
|
|
\"qty\": 2,
|
|||
|
|
\"price\": 50
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
}" "Vending Machine Order Sync"
|
|||
|
|
|
|||
|
|
echo "Test Completed."
|