Skip to content

Update Member Data

Description

修改會員資料。依據店家站台設定 siteinfo.member_source 自動分流: - 傳統門市 / Ocard:執行本地資料庫更新(users、vip 表)與 POS 會員資料更新。 - member_source = 5 (Wixtar 會員):自動將傳入參數轉乘適配為星益欣會員中心異動規格 (PUT /v1/public/members/update) 完成線上更新,維持回傳 HTTP 200 OK {"message": "修改會員資料成功"}。

Resource

PATCH /v1/user

Authorization

採用 OAuth 2.0 Bearer Token,詳細使用流程請參考 Auth Login。

Request Body Parameters

Name Type Description
name string 會員姓名
phone_number string 會員手機號碼
(optional)
Wixtar 會員專用(若 Token 未含門號時需提供作為查找鍵;查找優先順序為 vip_id > phone_number)。
vip_id string 會員編號
(optional)
Wixtar 會員專用(可作為會員查找鍵;查找優先順序為 vip_id > phone_number)。
email string 電子信箱
(optional)
birthday string 會員生日
(optional)
sex string 性別
ALLOWED VALUES:
  • male:男
  • female:女
  • neutral:中性
  • unknown:未設定

(optional)
area_code string 市話區碼
(optional)
tel string 市話號碼
(optional)
extension_number string 分機號碼
(optional)
city string 居住城市
(optional)
district string 居住區域
(optional)
address string 居住地址
(optional)
phone_carrier string 手機載具
(optional)
tax_id_number string 統一編號
(optional)
edm_subscription_enabled boolean 是否訂閱EDM
(optional)
citizen_digital_certificate string 自然人憑證
(optional)
default_carrier_type string 預設載具類別
ALLOWED VALUES:
  • PHONE_CARRIER
  • MEMBER_CARRIER
  • CITIZEN_DIGITAL_CERTIFICATE

(optional)
memo string 備註
(optional)
source string 來源
ALLOWED VALUES:
  • SOOCKER

(optional)

Request Body Example

{
  "name": "朱大成",
  "phone_number": "0912345678",
  "email": "[email protected]",
  "birthday": "2020-01-01",
  "sex": "male",
  "area_code": "02",
  "tel": "27006275",
  "extension_number": "20",
  "city": "台北市",
  "district": "大安區",
  "address": "復興南路二段171巷20號1樓",
  "phone_carrier": "/DLRQHU8",
  "tax_id_number": "24436074",
  "edm_subscription_enabled": false,
  "citizen_digital_certificate": "",
  "default_carrier_type": "PHONE_CARRIER"
}

Response

{
  "message": "修改會員資料成功"
}

Update Member Data Workflow

%%{init: {'securityLevel': 'loose', 'theme':'base'}}%%

sequenceDiagram;
autonumber
participant C as Client
participant OP as Omni Platform 
participant P as POS

C ->> OP: Request [PATCH] /v1/user
OP ->> OP: company_id, auth_data = BasicData().get_basic_data()
OP ->> OP: member_data = MemberData.get_member_data_by_acckey()
OP ->> OP: member_data = self.handle_member_group_id()
OP ->> OP: update_data = self.handle_update_data()
OP ->> P: PosMember().update_pos_member_data(company_id, update_data)
P ->> OP: update_result

Note Over OP:如果修改POS會員資料失敗
alt  update_result['status_code'] != 204

OP ->> OP: return update_result
alt update_result['status_code'] != 200
OP ->> C: return Response(400)
end
end

OP ->> OP: data = update_result['data']
OP ->> OP:company_id = data['company_id'], update_data = data['update_data']
OP ->> OP: repository.update_member_data(company_id, update_data)
alt 更新成功
OP ->> C: return Response(200, "修改會員資料成功")
else 更新失敗
OP ->> C: return Response(400, "修改會員資料{error msg}")
end