Minimum Quantity for products

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Strat1979
    Mivite

    • Feb 2009
    • 118

    #1

    Minimum Quantity for products

    I am using Suivant ReadyTheme.

    I have certain products that require a minimum quantity of 5.
    For those products, I have created a custom filed (minqty) which I use as a conditional on the PROD page.

    What I did was add a script right below the Quantity Incrementer in the js scripts file (see below)

    On the PROD page, my conditional (if a product has a minimum of 5) does indeed call the #js-increase-quantity-5/#js-decrease-quantity-5 script.
    However, the function (increase + or decrease -) on the PRODUCT page does not work.

    Any reason for this not working?


    ORIGINAL
    // ---- Quantity Incrementer ---- //
    $('#js-increase-quantity').on('click', function () {
    var $qty = $(this).siblings('input'),
    currentVal = parseInt($qty.val());

    if (!isNaN(currentVal)) {
    $qty.val(currentVal + 1).change();
    };
    });
    $('#js-decrease-quantity').on('click', function () {
    var $qty = $(this).siblings('input'),
    currentVal = parseInt($qty.val());

    if (!isNaN(currentVal) && currentVal > 1) {
    $qty.val(currentVal - 1).change();
    };
    });

    FOR PRODUCTS NEEDING 5 OR MORE

    // ---- Minimum Quantity 5 Incrementer ---- //
    $('#js-increase-quantity-5').on('click', function () {
    var $qty = $(this).siblings('input'),
    currentVal = parseInt($qty.val());

    if (!isNaN(currentVal)) {
    $qty.val(currentVal + 1).change();
    };
    });
    $('#js-decrease-quantity-5').on('click', function () {
    var $qty = $(this).siblings('input'),
    currentVal = parseInt($qty.val());

    if (!isNaN(currentVal) && currentVal > 5) {
    $qty.val(currentVal - 1).change();
    };
    });

  • Matt Zimmermann
    Mega Mivite










    • Apr 2008
    • 2482

    #2
    Can you post a link to the product in question?
    Matt Zimmermann

    Miva Web Developer
    Alchemy Web Development
    https://www.alchemywebdev.com
    Site Development - Maintenance - Consultation

    Miva Certified Developer
    Miva Professional Developer

    https://www.dev4web.net | Twitter

    Comment

    • Strat1979
      Mivite

      • Feb 2009
      • 118

      #3
      This is the product link:




      BTW here is the conditional for that on the PROD page:

      <mvt:item name="toolkit" param="customc|word|l.all_settings:product:code|mi nqty" />
      <mvt:if expr="g.word EQ 5">
      <span id="js-decrease-quantity-5" class="bg-gray decrease-quantity" unselectable="on" data-rt-icon="&#x67;"></span>
      <input type="tel" name="Quantity" value="5" id="l-quantity" class="align-center" />
      <span id="js-increase-quantity-5" class="bg-gray increase-quantity" unselectable="on" data-rt-icon="&#x69;"></span>
      <mvt:else>
      <span id="js-decrease-quantity" class="bg-gray decrease-quantity" unselectable="on" data-rt-icon="&#x67;"></span>
      <input type="tel" name="Quantity" value="1" id="l-quantity" class="align-center" />
      <span id="js-increase-quantity" class="bg-gray increase-quantity" unselectable="on" data-rt-icon="&#x69;"></span>
      </mvt:if>

      Comment

      • Matt Zimmermann
        Mega Mivite










        • Apr 2008
        • 2482

        #4
        That code looks correct. I have test that page in Chrome, Edge, Firefox, Internet Explorer 11, and Opera and the increment/decrement controls are working as expected. Have you tried clearing your cache?
        Matt Zimmermann

        Miva Web Developer
        Alchemy Web Development
        https://www.alchemywebdev.com
        Site Development - Maintenance - Consultation

        Miva Certified Developer
        Miva Professional Developer

        https://www.dev4web.net | Twitter

        Comment

        • Strat1979
          Mivite

          • Feb 2009
          • 118

          #5
          Ah the simple things....

          Thanks Matt. That was the problem. Should have know better.

          Comment

          • Bruce - PhosphorMedia
            Developer Partner











            • Mar 2006
            • 11256

            #6
            Hint: on Chrome Inspector, there is an option to "Clear Cache" when inspector is open. Though I've found it best just to get a Add On that prevents caching altogether. If you have a decent connection, you won't notice, and you get a better idea of a typical customer's experiance.
            Bruce Golub
            Phosphor Media - "Your Success is our Business"

            Improve Your Customer Service | Get MORE Customers | Edit CSS/Javascript/HTML Easily | Make Your Site Faster | Get Indexed by Google | Free Modules | Follow Us on Facebook
            phosphormedia.com

            Comment

            • Strat1979
              Mivite

              • Feb 2009
              • 118

              #7
              Thanks Bruce

              Comment

              • fastees
                Mivite

                • Dec 2007
                • 194

                #8
                It still lets you add what ever amount you enter in the qty field. Also you can edit the qty on the bask page. I'm gonna work on this.

                Comment

                • AHerb
                  Mivite




                  • Jun 2017
                  • 273

                  #9
                  We did the same but limiting max qty for some products.
                  On the basket page we're showing the message asking customesr to update qty. On the ocst, osel and opay we're checking the qty again and redirecting back to basket if customer is trying to cheat.

                  Code:
                  <mvt:comment>
                  ###############################################################################
                  if limit qty isset and basket item qty > limit, redirecting back to basket
                  ###############################################################################
                  </mvt:comment>
                  <mvt:foreach iterator="item" array="basket:items">
                      <mvt:comment>Checking if product has a limited quantity per sale set</mvt:comment>
                      <mvt:assign name="g.p_sale_limit" value="''" />
                      <mvt:item name="customfields" param="Read_Product_Code(l.settings:item:code, 'limit_sale_qty', g.p_sale_limit)" />
                      <mvt:if expr="g.p_sale_limit EQ '0'">
                          <mvt:assign name="g.p_sale_limit" value="''" />
                      </mvt:if>
                  
                      <mvt:comment>If limit is set, making sure we're not over the limit</mvt:comment>
                      <mvt:if expr="NOT ISNULL g.p_sale_limit AND g.p_sale_limit GT 0 AND l.settings:item:quantity GT g.p_sale_limit">
                          <mvt:assign name="l.header" value="miva_output_header( 'Status', '302 Moved Temporarily' )" />
                          <mvt:assign name="l.header" value="miva_output_header( 'Location', '/mm5/merchant.mvc?Screen=BASK' )" />
                          <mvt:exit />
                      </mvt:if>
                  </mvt:foreach>

                  Comment

                  • fastees
                    Mivite

                    • Dec 2007
                    • 194

                    #10
                    Category Minimums and Maximums mod by EP works ok. We need a better solution that really works on the prod or cat page please!

                    Comment

                    Working...
                    X