Zen Cart Logo
Forums / General Questions / Product Quantity dropdown

Product Quantity dropdown

Views: 2,141

Results 1 to 17 of 17
9 Jun 2014, 6:37 PM
#1
storeowner avatar

storeowner

New Zenner

Join Date:
Jun 2014
Location:
United States
Posts:
60
Plugin Contributions:
0

Product Quantity dropdown

instead of typing in a number then adding to cart I wan't it to be a dropdown box and select the number.

Anyone know how to do this?

10 Jun 2014, 1:50 AM
#2
storeowner avatar

storeowner

New Zenner

Join Date:
Jun 2014
Location:
United States
Posts:
60
Plugin Contributions:
0

Re: Product Quantity dropdown

This would be a really cool addon, I did research and Saw tons of people wanting the same thing but only one that seemed to figure it out, however It isn't very detailed on what exactly to change and not sure if it even works

http://www.zen-cart.com/showthread.php?35066-Add-attributes-dropdowns-to-products-listings

My product_listing.php

<?php
/**
 * product_listing module
 *
 * @package modules
 * @copyright Copyright 2003-2011 Zen Cart Development Team
 * @copyright Portions Copyright 2003 osCommerce
 * @license [URL]http://www.zen-cart.com/license/2_0.txt[/URL] GNU Public License V2.0
 * @version $Id: product_listing.php 18695 2011-05-04 05:24:19Z drbyte $
 */
if (!defined('IS_ADMIN_FLAG')) {
  die('Illegal Access');
}
$show_submit = zen_run_normal();
$listing_split = new splitPageResults($listing_sql, MAX_DISPLAY_PRODUCTS_LISTING, 'p.products_id', 'page');
$zco_notifier->notify('NOTIFY_MODULE_PRODUCT_LISTING_RESULTCOUNT', $listing_split->number_of_rows);
$how_many = 0;

$list_box_contents[0] = array('params' => 'class="productListing-rowheading"');

$zc_col_count_description = 0;
$lc_align = '';
for ($col=0, $n=sizeof($column_list); $col<$n; $col++) {
  switch ($column_list[$col]) {
    case 'PRODUCT_LIST_MODEL':
    $lc_text = TABLE_HEADING_MODEL;
    $lc_align = '';
    $zc_col_count_description++;
    break;
    case 'PRODUCT_LIST_NAME':
    $lc_text = TABLE_HEADING_PRODUCTS;
    $lc_align = '';
    $zc_col_count_description++;
    break;
    case 'PRODUCT_LIST_MANUFACTURER':
    $lc_text = TABLE_HEADING_MANUFACTURER;
    $lc_align = '';
    $zc_col_count_description++;
    break;
    case 'PRODUCT_LIST_PRICE':
    $lc_text = TABLE_HEADING_PRICE;
    $lc_align = 'right' . (PRODUCTS_LIST_PRICE_WIDTH > 0 ? '" width="' . PRODUCTS_LIST_PRICE_WIDTH : '');
    $zc_col_count_description++;
    break;
    case 'PRODUCT_LIST_QUANTITY':
    $lc_text = TABLE_HEADING_QUANTITY;
    $lc_align = 'right';
    $zc_col_count_description++;
    break;
    case 'PRODUCT_LIST_WEIGHT':
    $lc_text = TABLE_HEADING_WEIGHT;
    $lc_align = 'right';
    $zc_col_count_description++;
    break;
    case 'PRODUCT_LIST_IMAGE':
    $lc_text = TABLE_HEADING_IMAGE;
    $lc_align = 'center';
    $zc_col_count_description++;
    break;
  }

  if ( ($column_list[$col] != 'PRODUCT_LIST_IMAGE') ) {
    $lc_text = zen_create_sort_heading($_GET['sort'], $col+1, $lc_text);
  }



  $list_box_contents[0][$col] = array('align' => $lc_align,
                                      'params' => 'class="productListing-heading"',
                                      'text' => $lc_text );
}

