Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

Вывод id магазина в списке товаров админки


Recommended Posts

В админке в списке товаров пытаюсь напротив каждого продукта вывести id магазина к которому он присвоен. В site.ru/admin/view/template/catalog/product_list.tpl пытался вывести <?php echo $product['store_id']; ?> Но это не работает...

В site.ru/admin/model/catalog/product.php есть упоминание о $store_id, как я понимаю запрос уже делается о необходимой информации в бд в поле product_to_store

Однако в контроллере site.ru/admin/controller/catalog/product.php встречается только в одном месте

$this->load->model('setting/store');

    $data['stores'] = $this->model_setting_store->getStores();

    if (isset($this->request->post['product_store'])) {
      $data['product_store'] = $this->request->post['product_store'];
    } elseif (isset($this->request->get['product_id'])) {
      $data['product_store'] = $this->model_catalog_product->getProductStores($this->request->get['product_id']);
    } else {
      $data['product_store'] = array(0);
    }

Подскажите плз, как правильно вывести id магазина в site.ru/admin/view/template/catalog/product_list.tpl? Аналогичная проблема со списком категорий...

Edited by 20strannik08
Link to post
Share on other sites

Как-то так

$data['products'] = array(
'stores' => getStores($product_id),
`categories' => getCatagories($product_id)

Link to post
Share on other sites
15 часов назад, Tom сказал:

 

Поковырявшись с данным модификатором, получилось сделать все указанное по аналогии, спасибо за этот пример! На память сюда пошаговое решение выложу.

 

Для продуктов, в /site.ru/admin/catalog/controller/product.php Нужно найти этот код:

$data['products'][] = array(

и перед ним вставить:

            $this->load->model('setting/store');
		    $data['stores'] = $this->model_setting_store->getStores();
			$data['product_store'] = $this->model_catalog_product->getProductStores($result['product_id']);
			$product_store_list = '';

			if (!empty($data['product_store'])) {
			    if (in_array(0, $data['product_store'])) { $product_store_list = $this->language->get('text_default'); };
			    foreach ($data['stores'] as $store) {
			        if (in_array($store['store_id'], $data['product_store'])) { ($product_store_list != '') ? $product_store_list .= ','.$store['name']: $product_store_list = $store['name']; };
			        };
			    };

А после него вставить

'stores' => $product_store_list,

Далее в /site.ru/admin/view/template/catalog/product_list.tpl в нужное место вывести

<?php echo $product['stores']; ?>

В категориях /site.ru/admin/catalog/controller/category.php найти

$output[$result['category_id']] = array(

И перед этим кодом вставить

            $this->load->model('setting/store');
		    $data['stores'] = $this->model_setting_store->getStores();
			$data['category_store'] = $this->model_catalog_category->getCategoryStores($result['category_id']);
			$category_store_list = '';
			if (!empty($data['category_store'])) {
			    if (in_array(0, $data['category_store'])) { $category_store_list = $this->language->get('text_default'); };
			    foreach ($data['stores'] as $store) {
			        if (in_array($store['store_id'], $data['category_store'])) { ($category_store_list != '') ? $category_store_list .= ','.$store['name']: $category_store_list = $store['name']; };
			        };
			    };

А после него вставить

'stores' => $category_store_list,

Далее в /site.ru/admin/view/template/catalog/category_list.tpl в нужное место воткнуть

'stores' => $category_store_list

Эти примеры выводят имена магазина.

 

Для вывода вместо названия магазинов ихние id для контроллера товаров вставить заместо прежнего кода этот вариант:

            $this->load->model('setting/store');
		    $data['stores'] = $this->model_setting_store->getStores();
			$data['product_store'] = $this->model_catalog_product->getProductStores($result['product_id']);
			$product_store_list = '';

			if (!empty($data['product_store'])) {
			    if (in_array(0, $data['product_store'])) { $product_store_list = '0'; };
			    foreach ($data['stores'] as $store) {
			        if (in_array($store['store_id'], $data['product_store'])) { ($product_store_list != '') ? $product_store_list .= ','.$store['store_id']: $product_store_list = $store['store_id']; };
			        };
			    };

И для списка категорий соответственно

            $this->load->model('setting/store');
		    $data['stores'] = $this->model_setting_store->getStores();
			$data['category_store'] = $this->model_catalog_category->getCategoryStores($result['category_id']);
			$category_store_list = '';
			if (!empty($data['category_store'])) {
			    if (in_array(0, $data['category_store'])) { $category_store_list = '0'; };
			    foreach ($data['stores'] as $store) {
			        if (in_array($store['store_id'], $data['category_store'])) { ($category_store_list != '') ? $category_store_list .= ','.$store['store_id']: $category_store_list = $store['store_id']; };
			        };
			    };

Это то что у меня заработало на ocstore 2.3

Edited by 20strannik08
Link to post
Share on other sites

А то что я прикрепил в виде готового модификатора?

Link to post
Share on other sites
32 минуты назад, Tom сказал:

А то что я прикрепил в виде готового модификатора?

Как неловко вышло, я подумал что это один и тот же файл... Я убил почти два вечера на это, а готовый модификатор уже был оказывается)))

Все равно спасибо)

 

P.S. В итоге я под себя поправил что бы значения stores передавались не имена магазина а id, а по ним уже фильтрацию товаров и категорий в зависимости от магазина.

Edited by 20strannik08
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.