2017-04-10 14 views
0

私はショッピングカートを期限切れにする方法についてのヘルプが必要
電子商取引のWebサイトにショッピングカートがあり、ユーザーがショッピングカートに商品を追加したとすると、インベントリから、その製品がユーザーによって保持されているため、その製品の数量を減らす必要があります。
アイデアは、そのタイマーが期限切れになったときにショッピングカートにタイマーを実装し、ユーザーがその製品をもう保持しないようにすることです。制限時間の経過後に期限切れになる方法

私の質問は以下のとおりです。タイマが行われた後、在庫を更新するイベントをトリガーするためにどのようにウェブサイト

  • 内のすべてのページにまたがって動作するタイマーを実装する方法を

    私の説明は明らかでした。 ありがとうございます。

  • +0

    私は製品に数量をリリースするためにcronジョブを使用しています。 JavaScriptを使用してタイマーを使用して、公開するバックエンドへのAPI呼び出しをトリガーすることができます。ただし、ユーザーがbroswerを閉じると、API呼び出しはトリガーされません。したがって、APIを呼び出すには、まだcronジョブまたはジョブスケジューラーにフォールバックする必要があります。 –

    +0

    正確にはどういう意味ですか?*ウェブサイトのすべてのページで機能するタイマーを実装するにはどうすればいいですか?カートが開いているすべての顧客や、製品が再び利用可能であることを誰にでも通知することができますか?もう一つの質問については、キンバリーは早くてすでに答えていました。セーフティは、定期的に実行し、 "クリーンアップ"(Windows用のLinuxまたはタスクスケジューラ用のcron)を開始するために、何らかのスケジューラを使用することです。 –

    +0

    @ViliamAbošiタイマーはすべてのページで動作するはずだったと言いましたが、カートページではないにもかかわらず、私がホームページ(カートページではない)でタイマーが減少している例を示しています – programmer

    答えて

    1

    セッションを使用する1つの例では、ブラウザが閉じられたときにセッションが終了することを忘れないでください。より永続的なデータストレージが必要な場合は、cookieまたはlocalStorageを使用します。

    <?php 
    
    /* Constants */ 
    define('EXPIRATION_TIME', 30); // minutes 
    
    /* Dummy variables */ 
    $productAdded = true; 
    
    /* Start session */ 
    session_start(); 
    
    /* Check timer */ 
    if (isset($_SESSION['timer']) && $_SESSION['timer'] < time()) { 
    
        /* 
         30 min have gone by and the user has not added more products 
         to the cart, lets empty the cart and reset the timer 
        */ 
    
        unset($_SESSION['cart']); 
        unset($_SESSION['timer']); 
    } 
    
    /* Add product */ 
    if ($productAdded) { 
    
        /* Increase timer */ 
        $_SESSION['timer'] = (time() + (EXPIRATION_TIME * 60)); 
    
        /* Add product to cart, and all other tasks */ 
        if (!isset($_SESSION['cart'])) 
         $_SESSION['cart'] = array(); 
    
        $_SESSION['cart'][] = array(
         'id' => 17, 
         'name' => 'Fancy shampoo', 
         'quantity' => 1337 
        ); 
    } 
    
    ?> 
    
    +0

    ありがとうございます、それはうまくいくようです、私はそれを試してフィードバックを与えるでしょう – programmer

    関連する問題