if ($listing_split->number_of_rows > 0) {
  $rows = 0;
  $listing = $db->Execute($listing_split->sql_query);
  $extra_row = 0;
  while (!$listing->EOF) {
    $rows++;

    if ((($rows-$extra_row)/2) == floor(($rows-$extra_row)/2)) {
      $list_box_contents[$rows] = array('params' => 'class="productListing-even"');
    } else {
      $list_box_contents[$rows] = array('params' => 'class="productListing-odd"');
    }

    $cur_row = sizeof($list_box_contents) - 1;

    for ($col=0, $n=sizeof($column_list); $col<$n; $col++) {
      $lc_align = '';
      switch ($column_list[$col]) {
        case 'PRODUCT_LIST_MODEL':
        $lc_align = '';
        $lc_text = $listing->fields['products_model'];
        break;
        case 'PRODUCT_LIST_NAME':
        $lc_align = '';
        $lc_text = '<h3 class="itemTitle"><a href="' . zen_href_link(zen_get_info_page($listing->fields['products_id']), 'cPath=' . (($_GET['manufacturers_id'] > 0 and $_GET['filter_id'] > 0) ?  zen_get_generated_category_path_rev($_GET['filter_id']) : ($_GET['cPath'] > 0 ? zen_get_generated_category_path_rev($_GET['cPath']) : zen_get_generated_category_path_rev($listing->fields['master_categories_id']))) . '&products_id=' . $listing->fields['products_id']) . '">' . $listing->fields['products_name'] . '</a></h3><div class="listingDescription">' . zen_trunc_string(zen_clean_html(stripslashes(zen_get_products_description($listing->fields['products_id'], $_SESSION['languages_id']))), PRODUCT_LIST_DESCRIPTION) . '</div>';
        break;
        case 'PRODUCT_LIST_MANUFACTURER':
        $lc_align = '';
        $lc_text = '<a href="' . zen_href_link(FILENAME_DEFAULT, 'manufacturers_id=' . $listing->fields['manufacturers_id']) . '">' . $listing->fields['manufacturers_name'] . '</a>';
        break;
        case 'PRODUCT_LIST_PRICE':
        $lc_price = zen_get_products_display_price($listing->fields['products_id']) . '<br />';
        $lc_align = 'right';
        $lc_text =  $lc_price;

        // more info in place of buy now
        $lc_button = '';
        if (zen_has_product_attributes($listing->fields['products_id']) or PRODUCT_LIST_PRICE_BUY_NOW == '0') {
          $lc_button = '<a href="' . zen_href_link(zen_get_info_page($listing->fields['products_id']), 'cPath=' . (($_GET['manufacturers_id'] > 0 and $_GET['filter_id']) > 0 ?  zen_get_generated_category_path_rev($_GET['filter_id']) : ($_GET['cPath'] > 0 ? $_GET['cPath'] : zen_get_generated_category_path_rev($listing->fields['master_categories_id']))) . '&products_id=' . $listing->fields['products_id']) . '">' . MORE_INFO_TEXT . '</a>';
        } else {
          if (PRODUCT_LISTING_MULTIPLE_ADD_TO_CART != 0) {
            if (
                // not a hide qty box product
                $listing->fields['products_qty_box_status'] != 0 &&
                // product type can be added to cart
                zen_get_products_allow_add_to_cart($listing->fields['products_id']) != 'N'
                &&
                // product is not call for price
                $listing->fields['product_is_call'] == 0
                &&
                // product is in stock or customers may add it to cart anyway
                ($listing->fields['products_quantity'] > 0 || SHOW_PRODUCTS_SOLD_OUT_IMAGE == 0) ) {
              $how_many++;
            }
            // hide quantity box
            if ($listing->fields['products_qty_box_status'] == 0) {
              $lc_button = '<a href="' . zen_href_link($_GET['main_page'], zen_get_all_get_params(array('action')) . 'action=buy_now&products_id=' . $listing->fields['products_id']) . '">' . zen_image_button(BUTTON_IMAGE_BUY_NOW, BUTTON_BUY_NOW_ALT, 'class="listingBuyNowButton"') . '</a>';
            } else {
              $lc_button = TEXT_PRODUCT_LISTING_MULTIPLE_ADD_TO_CART . "<input type=\"text\" name=\"products_id[" . $listing->fields['products_id'] . "]\" value=\"0\" size=\"4\" />";
            }
          } else {
// qty box with add to cart button
            if (PRODUCT_LIST_PRICE_BUY_NOW == '2' && $listing->fields['products_qty_box_status'] != 0) {
              $lc_button= zen_draw_form('cart_quantity', zen_href_link($_GET['main_page'], zen_get_all_get_params(array('action')) . 'action=add_product&products_id=' . $listing->fields['products_id']), 'post', 'enctype="multipart/form-data"') . '<input type="text" name="cart_quantity" value="' . (zen_get_buy_now_qty($listing->fields['products_id'])) . '" maxlength="6" size="4" /><br />' . zen_draw_hidden_field('products_id', $listing->fields['products_id']) . zen_image_submit(BUTTON_IMAGE_IN_CART, BUTTON_IN_CART_ALT) . '</form>';
            } else {
              $lc_button = '<a href="' . zen_href_link($_GET['main_page'], zen_get_all_get_params(array('action')) . 'action=buy_now&products_id=' . $listing->fields['products_id']) . '">' . zen_image_button(BUTTON_IMAGE_BUY_NOW, BUTTON_BUY_NOW_ALT, 'class="listingBuyNowButton"') . '</a>';
            }
          }
        }
        $the_button = $lc_button;
        $products_link = '<a href="' . zen_href_link(zen_get_info_page($listing->fields['products_id']), 'cPath=' . ( ($_GET['manufacturers_id'] > 0 and $_GET['filter_id']) > 0 ? zen_get_generated_category_path_rev($_GET['filter_id']) : $_GET['cPath'] > 0 ? zen_get_generated_category_path_rev($_GET['cPath']) : zen_get_generated_category_path_rev($listing->fields['master_categories_id'])) . '&products_id=' . $listing->fields['products_id']) . '">' . MORE_INFO_TEXT . '</a>';
        $lc_text .= '<br />' . zen_get_buy_now_button($listing->fields['products_id'], $the_button, $products_link) . '<br />' . zen_get_products_quantity_min_units_display($listing->fields['products_id']);
        $lc_text .= '<br />' . (zen_get_show_product_switch($listing->fields['products_id'], 'ALWAYS_FREE_SHIPPING_IMAGE_SWITCH') ? (zen_get_product_is_always_free_shipping($listing->fields['products_id']) ? TEXT_PRODUCT_FREE_SHIPPING_ICON . '<br />' : '') : '');

        break;
        case 'PRODUCT_LIST_QUANTITY':
        $lc_align = 'right';
        $lc_text = $listing->fields['products_quantity'];
        break;
        case 'PRODUCT_LIST_WEIGHT':
        $lc_align = 'right';
        $lc_text = $listing->fields['products_weight'];
        break;
        case 'PRODUCT_LIST_IMAGE':
        $lc_align = 'center';
        if ($listing->fields['products_image'] == '' and PRODUCTS_IMAGE_NO_IMAGE_STATUS == 0) {
          $lc_text = '';
        } else {
          if (isset($_GET['manufacturers_id'])) {
            $lc_text = '<a href="' . zen_href_link(zen_get_info_page($listing->fields['products_id']), 'cPath=' . (($_GET['manufacturers_id'] > 0 and $_GET['filter_id']) > 0 ?  zen_get_generated_category_path_rev($_GET['filter_id']) : ($_GET['cPath'] > 0 ? zen_get_generated_category_path_rev($_GET['cPath']) : zen_get_generated_category_path_rev($listing->fields['master_categories_id']))) . '&products_id=' . $listing->fields['products_id']) . '">' . zen_image(DIR_WS_IMAGES . $listing->fields['products_image'], $listing->fields['products_name'], IMAGE_PRODUCT_LISTING_WIDTH, IMAGE_PRODUCT_LISTING_HEIGHT, 'class="listingProductImage"') . '</a>';
          } else {
            $lc_text = '<a href="' . zen_href_link(zen_get_info_page($listing->fields['products_id']), 'cPath=' . (($_GET['manufacturers_id'] > 0 and $_GET['filter_id']) > 0 ?  zen_get_generated_category_path_rev($_GET['filter_id']) : ($_GET['cPath'] > 0 ? zen_get_generated_category_path_rev($_GET['cPath']) : zen_get_generated_category_path_rev($listing->fields['master_categories_id']))) . '&products_id=' . $listing->fields['products_id']) . '">' . zen_image(DIR_WS_IMAGES . $listing->fields['products_image'], $listing->fields['products_name'], IMAGE_PRODUCT_LISTING_WIDTH, IMAGE_PRODUCT_LISTING_HEIGHT, 'class="listingProductImage"') . '</a>';
          }
        }
        break;
      }

      $list_box_contents[$rows][$col] = array('align' => $lc_align,
                                              'params' => 'class="productListing-data"',
                                              'text'  => $lc_text);
    }

    // add description and match alternating colors
    //if (PRODUCT_LIST_DESCRIPTION > 0) {
    //  $rows++;
    //  if ($extra_row == 1) {
    //    $list_box_description = "productListing-data-description-even";
    //    $extra_row=0;
    //  } else {
    //    $list_box_description = "productListing-data-description-odd";
    //    $extra_row=1;
    //  }
    //  $list_box_contents[$rows][] = array('params' => 'class="' . $list_box_description . '" colspan="' . $zc_col_count_description . '"',
    //  'text' => zen_trunc_string(zen_clean_html(stripslashes(zen_get_products_description($listing->fields['products_id'], $_SESSION['languages_id']))), PRODUCT_LIST_DESCRIPTION));
    //}
    $listing->MoveNext();
  }
  $error_categories = false;
} else {
  $list_box_contents = array();

  $list_box_contents[0] = array('params' => 'class="productListing-odd"');
  $list_box_contents[0][] = array('params' => 'class="productListing-data"',
                                              'text' => TEXT_NO_PRODUCTS);

  $error_categories = true;
}

