Володя

Володя

С нами с 18 декабря 2012; Место в рейтинге пользователей: #4
Володя
15 сентября 2016, 17:07
0
тогда можно указать выбранный город при вызове сниппета
[[!+gl.selected.city.name_ru]]
Володя
15 сентября 2016, 17:04
0
конкретно эта старая версия да, совместима, но в репозитории она уже отключена.
Если же говорите в целом о пакете — то актуальная версия работает только со свежим miniShop2 и вам нужно будет обновиться.
Володя
13 сентября 2016, 18:50
0
класс UserFile у превью файлов, помему вы что то напутали.
Володя
13 сентября 2016, 08:15
0
а поподробнее можно?
Володя
12 сентября 2016, 13:52
0
А как можно обработать закрытие окна?
на событие закрытия отправить например
gl.location.select({action:'select',id:1,class:'glCity'})
Володя
12 сентября 2016, 13:14
0
Задайте параметр modalShow = 0 тогда окно не будет всплывать.
Или обработайте закрытие окна и например установите значение по дефолту.
Володя
12 сентября 2016, 11:10
0
опции продукта
Улучшена работа с опциями продукта. Нет необходимости как прежде сначала создавать опции, а затем переключаться на модификации. Доступно создание/ удаление опций продукта напрямую из модификации.
Володя
11 сентября 2016, 12:58
0
попробуй вот так
$rid = 135;
	// массив с добавляемыми опциями
	$values = array('color' => array('синий','белый');

	/** @var $product msProduct */
        if (!$product = $modx->getObject('msProduct', $rid)) {
            return $options;
        }
        $options = $product->loadData()->get('options');

        foreach ($values as $k => $v) {
            if (!is_array($v)) {
                $v = array($v);
            }
            if (isset($options[$k])) {
                $options[$k] = array_merge($options[$k], $v);
            }
            else {
                $options[$k] = $v;
            }
        }

        foreach ($options as $k => $v) {
            if (is_array($v)) {
                $options[$k] = array_map('trim', $options[$k]);
                $options[$k] = array_keys(array_flip($options[$k]));
                $options[$k] = array_filter($options[$k]);
            }
            else {
                $options[$k] = trim($options[$k]);
            }
            $product->set($k, $options[$k]);
        }
        $product->set('options', $options);
        $product->save();
Володя
09 сентября 2016, 08:43
0
ставите modstore.pro/packages/ecommerce/discontrol
заводите скидку

Скидку можно задать отрицательную и будет прибавка.
Володя
06 сентября 2016, 22:31
+1
после скрытого инпута с name=«options»
это да, иначе вы массив опций затираете.
Вам спасибо
Пожалуйста, ну благодаря вам теперь доработал совместимость с mFilter. Теперь все работает из коробки, также автоматом выставляет опции в зависимости от фильтра.
пример живет до завтра тут — s6514.h5.modhost.pro/index.php?id=4&msoption|color=%D1%81%D0%B8%D0%BD%D0%B8%D0%B9
Володя
06 сентября 2016, 22:11
0
Я не говорю что ктото не прав, просто вы спрашиваете а деталей не сообщаете, вот оказывается там mFilter, естественно нужно как то обработать подгрузку товаров при смене фильтров.
Сейчас посмотрю…
Володя
06 сентября 2016, 14:40
0
и по какому признаку тогда будут отличаться модификации? Сейчас это уникальные для каждой модификации опции…
Володя
06 сентября 2016, 14:17
0
спасибо, примерно так)
дело в том что этот функционал был в ранней версии msQuickView, пилил для какого то магазина, в дальнейшем никто про это вообще не спрашивал, за исключением этого вопроса тут. Смысл поддерживать функционал который не нужен? В QuickView его нет.
Володя
06 сентября 2016, 14:13
2
0
можно было просто задействовать механизм создания/ обновления через процессоры…

вот так можно как вы хотели
// получаем продукт
$product = $modx->getObject('msProduct', array(
  'id' => 135
));

// получаем его опции
$options = $product->loadData()->get('options');

// добавляем какие то свои, например цвет
$options['color'][] = 'серобармалиновый';
$options['color'][] = 'серобармалиновый2';
$options['color'][] = 'синий';

// устанавливаем значения
foreach ($options as $k => $v) {
    if (is_array($v)) {
        $v = array_unique($v);
    }
    $product->set($k, $v);
}

// сохраняем изменения
$product->save();
Володя
06 сентября 2016, 13:37
0
логично что для установки нескольких значений нужен массив этих значений, смотрите что у вас присваивается в скрипте.
Володя
06 сентября 2016, 13:33
+1
я не вижу тут проблемы.
Если бы изначально функционал смены опций в корзине существовал и данный компонент его не поддерживал — вот это бы была проблема. А так это только ваша хотелка…
Володя
06 сентября 2016, 11:42
+1
добавил картинку модификации.



рабочий пример тут s6200.h3.modhost.pro/index.php?id=136
Володя
06 сентября 2016, 09:10
0
аналогично странице продукта.
Спрашивайте конкретнее что неясно.