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

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


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 в 00: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 группы, для которой показываем остатки.

Expand  

 

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

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


  В 18.05.2021 в 23: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

Expand  

 

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

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


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

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

  В 20.05.2021 в 11:58, surlan сказав:

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

Expand  

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

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

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

 

  В 20.05.2021 в 11:57, surlan сказав:

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

Expand  

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

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

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

  В 20.05.2021 в 14:08, mpn2005 сказав:

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

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

Expand  

 

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

 

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

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

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


  В 20.05.2021 в 14:08, mpn2005 сказав:

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

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

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

 

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

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

Expand  

 

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

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


  В 20.05.2021 в 17:41, surlan сказав:

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

Expand  

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

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

 

 

  В 20.05.2021 в 17:41, surlan сказав:

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

Expand  

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

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

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

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

 

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

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

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

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

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

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

  В 20.05.2021 в 17:47, mpn2005 сказав:

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

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

 

 

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

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

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

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

 

Expand  

 

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

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


  В 20.05.2021 в 17:50, surlan сказав:

 

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

Expand  

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

$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 в 00: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 группы, для которой показываем остатки.

Expand  

 

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

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

 

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


@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 і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.