Новости Joomla

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

voland

  • Легенда
  • 11030
  • 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

  • Легенда
  • 11030
  • 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

  • Легенда
  • 11030
  • 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

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

voland

  • Легенда
  • 11030
  • 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

  • Легенда
  • 11030
  • 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

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

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

voland

  • Легенда
  • 11030
  • 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
Просмотров: 906
Последний ответ 05.05.2023, 13:03:22
от kit2m2
Свободный атрибут в корзине

Автор anny_k

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

Автор Ariadna

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

Автор sakor

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

Автор apofisgold

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