Новости Joomla

20 лет Joomla: Ринат Кажетов.В 2025 году Joomla исполнилось 20 лет

20 лет Joomla: Ринат Кажетов.В 2025 году Joomla исполнилось 20 лет

👩‍💻 20 лет Joomla: Ринат Кажетов.В 2025 году Joomla исполнилось 20 лет. Вокруг неё сложилось большое интернациональное русскоязычное сообщество. На сайте нашего сообщества и на Хабре к юбилею были собраны интервью с его видными представителями. Сегодня мы читаем интервью с Ринатом Кажетовым (@rkazhet). Ринат - один из администраторов чата русскоязычного Joomla-сообщества, из Казахстана. Это человек, который всегда знает или найдёт нужную ссылку, пристально следит за новостями в мире Joomla, многое узнаёт первым и просто очень отзывчивый человек. Интервью с Ринатом взял Евгений Сивоконь.Читать интервью@joomlafeed#joomla #community

0 Пользователей и 1 Гость просматривают эту тему.
  • 13 Ответов
  • 980 Просмотров
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Скидка на заказ в корзине
« : 17.11.2018, 16:12:04 »
Нужно сделать скидку на конечный заказ.
Как это лучше и правильнее организовать?
На этапе cart делаю пересчет суммы, но $this->fullsumm видимо не переписывается.

Как лучше поступить? Сменить значение суммы заказа в БД?
Или оно пересчитается и это надо сделать на этапе checkout?
Или может есть другие варианты?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Скидка на заказ в корзине
« Ответ #1 : 17.11.2018, 16:31:34 »
на этапе оформления суммы пересчитаются, поэтому делать это на этапе корзины рано, нужно на этапе оформления. но и в корзине все равно ж я так понимаю нужно, потому что скидку надо юзеру показать?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Скидка на заказ в корзине
« Ответ #2 : 17.11.2018, 16:33:38 »
на этапе оформления суммы пересчитаются, поэтому делать это на этапе корзины рано, нужно на этапе оформления. но и в корзине все равно ж я так понимаю нужно, потому что скидку надо юзеру показать?
Скидку я показываю через переопределение, это не проблема.
Я могу переписать сумму заказа (не трогая цен товаров)? И на каком этапе, если да?
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Скидка на заказ в корзине
« Ответ #3 : 17.11.2018, 16:59:10 »
Давно не трогал ЖШ, но если правильно помню, то тебе нужно написать плагин на события onBeforeDisplayCheckoutCartView и onAfterSaveCheckoutStep*, смотря на каком шаге будет расчитываться скидка. Также нужно позаботиться, чтобы заказ правильно записался и показывался в админке.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Скидка на заказ в корзине
« Ответ #4 : 17.11.2018, 17:02:58 »
сохранить проще всего наверное в onBeforeCreateOrder, туда как раз заказ передается, но еще не сохранен, даже запроса лишнего не будет. в модели \components\com_jshopping\models\checkoutorder.php метод createOrder, там вызов этого метода
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Скидка на заказ в корзине
« Ответ #5 : 18.11.2018, 09:41:09 »
Так, что-то не могу поймать вызов.. или не так пишу?
Код
	function onBeforeCreateOrder($order, $cart, $it)
{
var_dump($order);
var_dump($cart);
die();

}
Сам плагин активировал, группа
Код
<extension version="1.7" type="plugin" group="jshoppingorder"
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Скидка на заказ в корзине
« Ответ #6 : 18.11.2018, 09:44:15 »
А, увидел, срабатывает после нажатия Подтвердить
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Скидка на заказ в корзине
« Ответ #7 : 18.11.2018, 09:45:19 »
Опять же extra_fields не подтягиваются?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Скидка на заказ в корзине
« Ответ #8 : 18.11.2018, 10:00:41 »
в заказе уже extra_fields нет, не сохраняются, нет даже полей в базе для этого. только самому по id товара подгружать. либо может раньше просто в сессии сохранить признак (или даже сумму) скидки, а на этапе сохранения из сессии вытянуть и просто добавить в заказ
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Скидка на заказ в корзине
« Ответ #9 : 18.11.2018, 10:46:03 »
Хм. А метод подтягивания как в шаблоне не работает в плагине  >:(
Код
$table_product = JTable::getInstance('product', 'jshop');


foreach ($cart->products as $product)
{
$table_product->load($product->product_id);

$extra_fieldDatas = $table_product->getExtraFields();
var_dump($extra_fieldDatas);
}
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Скидка на заказ в корзине
« Ответ #10 : 18.11.2018, 11:10:57 »
Код
$order->getAllItems();
foreach ($order->items as $product)

P.S. но это сработает только если заказ уже был сохранен (и были сохранены его твоары)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Скидка на заказ в корзине
« Ответ #11 : 18.11.2018, 11:16:08 »
Код
$order->getAllItems();
foreach ($order->items as $product)

P.S. но это сработает только если заказ уже был сохранен (и были сохранены его твоары)
Не, эта конструкция вовсе не работает.
Код выше получает продукты, но не получает характеристики
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Скидка на заказ в корзине
« Ответ #12 : 18.11.2018, 11:18:39 »
А, всё ок, мой недогляд, вместо
Код
		$table_product->load($product->product_id);

надо
Код
$table_product->load($product['product_id']);
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Скидка на заказ в корзине
« Ответ #13 : 18.11.2018, 11:50:44 »
а, да, так и есть, там массив, а не объект
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как добавить 2 налога на один товар + отображение 2-х налогов в корзине?

Автор tigra-uki

Ответов: 3
Просмотров: 2484
Последний ответ 05.05.2023, 13:03:22
от kit2m2
Свободный атрибут в корзине

Автор anny_k

Ответов: 7
Просмотров: 1502
Последний ответ 22.02.2020, 10:17:01
от anny_k
Можно ли удалить выбранный атрибут в корзине?

Автор Ariadna

Ответов: 6
Просмотров: 1007
Последний ответ 06.02.2020, 00:37:04
от Ariadna
Атрибуты Select в корзине

Автор sakor

Ответов: 12
Просмотров: 1828
Последний ответ 08.10.2019, 16:48:57
от sakor
Как вывести картинку кнопки выбранного атрибута в корзине?

Автор apofisgold

Ответов: 38
Просмотров: 2172
Последний ответ 16.12.2018, 13:14:04
от lexxbry