Алексей
А если попробовать указать цену строкой, а не цыфрой?
Anton
по-всякому пробовал.
Алексей
Минишоп и модыкс последних версий?
Anton
ща
Anton
у меня такой кусок кода:
foreach($data['items'] as $item) {
$miniShop2->cart->add($item['id'],$item['count']);
}
$res = print_r($miniShop2->cart->get());
Может там что-то кешируется и cart->get() выдаёт не те данные? Просто странно, если сделать вывод в лог внутри плагина, то там цена обновлённая, а когда cart->get делаешь, то нифига. Хотя сейчас попробовал заказ сделать, в заказ приходит оригинальная цена.
Алексей
Зачем форейч?
Алексей
Опишите что хотите в результате?
Anton
ну я в корзину добавляю кучу товаров и надо чтоб у них при добавлении цена умножалась на нужный коэффициент.
Anton
если сделать так: $product->set('price', '23');
$modx->log(MODX_LOG_LEVEL_ERROR, $product->get('price')); то в лог попадает 23, но после этого cart->get() отдаёт старые цены
iWatchYouFromAfar
$price = $product->get('price');
$price = $price * 2;
$product->set('price', $price);
iWatchYouFromAfar
события msOnAddToCart и msOnChangeInCart
Anton
Anton
полный код плагина такой: <?php
if (($modx->event->name == 'msOnBeforeAddToCart') && $modx->resource->id == 10) {
$price = $product->get('price');
$price = $price * 0.8;
$product->set('price', $price);
$modx->log(MODX_LOG_LEVEL_ERROR, $product->get('price'));
}
Pavel
Ребята! Подскажите пожалуйста. вывожу список товаров на Главной через msProducts и есть 2 TV и почему-то на одних товарах значения этих TV встают куда надо а на других нет. Значения есть у всех товаров
iWatchYouFromAfar
говорю, в лог выводится как надо, а в корзину не попадает изменённая цена
<?php
switch($modx->event->name) {
case 'msOnAddToCart':
case 'msOnChangeInCart':
$tmp = $cart->get();
$product = $modx->getObject('msProduct', $tmp[$key]['id']);
$price = $product->get('price');
$price = $price * 2;
$newprice = $product->set('price', $price);
$tmp[$key]['price'] = $newprice;
$cart->set($tmp);
break;
}
iWatchYouFromAfar
пробуй
Алексей
В документации написано:
case 'msOnBeforeAddToCart':
$product->set('new_price', 5555);
break;
Алексей
те нужно в новой версии по другому менять цену
Алексей
поэтому ничего не выходит
Алексей
https://docs.modx.pro/komponentyi/minishop2/razrabotka/sluzhbyi/korzina
Aleks
а почему бы не в корзине уже проверить цену каждого товара и уумножить ее на коээфецент
Anton
нифига
Anton
я пробовал new_price уже делать.
Алексей
Anton
сразу сделал как в доках и ничего не произошло.
Алексей
http://joxi.ru/Dr8y0JbfoDMMVm
Anton
конечно
Anton
плагин срабатывает, в лог пишет как надо всё, но в корзину это не попадает
Anton
я хз как это вообще может быть.
Алексей
и плагин активен?
Может есть еще какой плагин?...
Алексей
Версия минишопа и модыкса последние?
iWatchYouFromAfar
Anton
не работает.
Aleks
foreach($tmp as $key1 => $value) // перебираем содержимое корзины
{
$res = $modx->getObject('msProduct',$tmp[$key1][id]);
$oldprice = $res->get('price'); // вычисляем обычную цену
$parent_id = $res->get('parent'); // вычисляем id родителя товара
$tmp[$key1][price]=$oldprice * 0.8; // применяем максимальную скидку
};
$cart->set($tmp);
Anton
всё последнее. Должно работать, но нифига
Aleks
$tmp = $cart->get();
Aleks
только перед этим
Aleks
событие изменение корзины
iWatchYouFromAfar
Aleks
iWatchYouFromAfar
Pavel
опишите подробнее куда что встает. :)
На Главной есть блок где выводятся несколько последних товаров из нескольких категорий. Для вывода непосредственно товаров я использую msProducts. У каждого товара есть ссылка на картинку и партнерская ссылка.Так вот почему-то некоторые элементы содержат и то и то а некоторые нет. Сразу скажу что и ссылки на фотографии и партнерские ссылки есть у каждого товара.
iWatchYouFromAfar
Алексей
Anton
не товара, а ресурса, это в личном кабинете всё происходит. Но дело не в проверке, говорю же, если поставить логгирование внутри плагина, оно отрабатывает.
Артем
Aleks
а может просто какой нить плагин мешает другой, который тоже с ценами работает, или с модификациями
Aleks
?
Алексей
Anton
http://joxi.ru/n2Y3a7YtbGXERr - добавление в корзину,
http://joxi.ru/L21Pze3CRG5Kbm - код плагина.
http://joxi.ru/MAj4oVRCjRnMRm то, что возвращает cart->get()
http://joxi.ru/82Q6Q3WtwDYnbA - то, что в логе модх оказывается
Алексей
а че за добаление в корзину? нафига оно?
Anton
я корзину сам формирую в сниппете
Anton
в личном кабинете пользователь может себе составить заказ со сниженными ценами
Алексей
те у тебя происходит добаление нескольких товаров? ага.... вот теперь понятно...
Anton
?
iWatchYouFromAfar
iWatchYouFromAfar
у меня иногда просто нет не матерных слов, а правила нарушать не хочется
Алексей
у тебя в корзину праильно кол-во добавляется?
Anton
да
Anton
на третьем скрине видно, что количество добавлено разное и оно такое, как надо.
Алексей
смотри прикол. у тебя происходит проверка н ID... но добавляемые товары не пройдут проверку т.к. физически ты на другом ID..
Попробуй цбрать проверку на ID
Алексей
http://joxi.ru/krDlZYdhKd4gzr
Anton
айди - это айди страницы на которой совершается заказ
Алексей
именно
Anton
т.е. личный кабинет, чтоб в обычной корзине это не работало
Алексей
а товары имеют ID другие
Алексей
не правильно проверку делаешь
Anton
так $modx->resource->id в плагине разве айди товара будет выдавать?
Алексей
будет текущая... страница...
Anton
плагин же срабатывает, раз в лог значения попадают?
Алексей
а событие изменени цены - для товаров...
Anton
чёт я не врубаю. Заказ оформлятеся на странице 10, и я проверяю в плагине, если страница 10, то плагин обрабатывает цены, если нет, то нет, или это не так работает?
Алексей
сделай так:
условие проверки страницы первым, а потом внутри этого условия событие проверь.
Алексей
хотя и так наверное не сработает...
Anton
не, это ничего не меняет.
Алексей
блин... ща подумаю