if (($how_many > 0 and $show_submit == true and $listing_split->number_of_rows > 0) and (PRODUCT_LISTING_MULTIPLE_ADD_TO_CART == 1 or  PRODUCT_LISTING_MULTIPLE_ADD_TO_CART == 3) ) {
  $show_top_submit_button = true;
} else {
  $show_top_submit_button = false;
}
if (($how_many > 0 and $show_submit == true and $listing_split->number_of_rows > 0) and (PRODUCT_LISTING_MULTIPLE_ADD_TO_CART >= 2) ) {
  $show_bottom_submit_button = true;
} else {
  $show_bottom_submit_button = false;
}



  if ($how_many > 0 && PRODUCT_LISTING_MULTIPLE_ADD_TO_CART != 0 and $show_submit == true and $listing_split->number_of_rows > 0) {
  // bof: multiple products
    echo zen_draw_form('multiple_products_cart_quantity', zen_href_link(FILENAME_DEFAULT, zen_get_all_get_params(array('action')) . 'action=multiple_products_add_product', $request_type), 'post', 'enctype="multipart/form-data"');
  }
10 Jun 2014, 2:18 AM
#3
storeowner avatar

storeowner

New Zenner

Join Date:
Jun 2014
Location:
United States
Posts:
60
Plugin Contributions:
0

