Post by Marco75 » Thu Oct 28, 2010 8:16 pm

Hello everyone,

I'm new and my English is bad, I apologize.

I use OpenCart 1.4.8

I'd like to add a column "stock_status" in the page product_list and to use the filter on this column.

That's what I did

In the file: admin/controller/catalog/product.php

I added:

Code: Select all

			if (isset($this->request->get['filter_stock_status_id'])) {
				$url .= '&filter_stock_status_id=' . $this->request->get['filter_stock_status_id'];
			}
After this lines (37-39):

Code: Select all

			if (isset($this->request->get['filter_quantity'])) {
				$url .= '&filter_quantity=' . $this->request->get['filter_quantity'];
			}
I added:

Code: Select all

			if (isset($this->request->get['filter_stock_status_id'])) {
				$url .= '&filter_stock_status_id=' . $this->request->get['filter_stock_status_id'];
			}
After this lines (85-87):

Code: Select all

			if (isset($this->request->get['filter_quantity'])) {
				$url .= '&filter_quantity=' . $this->request->get['filter_quantity'];
			}
I added:

Code: Select all

			if (isset($this->request->get['filter_stock_status_id'])) {
				$url .= '&filter_stock_status_id=' . $this->request->get['filter_stock_status_id'];
			}
After this lines (135-137):

Code: Select all

			if (isset($this->request->get['filter_quantity'])) {
				$url .= '&filter_quantity=' . $this->request->get['filter_quantity'];
			}
I added:

Code: Select all

			if (isset($this->request->get['filter_stock_status_id'])) {
				$url .= '&filter_stock_status_id=' . $this->request->get['filter_stock_status_id'];
			}
After this lines (185-187):

Code: Select all

			if (isset($this->request->get['filter_quantity'])) {
				$url .= '&filter_quantity=' . $this->request->get['filter_quantity'];
			}
I added:

Code: Select all

		if (isset($this->request->get['filter_stock_status_id'])) {
			$filter_stock_status_id = $this->request->get['filter_stock_status_id'];
		} else {
			$filter_stock_status_id = NULL;
		}
After this lines (242-246):

Code: Select all

		if (isset($this->request->get['filter_quantity'])) {
			$filter_quantity = $this->request->get['filter_quantity'];
		} else {
			$filter_quantity = NULL;
		}
I added:

Code: Select all

		if (isset($this->request->get['filter_stock_status_id'])) {
			$url .= '&filter_stock_status_id=' . $this->request->get['filter_stock_status_id'];
		}
After this lines (264-266):

Code: Select all

		if (isset($this->request->get['filter_quantity'])) {
			$url .= '&filter_quantity=' . $this->request->get['filter_quantity'];
		}
I added:

Code: Select all

			'filter_stock_status_id'	=> $filter_stock_status_id,
After this line (307):

Code: Select all

			'filter_quantity' => $filter_quantity,
I added:

Code: Select all

				'stock_status_id'	=> $result['stock_status_id'],
After this line (340):

Code: Select all

				'quantity'   => $result['quantity'],
I added:

Code: Select all

		$this->load->model('localisation/stock_status');

		$this->data['stock_statuses'] = $this->model_localisation_stock_status->getStockStatuses();

		if (isset($this->request->post['stock_status_id'])) {
      		$this->data['stock_status_id'] = $this->request->post['stock_status_name'];
    	} else if (isset($product_info)) {
      		$this->data['stock_status_id'] = $product_info['stock_status_name'];
    	} else {
			$this->data['stock_status_id'] = $this->config->get('config_stock_status_id');
		}
After this lines (344-345):

Code: Select all

			);
    	}
I added:

Code: Select all

		$this->data['column_stock_status'] = $this->language->get('column_stock_status');
After this line (357):

Code: Select all

		$this->data['column_quantity'] = $this->language->get('column_quantity');
I added:

Code: Select all

		if (isset($this->request->get['filter_stock_status_id'])) {
			$url .= '&filter_stock_status_id=' . $this->request->get['filter_stock_status_id'];
		}
After this lines (392-394):

