Magento 2 API:创建客户
客户可以通过三种方式进行购买:
- 购买前请先登录
- 下订单时登录或创建帐户
- 购买时不创建帐户
虽然顾客可以通过自己喜欢的方式进行购买,但很方便。如果客户没有在您的商店中创建帐户,您可能很难获取信息来建立客户群。但是,您可以代表他们创建客户帐户。通过这个易于理解的教程,这比您想象的要容易。
在本教程中,订单是由已登录的用户创建的。对于来宾用户,将提供额外的 REST 端点来处理它们。
但在此之前,让我们按照以下步骤调用API创建客户。
使用 Magento 2 API 分 3 个步骤创建客户:
- 第 1 步:创建客户帐户
- 第 2 步:获取客户的访问令牌
- 第 3 步:验证此步骤
第 1 步:创建客户帐户
要创建客户帐户,需要管理员权限。
注意:在此示例中,将显示创建客户帐户的简化方法。此处将指定不带密码参数的有效负载,而不是使用纯文本定义客户密码。在默认设置中,当呼叫成功时,将向客户发送一封欢迎电子邮件,其中包含设置密码的请求。此外,通过致电PUT /V1/customers/password
,您可以发起密码重置电子邮件。
POST <host>/rest/<store_code>/V1/customers
Headers
Content-Type application/json
Authorization Bearer <admin token>
您应该用真实的电子邮件地址替换电子邮件参数的值。如果您这样做,您就可以收到所有通知。
代码示例
{
"customer": {
"email": "jdoe@example.com",
"firstname": "Jane",
"lastname": "Doe",
"addresses": [{
"defaultShipping": true,
"defaultBilling": true,
"firstname": "Jane",
"lastname": "Doe",
"region": {
"regionCode": "NY",
"region": "New York",
"regionId":43
},
"postcode": "10755",
"street": ["123 Oak Ave"],
"city": "Purchase",
"telephone": "512-555-1111",
"countryId": "US"
}]
},
"password": "Password1"
}
Response
这个用户 ID 值 2 是由 Magento 分配的。
代码示例'
{
"id": 2,
"group_id": 1,
"default_billing": "2",
"default_shipping": "2",
"created_at": "2017-01-31 01:18:13",
"updated_at": "2017-01-31 01:18:13",
"created_in": "Default Store View",
"email": "jdoe@example.com",
"firstname": "Jane",
"lastname": "Doe",
"store_id": 1,
"website_id": 1,
"addresses": [
{
"id": 2,
"customer_id": 2,
"region": {
"region_code": "NY",
"region": "New York",
"region_id": 43
},
"region_id": 43,
"country_id": "US",
"street": [
"123 Oak Ave"
],
"telephone": "512-555-1111",
"postcode": "10755",
"city": "Purchase",
"firstname": "Jane",
"lastname": "Doe",
"default_shipping": true,
"default_billing": true
}
],
"disable_auto_group_change": 0
}
您可以使用用户名jdoe@example.com
和密码Password1
登录Luma商店
第 2 步:获取客户的访问令牌
为了获取客户的访问令牌,必须在有效负载中指定客户的用户名和密码。不需要指定管理员授权令牌。
默认情况下,客户令牌的有效时间为1小时。如果您想更改此值,请登录您的管理面板,然后转至Stores > Settings > Configuration > Services > OAuth > Access Token Expiration
。
POST <host>/rest/<store_code>/V1/integration/customer/token
Headers
Content-Type application/json
Payload
{
"username": "jdoe@example.com",
"password": "Password1"
}
Response
Magento 返回客户的访问令牌。必须在客户代表自己进行的每次调用的授权标头中指定它。
q0u66k8h42yaevtchv09uyy3y9gaj2ap
第三步:验证此步骤
- 使用邮箱
jdoe@example.com
和密码Password1
登录Luma网站。 - 单击右上角的帐户名称并选择
My Account
。 - 要查看帐单和送货地址,请单击
Address Book
。