Re: Product Quantity dropdown

I have the add to cart already, it was in the admin panel but I wan't this dropdown quantity select I can't seem to figure out..

Example image here:
http://i.imgur.com/ioyDIuu.jpg

10 Jun 2014, 12:27 PM
#4
stevesh avatar

stevesh

Black Belt

Join Date:
Feb 2005
Location:
Lansing, Michigan USA
Posts:
19,793
Plugin Contributions:
2

Re: Product Quantity dropdown

I'd guess that someone here could come up with the code to do that, assuming:

You want it to be a dropdown for all products, and you want the dropdown values to be the same for every product.

Otherwise, you're looking at quite a bit of work, since there will need to be admin and SQL aspects included.

10 Jun 2014, 8:05 PM
#5
storeowner avatar

storeowner

New Zenner

Join Date:
Jun 2014
Location:
United States
Posts:
60
Plugin Contributions:
0

Re: Product Quantity dropdown

stevesh:

I'd guess that someone here could come up with the code to do that, assuming:

You want it to be a dropdown for all products, and you want the dropdown values to be the same for every product.

Otherwise, you're looking at quite a bit of work, since there will need to be admin and SQL aspects included.

I was hoping I could do for the quantity I put when creating the product and worked like normal :/ didn't think it would be this difficult

