2 цены для товара miniShop2
Здравствуйте. Возникла необходимость иметь для товара 2 цены розничную и оптовую. Для себя решил price — розничная, old_price — оптовая. Нужно при добавлении товара в корзину или изменении количества в корзине контролировать количество товара, и если количество например больше 100 штук значит оптовая цена, иначе розничная и соответственно пересчитывать корзину. Я так понял надо писать плагины на события добавление товара в корзину и изменение товара в корзине и уже там подставлять нужную цену. Как лучше и проще это организовать в общих чертах? Может кто уже делал такое? Спасибо
Комментарии: 29
Ну нет, лучше прочитать публикации здесь bezumkin.ru/modx/minishop2/classes/, особенно 2 последние
немного сложновато для первого раза, но зато можно все сделать.
немного сложновато для первого раза, но зато можно все сделать.
Все решил, все работает. Осталось только узнать как в js-скрипте динамично обновлять плейсхолдер [[+price]] для определенного товара в корзине при изменении количества, а то он обновляется только при обновлении страницы.
Сергей, а как вы решили проблему? У меня аналогичная ситуация
Артём, вы решили аналогичную ситуацию?
Tim Yusupov, Артём решил аналогичную ситуацию?
on.change при для нажатия на +- в корзине, + on.click на класс кнопок, добавляющих товар в корзину, а дальше — по id корзины проверять для каждой строки товара выполнение условия, и, если выполняется, ставить цену 2, а если нет — цену 1.
Чтобы не извращаться с поиском «новой цены», можно где-нибудь в невидимом блоке в корзине рядом с основной ценой ставить доп. цену и свитчить их при выполнении условия.
Ну и + все дополнительные места, которые могут повлиять на кол-во товаров, тоже зацепить скриптом.
Чтобы не извращаться с поиском «новой цены», можно где-нибудь в невидимом блоке в корзине рядом с основной ценой ставить доп. цену и свитчить их при выполнении условия.
Ну и + все дополнительные места, которые могут повлиять на кол-во товаров, тоже зацепить скриптом.
Ну проблему с ценой не решил, задолбался копатся во всех этих внутренностях. Думаю это мой последний магазин на MODx.
Думаю мой тоже. Ипал я такую поддержку «кому надо, тот найдёт» Какая то гнида установила заказчику сборку MODx Revo+minishop2… Я ЗАДОЛБАЛСЯ уже с этим убожеством под названием магазин! Но больше всего меня бесят эти ушлепочные ответы в виде ссылки на говномануал этого убогого магазина. Если ты кусок ушлепка знаешь как исправить ситуацию ТАК ПОЧЕМУ МАТЬ твою ты не можешь помочь людям? Они что тебя спрашивают, как 2+2 сложить? Им реально нужна помощь и из-за одной строчки кода лопатить весь твой говнокод это извращение чистой воды! Я надеюсь скоро этот сволочной проект загнется нахер, так как аффтар не потрудился даже грамотно написать, как добавить дополнительные поля к товару… для этого нужно ска овладеть профессиональным танцем с бубном, не меньше. А это вообще элементарно должно быть.
<?php
if($modx->event->name != 'msOnGetProductPrice') return;
if($modx->user && $modx->user->isMember('Wholesaler')){
$values = & $modx->event->returnedValues;
$resource = $modx->getObject('msProduct', $product->id);
$wholesale_price = $resource->getTVValue('price_opt');
if($wholesale_price){
$values['old_price'] = $values['price'];
$values['price'] = $wholesale_price;
}
}
Элементарная оптовая цена для юзеров в группе «оптовик», сделаная через tv, 3 минуты работы. Очень сложно?Важное качество программиста «гуглить», а не просить сделать других его работу. Не умеете — не беритесь.
Бесплатно всем людям помогать надо?
Только за деньги всем помогать надо?
Смотря что хочет человек. Помощь словом, куда смотреть и где копать — бесплатно, написать готовое решение под его нужду, что бы он сдал проект — платно. Человек выше явно взял проект, хочет на нем заработать, «просит» (требует) что бы ему все сделали а он получил деньги. Это не правильно в моем понимании, чем могу тем помогаю, но кодить чужие проекты за «спасибо» и то не всегда как-то не комильфо.
Странно, в документации miniShop2 ничего нет о нем самом. Я так думаю, что системных событий, для подключения плагина тоже нет, если были бы, то можно было бы подключиться к событию добавления товара в корзину и взаимодействовать с массивом данных. Как мне это представляется.
Или это глупости)?
Или это глупости)?
Вся документация по минишопу на сайте Василия.
Есть события для добавления товара, и для получения цены, и даже возможность расширить класс корзины и заменить в нём логику.
Кому нужно — найдёт.
Кому нужно — найдёт.
Да не, я разобрался как все функционирует, сделал как мне надо и все работает. Естественно что и документацию читал и решил что кастомизация класса корзины будет логичнее чем через плагины. Но динамично обновлять цену в плейсхолдере на сайте без переразгурзки страницы то надо копать javascript. А в этом я не очень разбираюсь.
Сергей, а вы не додумались как сделать динамическое обновление? а то у меня та же беда
Никак не додумался, надоело во всем этом разбираться :( куча времени уходит на полировку всего, не выгодно.
dapin, а вы додумались?)
Да, я сделал пока сделал проще, поставил банальное обновление страницы location.reload(); при пересчете корзины. Тут есть решение modx.pro/solutions/3942-dynamic-update-of-the-basic-basket/ но оно кривое и не все поля пересчитывает и я пока решил подождать. В ответ хочу спросить вы как то решили вот эту беду vk.cc/3usHFR ??
Спасибо за ссылку, видел уже её, попробую реализовать. По второму вопросу – решил использовать old_price, не придумал, как разделять тысячи.
беда… у меня то и поля свои и больше двух их(
Сергей как вы решили задачу, может поможете? не бесплатно!
Честно говоря с miniShop работаю только в крайнем случае, в очень крайнем. Как то я решил задачу, уже не помню, больше года прошло, заказчика устроило. Больше к этому вопросу не возвращался, но я посмотрю, тот сайт работает.
Ага, велосипед я тот сделал так.
Для категории товара создал tv переменную optCount — в которой количество товара после которого уже идет оптовая цена. Теперь для каждой категории я могу проставить количество которое уже считается оптовым.
Оптовую цену решил прописать в old_price.
Далее в core/components/minishop2/model/minishop2/mscarthandler.class.php в функциях add() и change() приделал маленький самокатик (например в функции add):
Вероятно оно все неправильно, надо все не так, если покопаться в исходниках минишопа можно сделать все правильно. Но у меня работает и заказчик не жаловался. Вот и все, дальше копаться не хотелось.
Для категории товара создал tv переменную optCount — в которой количество товара после которого уже идет оптовая цена. Теперь для каждой категории я могу проставить количество которое уже считается оптовым.
Оптовую цену решил прописать в old_price.
Далее в core/components/minishop2/model/minishop2/mscarthandler.class.php в функциях add() и change() приделал маленький самокатик (например в функции add):
$product1 = $modx->getObject('modResource',$id);
$optcount = $product1->getTVValue('optCount');
$price = $product->getPrice();
$old_price = $product1->get('old_price');
$weight = $product->getWeight();
$count = $response['data']['count'];
$options = $response['data']['options'];
if ($count >= $optcount && $old_price > 0) {
$price = $old_price;
}
Вероятно оно все неправильно, надо все не так, если покопаться в исходниках минишопа можно сделать все правильно. Но у меня работает и заказчик не жаловался. Вот и все, дальше копаться не хотелось.
ССЛЫКА НА СКРИН cloud.mail.ru/public/C8cs/j4Vvh5idi
(модх 2.5.1 и минишоп2 2.4.5-pl)
необходимо сделать возможность добавлять +% к текущей оптовой цене в ОБЩЕЙ СУММЕ ЗАКАЗА КОРЗИНЫ
например: цена оптовая в карточке 1000р если покупатель розничный и делает покупку БЕЗ РЕГИСТРАЦИИ например до 10.000р то к цене в ОБЩЕЙ СУММЕ ЗАКАЗА КОРЗИНЫ добавить +30% ЦЕНА:1300Р
если покупка от 10.000 до 30.000р то к оптовой цене +15%
если покупка выше 30.000р то цена в ОБЩЕЙ СУММЕ ЗАКАЗА КОРЗИНЫ СЧИТАЕТСЯ ПО ОПТОВЫМ ЦЕНАМ
В СПИСКЕ ТОВАРОВ КОРЗИНЫ ОСТАВЛЯЕМ ЦЕНЫ — ОПТОВЫЕ
КТО МОЖЕТ ПОМОЧЬ С РЕШЕНИЕМ, НЕ БЕСПЛАТНО?: )
(модх 2.5.1 и минишоп2 2.4.5-pl)
необходимо сделать возможность добавлять +% к текущей оптовой цене в ОБЩЕЙ СУММЕ ЗАКАЗА КОРЗИНЫ
например: цена оптовая в карточке 1000р если покупатель розничный и делает покупку БЕЗ РЕГИСТРАЦИИ например до 10.000р то к цене в ОБЩЕЙ СУММЕ ЗАКАЗА КОРЗИНЫ добавить +30% ЦЕНА:1300Р
если покупка от 10.000 до 30.000р то к оптовой цене +15%
если покупка выше 30.000р то цена в ОБЩЕЙ СУММЕ ЗАКАЗА КОРЗИНЫ СЧИТАЕТСЯ ПО ОПТОВЫМ ЦЕНАМ
В СПИСКЕ ТОВАРОВ КОРЗИНЫ ОСТАВЛЯЕМ ЦЕНЫ — ОПТОВЫЕ
КТО МОЖЕТ ПОМОЧЬ С РЕШЕНИЕМ, НЕ БЕСПЛАТНО?: )
Уткин просто устал на воле ходить.
Если продаешь приложение и обещаешь тех.поддержку, то обязан написать, что она платная.
Если не написал-то извини, дружище, это нарушение Закона. Начиная от двойного ценообразования и заканчивая признаками мошенничества.
И никого не будет волновать, что у тебя нет времени.
Если продаешь приложение и обещаешь тех.поддержку, то обязан написать, что она платная.
Если не написал-то извини, дружище, это нарушение Закона. Начиная от двойного ценообразования и заканчивая признаками мошенничества.
И никого не будет волновать, что у тебя нет времени.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.