4

ログインしていないユーザーがアイテムを追加できるようにする方法を教えてください。(オープンソースの e コマース パッケージを使用せずに、カスタマイズされたソリューションを使用しています)

考慮事項は次のとおりです。

  1. データベースに保存: 非ログイン ユーザー情報がゲスト ユーザーとしてデータベースに保存されている場合 (ユーザーごとに新しい ID を作成し、その ID をブラウザーのセッションとして保存する)、それらを削除するタイミングをどのように知る必要がありますか?

  2. クライアントに保存: すべての情報が Cookie に保持されている場合、このために別のコード セットを記述する必要があり、面倒です。

何か提案はありますか?

4

2 に答える 2

2

どちらの方法も有効ですが、多くの場合、eコマースサイトでは、ログインまたは登録によってユーザーがまだ認証されていない場合、Cookie を使用して一時的なショッピング カートの内容を保存します。

注: DB を使用して一時的なカートを保存する場合でも、基本的な方法でそれらを識別するために Cookie を設定する必要があります。

  // Temp user id
  $cart_id = "108376"; // Pulled from DB

  // Two week cookie (86,400 secs per day for 14 days)
  setcookie('abc_cart_id', '$cart_id', time() + 86400 * 14);

- また -

Cookie を使用すると、ユーザーがログインまたは登録すると、Cookie の内容 (およびカートの内容) を DB に書き込むことができます。そうすれば、孤立した、または後で破棄する必要がある (およびそれを管理するプロセス) 不要なエントリをデータベースに追加することはありません。

私が見た多くの商用ソリューション (PHP を使用し、時には何百ものアイテムを含む) では、Cookie は多くの場合、シリアル化された配列の形式またはJSONを使用します。

  // Serialise array
  $cart = serialize($cart_contents);

  // Two week cookie (86,400 secs per day for 14 days)
  setcookie('abc_cart', '$cart', time() + 86400 * 14);

次に、新しいユーザーが戻ってきたときにカートに再入力するために使用されます。

  if (isset($_COOKIE['abc_cart']))
  {
     $cart = unserialize($_COOKIE['abc_cart'];
     // Take action ~ populate cart/DB etc...
  }

また、CRM の観点からも役立ちます。ここでは、UX を変更したり、サインアップしていない/まだ顧客ではないという事実に基づいてオファーやインセンティブを提供したりできます ~最初の注文から 20% オフ...

Cookie と DB の両方のアプローチでは、問題のユーザーが共有コンピューター上にいる可能性があるため、Cookie セットの有効期間を考慮し、適切と思われるものに基づいて設定する必要があります。

于 2012-11-28T01:35:46.343 に答える
1

一意の Cookie を設定し、追加されたアイテムを含め、これをデータベースに保存します。そのため、ユニークな訪問者と一緒にバスケットを接続します。このようにして、潜在的なバイヤーが戻ってきたときに、彼のバスケット/興味をまだ知っています。データベースに何十億ものレコードがない限り、わざわざ削除する必要はありません. ただし、数週間保存すれば十分です:)

于 2012-11-28T01:01:01.443 に答える