10 Jun 2014, 8:17 PM
#6
drbyte avatar

drbyte

Sensei

Join Date:
Jan 2004
Posts:
63,513
Plugin Contributions:
176

Re: Product Quantity dropdown

For your product-info page, rewrite this line to replace the <input type="text"> with a <select> field containing appropriate <option> elements inside it:

    $the_button = PRODUCTS_ORDER_QTY_TEXT . '<input type="text" name="cart_quantity" value="' . (zen_get_buy_now_qty($_GET['products_id'])) . '" maxlength="6" size="4" /><br />' . zen_get_products_quantity_min_units_display((int)$_GET['products_id']) . '<br />' . zen_draw_hidden_field('products_id', (int)$_GET['products_id']) . zen_image_submit(BUTTON_IMAGE_IN_CART, BUTTON_IN_CART_ALT);
```And for product listings, rewrite this line similarly:```
              $lc_button= zen_draw_form('cart_quantity', zen_href_link($_GET['main_page'], zen_get_all_get_params(array('action')) . 'action=add_product&products_id=' . $listing->fields['products_id']), 'post', 'enctype="multipart/form-data"') . '<input type="text" name="cart_quantity" value="' . (zen_get_buy_now_qty($listing->fields['products_id'])) . '" maxlength="6" size="4" /><br />' . zen_draw_hidden_field('products_id', $listing->fields['products_id']) . zen_image_submit(BUTTON_IMAGE_IN_CART, BUTTON_IN_CART_ALT) . '</form>';
11 Jun 2014, 9:02 AM
#7
storeowner avatar

storeowner

New Zenner

Join Date:
Jun 2014
Location:
United States
Posts:
60
Plugin Contributions:
0

Re: Product Quantity dropdown

DrByte:

For your product-info page, rewrite this line to replace the <input type="text"> with a <select> field containing appropriate <option> elements inside it:

$the_button = PRODUCTS_ORDER_QTY_TEXT . '<input type="text" name="cart_quantity" value="' . (zen_get_buy_now_qty($_GET['products_id'])) . '" maxlength="6" size="4" /><br />' . zen_get_products_quantity_min_units_display((int)$_GET['products_id']) . '<br />' . zen_draw_hidden_field('products_id', (int)$_GET['products_id']) . zen_image_submit(BUTTON_IMAGE_IN_CART, BUTTON_IN_CART_ALT);

And for product listings, rewrite this line similarly:
$lc_button= zen_draw_form('cart_quantity', zen_href_link($_GET['main_page'], zen_get_all_get_params(array('action')) . 'action=add_product&products_id=' . $listing->fields['products_id']), 'post', 'enctype="multipart/form-data"') . '<input type="text" name="cart_quantity" value="' . (zen_get_buy_now_qty($listing->fields['products_id'])) . '" maxlength="6" size="4" /><br />' . zen_draw_hidden_field('products_id', $listing->fields['products_id']) . zen_image_submit(BUTTON_IMAGE_IN_CART, BUTTON_IN_CART_ALT) . '</form>';


this?

              $lc_button= zen_draw_form('cart_quantity', zen_href_link($_GET['main_page'], zen_get_all_get_params(array('action')) . 'action=add_product&products_id=' . $listing->fields['products_id']), 'post', 'enctype="multipart/form-data"') . '<select> name="cart_quantity" value="' . (zen_get_buy_now_qty($listing->fields['products_id'])) . '" maxlength="6" size="4" /><br />' . zen_draw_hidden_field('products_id', $listing->fields['products_id']) . zen_image_submit(BUTTON_IMAGE_IN_CART, BUTTON_IN_CART_ALT) . '</form>';


I did it but it doesn't display quantity # inside it


also were is my product info page, i tried product_info.php but all i see is the php  file with defines in it.
11 Jun 2014, 3:51 PM
#8
mc12345678 avatar

mc12345678

Totally Zenned

Join Date:
Jul 2012
Posts:
16,908
Plugin Contributions:
2

Re: Product Quantity dropdown

StoreOwner:

