どちらの方法も有効ですが、多くの場合、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 セットの有効期間を考慮し、適切と思われるものに基づいて設定する必要があります。