Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Показ остатков товаров для отдельной группы


Recommended Posts

Да проще простого. В контроллере
 

$data['customer_group_id'] = $this->customer->getCustomerGroupId(); // здесь определяем группу покупателя
$data['quantity'] = $result['quantity']; // а здесь кол-во товара

В шаблоне
 

<?php if($customer_group_id == 1) { ?>
	<?php echo $quantity; ?>
<?php } ?>

Это для группы с айдишником == 1

Надіслати
Поділитися на інших сайтах

В карточке товара на примере OC2.3

 

В файле catalog/controller/product/product.php

 

Это:

} elseif ($this->config->get('config_stock_display')) {

Заменяем на это:

} elseif ($this->config->get('config_stock_display') || $this->config->get('config_customer_group_id') == 123) {

Где 123 - это ID группы, для которой показываем остатки.

  • +1 1
Надіслати
Поділитися на інших сайтах

В 19.05.2021 в 03:08, mpn2005 сказал:

В карточке товара на примере OC2.3

 

В файле catalog/controller/product/product.php

 

Это:



} elseif ($this->config->get('config_stock_display')) {

Заменяем на это:



} elseif ($this->config->get('config_stock_display') || $this->config->get('config_customer_group_id') == 123) {

Где 123 - это ID группы, для которой показываем остатки.

 

Показывает количество даже для неавторизованных пользователей. Опенкарт 2.0.2.0

Змінено користувачем surlan
Надіслати
Поділитися на інших сайтах


В 19.05.2021 в 02:43, SGrWr_34 сказал:

Да проще простого. В контроллере
 


$data['customer_group_id'] = $this->customer->getCustomerGroupId(); // здесь определяем группу покупателя
$data['quantity'] = $result['quantity']; // а здесь кол-во товара

В шаблоне
 


<?php if($customer_group_id == 1) { ?>
	<?php echo $quantity; ?>
<?php } ?>

Это для группы с айдишником == 1

 

Это для карточки? Мне желательно для категории

Надіслати
Поділитися на інших сайтах


да какая разница? вше даже @mpn2005 показал получше решение, универсальное. Может, пихаете не туда? Должно работать, готов подписаться)

Надіслати
Поділитися на інших сайтах

2 часа назад, surlan сказал:

Это для карточки? Мне желательно для категории

Из коробки в категории не выводится ни статус на складе. Ни остатки.

Это уже зависит от используемой темы.

Тут вам заочно никто не подскажет, что именно и куда написать.

 

2 часа назад, surlan сказал:

Показывает количество даже для неавторизованных пользователей. Опенкарт 2.0.2.0

А где вы писали про авторизацию? Вы написали для группы. Я привёл пример для группы.

Как у вас заданы группы я не могу знать.

Надіслати
Поділитися на інших сайтах

3 часа назад, mpn2005 сказал:

А где вы писали про авторизацию? Вы написали для группы. Я привёл пример для группы.

Как у вас заданы группы я не могу знать.

 

За код спасибо! Направление вы точно задали.

 

Группа пользователей может быть определена только при авторизации оных, верно?

Я указал показанный вами код для группы 1 (администраторы), однако количество товара на складе показывается подряд всем (даже не авторизованным) пользователям. Или я вас неправильно понимаю?

Змінено користувачем surlan
Надіслати
Поділитися на інших сайтах


3 часа назад, mpn2005 сказал:

Из коробки в категории не выводится ни статус на складе. Ни остатки.

Это уже зависит от используемой темы.

Тут вам заочно никто не подскажет, что именно и куда написать.

 

А где вы писали про авторизацию? Вы написали для группы. Я привёл пример для группы.

Как у вас заданы группы я не могу знать.

 

А, я понял. Вы прислали пример реализации для группы покупателей. А я имел в виду группы пользователей типа Администраторы, Менеджеры и прочее. Чтобы менеджеры магазины при авторизации могли видеть остатки товаров непосредственно на сайте (так нам удобней). Это сложнее, чем ваше решение?

Надіслати
Поділитися на інших сайтах


1 минуту назад, surlan сказал:

Группа пользователей может быть определена только при авторизации оных, верно?

Есть группа клиентов. Это одно - сущность customer.

Даже не залогиненный клиент принадлежит к группе по умолчанию.

 

 

1 минуту назад, surlan сказал:

Группа пользователей может быть определена только при авторизации оных, верно?

Есть группа пользователей - это совсем другое. Сущность user.

Если надо только для администратора, то там немного по дргому.

В контроллере так:

$user = new Cart\User($this->registry);
if ($user->isLogged()) {
 // тут код только для админа
}

 

  • +1 1
Надіслати
Поділитися на інших сайтах

Если это не сильно критические вещи, и просто вывод информации для админа, то допустимо делать так.

Пример в контроллере:

if (!empty($this->session->data['user_id'])) {
  // тут код для админа
}

Такой вариант быстрее, т.к. не дёргается либа user, которая по умолчанию на фронте не загружена.

Надіслати
Поділитися на інших сайтах

2 минуты назад, mpn2005 сказал:

Есть группа клиентов. Это одно - сущность customer.

Даже не залогиненный клиент принадлежит к группе по умолчанию.

 

 

Есть группа пользователей - это совсем другое. Сущность user.

Если надо только для администратора, то там немного по дргому.

В контроллере так:


$user = new Cart\User($this->registry);
if ($user->isLogged()) {
 // тут код только для админа
}

 

 

Супер. А по id не получится идентифицировать? Чтобы мы могли создать отдельную группу пользователей с ограниченными правами. 

Надіслати
Поділитися на інших сайтах


2 часа назад, surlan сказал:

 

Супер. А по id не получится идентифицировать? Чтобы мы могли создать отдельную группу пользователей с ограниченными правами. 

Вот так, если с подгрузкой либы:

$user = new Cart\User($this->registry);
if ($user->isLogged() && $user->getGroupId() == 123) {
 // тут код только для админа
}

Где 123 - это группа пользователя в админке.

 

Выполнять стоит один раз и занести в переменную. А не в цикле перебора товаров.

Например так:

$user = new Cart\User($this->registry);
$is_admin = $user->isLogged() && $user->getGroupId() == 123;

А потом уже в переборе товаров использовать:

if ($is_admin) {
  // тут нужный код
}

 

Надіслати
Поділитися на інших сайтах

В 19.05.2021 в 03:08, mpn2005 сказал:

В карточке товара на примере OC2.3

 

В файле catalog/controller/product/product.php

 

Это:


} elseif ($this->config->get('config_stock_display')) {

Заменяем на это:


} elseif ($this->config->get('config_stock_display') || $this->config->get('config_customer_group_id') == 123) {

Где 123 - это ID группы, для которой показываем остатки.

 

Решил таки сделать через группу покупателей, вместо авторизации в админке авторизуюсь как клиент.

А не подскажете, как сделать то же самое, только для категории?

 

Надіслати
Поділитися на інших сайтах


@surlan а для категории в контроллере

после

foreach ($results as $result) {

вставляем

if ($this->customer->isLogged() && $this->customer->getGroupId() == 123) {
	$stock = $result['quantity'];
} else {
	$stock = '';
}

и ниже после

'price'       => $price,

добавляем

'stock'       => $stock,

в шаблоне выводим

<?php if ($stock) { ?>
	Остаток: <?php echo $stock; ?>
<?php } ?>

 

 

  • +1 1
Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.