this?

          $lc_button= zen_draw_form('cart_quantity', zen_href_link($_GET['main_page'], zen_get_all_get_params(array('action')) . 'action=add_product&products_id=' . $listing->fields['products_id']), 'post', 'enctype="multipart/form-data"') . '<select> name="cart_quantity" value="' . (zen_get_buy_now_qty($listing->fields['products_id'])) . '" maxlength="6" size="4" /><br />' . zen_draw_hidden_field('products_id', $listing->fields['products_id']) . zen_image_submit(BUTTON_IMAGE_IN_CART, BUTTON_IN_CART_ALT) . '</form>';

I did it but it doesn't display quantity # inside it

also were is my product info page, i tried product_info.php but all i see is the php file with defines in it.

I haven't dug into the code you proposed above; however, two things appear to stand out different from Dr. Byte suggested. One is that the modifications attempted appear to be related to the customer's choosing of the quantity instead of at the development/creation of the product. Two is that well, easiest to state that Dr. Byte provided guidance on what was needed, not specific code to accomplish the modification. As such I don't see the assignment/creation of items to populate the drop down, if one even is displayed.

While such a drop down was not yet incorporated, take a look at the plugin Checkbox TextBox Icon Product Checkout (http://www.zen-cart.com/downloads.php?do=file&id=1811) for some of how this type of modification might be possible on the store front side. It does not currently offer a dropdown list.

11 Jun 2014, 5:54 PM
#9
storeowner avatar

storeowner

New Zenner

Join Date:
Jun 2014
Location:
United States
Posts:
60
Plugin Contributions:
0

Re: Product Quantity dropdown

mc12345678:

I haven't dug into the code you proposed above; however, two things appear to stand out different from Dr. Byte suggested. One is that the modifications attempted appear to be related to the customer's choosing of the quantity instead of at the development/creation of the product. Two is that well, easiest to state that Dr. Byte provided guidance on what was needed, not specific code to accomplish the modification. As such I don't see the assignment/creation of items to populate the drop down, if one even is displayed.

While such a drop down was not yet incorporated, take a look at the plugin Checkbox TextBox Icon Product Checkout (http://www.zen-cart.com/downloads.php?do=file&id=1811) for some of how this type of modification might be possible on the store front side. It does not currently offer a dropdown list.

Ah cool thx :)

I will try to mess with it i suppose but don't think I know enough yet.

12 Jun 2014, 6:57 PM
#10
storeowner avatar

storeowner

New Zenner

Join Date:
Jun 2014
Location:
United States
Posts:
60
Plugin Contributions:
0

Re: Product Quantity dropdown

bumpity

12 Jun 2014, 7:48 PM
#11
balihr avatar

balihr

Totally Zenned

Join Date:
Oct 2008
Location:
Croatia
Posts:
1,794
Plugin Contributions:
22

Re: Product Quantity dropdown

StoreOwner:

bumpity

OK, the bumpity made me laugh so I decided to jump in and tell you what to do.

Edit your includes/modules/YOUR_TEMPLATE/product_listing.php and find (around) line 88:

for ($col=0, $n=sizeof($column_list); $col<$n; $col++) {
      $lc_align = '';

Add after:

// BOF dropdown 1/2
	  $optvalues = '';
	  for ($i = 1; $i < 16; $i++) {
		$optvalues .= '<option value="' . ((zen_get_buy_now_qty($_GET['products_id'])) * $i) . '">'. ((zen_get_buy_now_qty($_GET['products_id'])) * $i) .'</option>';	
	  }
	  // EOF dropdown 1/2

Next, find:

if (PRODUCT_LIST_PRICE_BUY_NOW == '2' && $listing->fields['products_qty_box_status'] != 0) {
              $lc_button= zen_draw_form('cart_quantity', zen_href_link($_GET['main_page'], zen_get_all_get_params(array('action')) . 'action=add_product&products_id=' . $listing->fields['products_id']), 'post', 'enctype="multipart/form-data"') . '<input type="text" name="cart_quantity" value="' . (zen_get_buy_now_qty($listing->fields['products_id'])) . '" maxlength="6" size="4" /><br />' . zen_draw_hidden_field('products_id', $listing->fields['products_id']) . zen_image_submit(BUTTON_IMAGE_IN_CART, BUTTON_IN_CART_ALT) . '</form>';
            }

and replace with:

if (PRODUCT_LIST_PRICE_BUY_NOW == '2' && $listing->fields['products_qty_box_status'] != 0) {
              // BOF dropdown 2/2
			  //$lc_button= zen_draw_form('cart_quantity', zen_href_link($_GET['main_page'], zen_get_all_get_params(array('action')) . 'action=add_product&products_id=' . $listing->fields['products_id']), 'post', 'enctype="multipart/form-data"') . '<input type="text" name="cart_quantity" value="' . (zen_get_buy_now_qty($listing->fields['products_id'])) . '" maxlength="6" size="4" /><br />' . zen_draw_hidden_field('products_id', $listing->fields['products_id']) . zen_image_submit(BUTTON_IMAGE_IN_CART, BUTTON_IN_CART_ALT) . '</form>';
			  $lc_button= zen_draw_form('cart_quantity', zen_href_link($_GET['main_page'], zen_get_all_get_params(array('action')) . 'action=add_product&products_id=' . $listing->fields['products_id']), 'post', 'enctype="multipart/form-data"') . '<select name="cart_quantity">'. $optvalues .'</select>' . (zen_get_products_quantity_order_min((int)$_GET['products_id']) || zen_get_products_quantity_order_units((int)$_GET['products_id']) ? zen_get_products_quantity_min_units_display((int)$_GET['products_id']) : '')  . zen_draw_hidden_field('products_id', $listing->fields['products_id']) . zen_image_submit(BUTTON_IMAGE_IN_CART, BUTTON_IN_CART_ALT) . '</form>';
			  // EOF dropdown 2/2
            }

And last - go to admin->Configuration->Product Listing and set:
Display Product Add to Cart Button: 2
Display Multiple Products Qty Box Status and Set Button Location: 0

This should do the trick, although I haven't really tested it so make sure it works for ALL cases.

Regards,
Leonard

12 Jun 2014, 11:16 PM
#12
storeowner avatar

storeowner

New Zenner

Join Date:
Jun 2014
Location:
United States
Posts:
60
Plugin Contributions:
0

Re: Product Quantity dropdown

balihr:

OK, the bumpity made me laugh so I decided to jump in and tell you what to do.

Edit your includes/modules/YOUR_TEMPLATE/product_listing.php and find (around) line 88:

for ($col=0, $n=sizeof($column_list); $col<$n; $col++) {
$lc_align = '';

> Add after:
> ```
// BOF dropdown 1/2
	  $optvalues = '';
	  for ($i = 1; $i < 16; $i++) {
		$optvalues .= '<option value="' . ((zen_get_buy_now_qty($_GET['products_id'])) * $i) . '">'. ((zen_get_buy_now_qty($_GET['products_id'])) * $i) .'</option>';	
	  }
	  // EOF dropdown 1/2

Next, find:

if (PRODUCT_LIST_PRICE_BUY_NOW == '2' && $listing->fields['products_qty_box_status'] != 0) {
$lc_button= zen_draw_form('cart_quantity', zen_href_link($_GET['main_page'], zen_get_all_get_params(array('action')) . 'action=add_product&products_id=' . $listing->fields['products_id']), 'post', 'enctype="multipart/form-data"') . '<input type="text" name="cart_quantity" value="' . (zen_get_buy_now_qty($listing->fields['products_id'])) . '" maxlength="6" size="4" /><br />' . zen_draw_hidden_field('products_id', $listing->fields['products_id']) . zen_image_submit(BUTTON_IMAGE_IN_CART, BUTTON_IN_CART_ALT) . '</form>';
}

> and replace with:
> ```
if (PRODUCT_LIST_PRICE_BUY_NOW == '2' && $listing->fields['products_qty_box_status'] != 0) {
              // BOF dropdown 2/2
			  //$lc_button= zen_draw_form('cart_quantity', zen_href_link($_GET['main_page'], zen_get_all_get_params(array('action')) . 'action=add_product&products_id=' . $listing->fields['products_id']), 'post', 'enctype="multipart/form-data"') . '<input type="text" name="cart_quantity" value="' . (zen_get_buy_now_qty($listing->fields['products_id'])) . '" maxlength="6" size="4" /><br />' . zen_draw_hidden_field('products_id', $listing->fields['products_id']) . zen_image_submit(BUTTON_IMAGE_IN_CART, BUTTON_IN_CART_ALT) . '</form>';
			  $lc_button= zen_draw_form('cart_quantity', zen_href_link($_GET['main_page'], zen_get_all_get_params(array('action')) . 'action=add_product&products_id=' . $listing->fields['products_id']), 'post', 'enctype="multipart/form-data"') . '<select name="cart_quantity">'. $optvalues .'</select>' . (zen_get_products_quantity_order_min((int)$_GET['products_id']) || zen_get_products_quantity_order_units((int)$_GET['products_id']) ? zen_get_products_quantity_min_units_display((int)$_GET['products_id']) : '')  . zen_draw_hidden_field('products_id', $listing->fields['products_id']) . zen_image_submit(BUTTON_IMAGE_IN_CART, BUTTON_IN_CART_ALT) . '</form>';
			  // EOF dropdown 2/2
            }

And last - go to admin->Configuration->Product Listing and set:
Display Product Add to Cart Button: 2
Display Multiple Products Qty Box Status and Set Button Location: 0

This should do the trick, although I haven't really tested it so make sure it works for ALL cases.

Regards,
Leonard

you are a genius thanks!!!
Anyway I can make it so you can get more than 15 in quantity - any larger = scroll?

if not either way this should work :D tyvm!

also products with only 1 quantity it still shows 15 :(

13 Jun 2014, 12:02 AM
#13
balihr avatar

balihr

Totally Zenned

Join Date:
Oct 2008
Location:
Croatia
Posts:
1,794
Plugin Contributions:
22

Re: Product Quantity dropdown

StoreOwner:

you are a genius thanks!!!
Anyway I can make it so you can get more than 15 in quantity - any larger = scroll?
Sure - you can take it up to a trillion if you want. Notice the first change ($i<16) - change it to whatever max value you want. However, AFAIK, you can't control how many rows to display before scrollbar appears. Well, at least not without some javascript (or jQuery).

StoreOwner:

also products with only 1 quantity it still shows 15 :(

Yeah... Well, here's a new version:

// BOF dropdown 1/2
	  $optvalues = '';
	  $stock_check = $listing->fields['products_quantity'];
	  $stock_menu = $stock_check < 15 ? $stock_check : 15;
	  for ($i = 1; $i <= $stock_menu; $i++) {
		$optvalues .= '<option value="' . ((zen_get_buy_now_qty($_GET['products_id'])) * $i) . '">'. ((zen_get_buy_now_qty($_GET['products_id'])) * $i) .'</option>';	
	  }
	  // EOF dropdown 1/2

Enjoy! :smile:

Regards,
Leonard

13 Jun 2014, 12:15 AM
#14
storeowner avatar

storeowner

New Zenner

Join Date:
Jun 2014
Location:
United States
Posts:
60
Plugin Contributions:
0

Re: Product Quantity dropdown

<3

ur the best!

scroll working too! wow took u 2 secs :D

13 Jun 2014, 12:51 AM
#15
storeowner avatar

storeowner

New Zenner

Join Date:
Jun 2014
Location:
United States
Posts:
60
Plugin Contributions:
0

Re: Product Quantity dropdown

do you know how i can make it be right above the add to cart button?

Right now its on the left side of it and a little bit lower

13 Jun 2014, 1:06 AM
#16
balihr avatar

balihr

Totally Zenned

Join Date:
Oct 2008
Location:
Croatia
Posts:
1,794
Plugin Contributions:
22

Re: Product Quantity dropdown

StoreOwner:

do you know how i can make it be right above the add to cart button?

It's probably inheriting some styling from your CSS - by default (clean 1.5.1 install), it IS centered above the button. You could try something like this in your stylesheet.css:

.productListing-data select {
	display: block;
	margin:0.1em auto;
}
13 Jun 2014, 1:14 AM
#17
storeowner avatar

storeowner

New Zenner

Join Date:
Jun 2014
Location:
United States
Posts:
60
Plugin Contributions:
0

Re: Product Quantity dropdown

worked :)