Code: Select all

		if (isset($this->request->get['filter_quantity'])) {
			$url .= '&filter_quantity=' . $this->request->get['filter_quantity'];
		}
I added:

Code: Select all

		$this->data['sort_stock_status'] = HTTPS_SERVER . 'index.php?route=catalog/product&token=' . $this->session->data['token'] . '&sort=p.stock_status_id' . $url;
After this line (412):

Code: Select all

		$this->data['sort_quantity'] = HTTPS_SERVER . 'index.php?route=catalog/product&token=' . $this->session->data['token'] . '&sort=p.quantity' . $url;
I added:

Code: Select all

		if (isset($this->request->get['filter_stock_status_id'])) {
			$url .= '&filter_stock_status_id=' . $this->request->get['filter_stock_status_id'];
		}
After this lines (426-428):

Code: Select all

		if (isset($this->request->get['filter_quantity'])) {
			$url .= '&filter_quantity=' . $this->request->get['filter_quantity'];
		}
I added:

Code: Select all

		$this->data['filter_stock_status_id'] = $filter_stock_status_id;
After this line (453):

Code: Select all

		$this->data['filter_quantity'] = $filter_quantity;
In the file admin/view/template/catalog/product_list.tpl

I added:

Code: Select all

              <a href="<?php echo $sort_price; ?>"><?php echo $column_price; ?></a>
              <?php } ?></td>
            <td class="right"><?php if ($sort == 'p.stock_status') { ?>
              <a href="<?php echo $stock_status['name']; ?>" class="<?php echo strtolower($order); ?>"><?php echo $column_stock_status; ?></a>
              <?php } else { ?>
              <a href="<?php echo $stock_status['name']; ?>"><?php echo $column_stock_status; ?></a>
After this line (35):

Code: Select all

              <a href="<?php echo $sort_quantity; ?>"><?php echo $column_quantity; ?></a>
I added:

Code: Select all

            <td align="right"><select name="filter_stock_status_id">
                <option value="*"></option>
                <?php foreach ($stock_statuses as $stock_status) { ?>
                <?php if ($stock_status['stock_status_id'] == $filter_stock_status_id) { ?>
                <option value="<?php echo $stock_status['stock_status_id']; ?>" selected="selected"><?php echo $stock_status['name']; ?></option>
                <?php } else { ?>
                <option value="<?php echo $stock_status['stock_status_id']; ?>"><?php echo $stock_status['name']; ?></option>
                <?php } ?>
                <?php } ?>
              </select></td>
After this line (51):

Code: Select all

            <td align="right"><input type="text" name="filter_quantity" value="<?php echo $filter_quantity; ?>" style="text-align: right;" /></td>
I added:

Code: Select all

            <td class="right"><?php echo $stock_status['name']; ?></td>
After this lines (78-84):

Code: Select all

            <td class="right"><?php if ($product['quantity'] <= 0) { ?>
              <span style="color: #FF0000;"><?php echo $product['quantity']; ?></span>
              <?php } elseif ($product['quantity'] <= 5) { ?>
              <span style="color: #FFA500;"><?php echo $product['quantity']; ?></span>
              <?php } else { ?>
              <span style="color: #008000;"><?php echo $product['quantity']; ?></span>
              <?php } ?></td>
I added:

Code: Select all

	
	var filter_stock_status = $('select[name=\'filter_stock_status\']').attr('value');
	
	if (filter_stock_status != '*') {
		url += '&filter_stock_status=' + encodeURIComponent(filter_stock_status);
	}
After this lines (118-122):

Code: Select all

	var filter_quantity = $('input[name=\'filter_quantity\']').attr('value');
	
	if (filter_quantity) {
		url += '&filter_quantity=' + encodeURIComponent(filter_quantity);
	}
My problem is that:
1 - the respective stock_status not displayed for products
2 - This error appears when I want to sort by (Asc, Desc) the stock_status:
Undefined variable: stock_status in /public_html/test/admin/view/template/catalog/product_list.tpl on line 40
Thank you to those who can tell me what to do.

My version > 1.4.9.3


Newbie

Posts

Joined
Thu Oct 28, 2010 6:48 pm
Who is online

Users browsing this forum: No registered users and 11 guests