客户可以通过三种方式进行购买:

  • 购买前请先登录
  • 下订单时登录或创建帐户
  • 购买时不创建帐户

虽然顾客可以通过自己喜欢的方式进行购买,但很方便。如果客户没有在您的商店中创建帐户,您可能很难获取信息来建立客户群。但是,您可以代表他们创建客户帐户。通过这个易于理解的教程,这比您想象的要容易。

在本教程中,订单是由已登录的用户创建的。对于来宾用户,将提供额外的 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

第三步:验证此步骤

  1. 使用邮箱jdoe@example.com和密码Password1登录Luma网站。
  2. 单击右上角的帐户名称并选择My Account
  3. 要查看帐单和送货地址,请单击Address Book