Open2

ShopifyをHeadlessに使う

okita kamegorookita kamegoro

会員の登録について

mutation customerCreate($input: CustomerCreateInput!) {
  customerCreate(input: $input) {
    customer {
      firstName
      lastName
      email
      phone
      acceptsMarketing
    }
    customerUserErrors {
      field
      message
      code
    }
  }
}
{
  "input": {
    "firstName": "John",
    "lastName": "Smith",
    "email": "johnsmith@shopify.com",
    "phone": "+15146669999",
    "password": "5hopify",
    "acceptsMarketing": true
  }
}

会員のログインについて

以下でアクセストークンを取得できる
仮に自社の認証基盤で管理する場合は、passwordを自社側で発行してログインさせる手があるかと思う。
ただ、そのpasswordはどう管理するのか?DBに保存するのであればShopify側のログインpasswordを平文で保存している状態と変わらないためセキュリティ的には望ましくなさそう

mutation customerAccessTokenCreate {
  customerAccessTokenCreate(input: {email: "ghaida@example.com", password: "7dx2gx2Z"}) {
    customerAccessToken {
      accessToken
    }
    customerUserErrors {
      message
    }
  }
}
okita kamegorookita kamegoro

今考えている手法の場合、下記の様に毎回顧客情報を入力してもらう必要が出てくる可能性がある
https://community.shopify.com/c/技術的なq-a/storefront/td-p/1451705

ただひとつ気になるのが、buyerIdentifyには顧客情報を追加できるので、そもそもこれを自社側で持っていればそれをbuyerIdentifyに入れて送信すれば良いだけな気がする。

初回購入時だけは値がないので入力してもらう。入力した値はAPI経由で自社DBに共有する

確かShopifyはemailをIDにしている節があるので、emailさえ変わらなければ同一ユーザーとして扱えたような。