Перейти к содержанию
andrsin

Кнопка сброса количества товаров в админке по фильтру

Рекомендуемые сообщения

Добрый день всем!

Понадобился небольшой функционал в админке в списке товаров, а именно добавить кнопку удаления количества товаров по фильтру (групповая обработка).
Ни как не получается.
Что сделал:
файл admin/model/catalog/product.php добавил фнкцию

 public function upnullProduct($product_id) {
		$this->db->query("UPDATE" . DB_PREFIX . "product SET quantity = 0 WHERE product_id = '" . (int)$product_id . "'");		
	}

файл admin/controller/catalog/product.php  добавил следующий код

public function upnull() {
		$this->language->load('catalog/product');

		$this->document->setTitle($this->language->get('heading_title'));

		$this->load->model('catalog/product');

		if (isset($this->request->post['selected']) && $this->validateUpnull()) {
			foreach ($this->request->post['selected'] as $product_id) {
				$this->model_catalog_product->upnullProduct($product_id);
			}

			$this->session->data['success'] = $this->language->get('text_success');

			$url = '';

			if (isset($this->request->get['filter_name'])) {
				$url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8'));
			}

			if (isset($this->request->get['filter_model'])) {
				$url .= '&filter_model=' . urlencode(html_entity_decode($this->request->get['filter_model'], ENT_QUOTES, 'UTF-8'));
			}

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

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

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

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

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

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

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

			$this->response->redirect($this->url->link('catalog/product', 'token=' . $this->session->data['token'] . $url, 'SSL'));
		}

		$this->getList();
	}

и ниже

$data['copy'] = $this->url->link('catalog/product/copy', 'token=' . $this->session->data['token'] . $url, 'SSL');
$data['delete'] = $this->url->link('catalog/product/delete', 'token=' . $this->session->data['token'] . $url, 'SSL');
$data['upnull'] = $this->url->link('catalog/product/upnull', 'token=' . $this->session->data['token'] . $url, 'SSL');

В шаблон вставил

<button type="button" data-toggle="tooltip" title="На 0" class="btn btn-danger" onclick="$('#form-product').attr('action', '<?php echo $upnull; ?>').submit()"><i class="fa fa-copy"></i></button>

При клике на кнопку - Список товаров обновлен!  и ничего не меняется, где еще надо править код ?
заранее спасибо

 



 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А что показывает отладчик в браузере? Запрос на сервер уходит?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А что показывает отладчик в браузере? Запрос на сервер уходит?

Висит в ошибках строка

http://localhost/ps/admin/index.php?route=catalog/product/upnull&token=AxVKfYnIQHPtDLroVSxD9zJK2LQLuT5I
Изменено пользователем andrsin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

какая ошибка? 500?

что в логах сервера?

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

кеш модификаторов обновите

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

какая ошибка? 500?

что в логах сервера?

2016-10-18 10:27:00 - PHP Notice:  Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UPDATEocsp_product SET quantity = 0 WHERE product_id = '47'' at line 1<br />Error No: 1064<br />UPDATEocsp_product SET quantity = 0 WHERE product_id = '47' in C:\xampp\htdocs\ps\system\library\db\mysqli.php on line 41

Разобрался, спасибо за поддержку! UPDATEocsp_product  напиcал без пробела. В этот журнал и не заглядывал, думал что Список товаров обновлен! - зелененькая надпись говорит Все хорошо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.