[msOptionsPrice2] - Модификации продукта.


[msOptionsPrice2] — Новая версия с модификациями продукта. Кардинально отличается от предыдущей, просто обновиться не получится.

В целом компонент так же работает с опциями продукта, но теперь опции привязаны к модификации продукта. Так же модификации можно задать свой артикул, вес, кол-во и конечно стоимость. Доступны все опции продукта.



Заранее приношу свои извинения за невозможность апгрейда со старой версии.


Модификации продукта
На странице продукта доступна одноименная вкладка (настройка msoptionsprice_working_templates, в ней перечислить id необходимых шаблонов). Можно создать/изменить модификации продукта.



Для модификации доступны все опции продукта.



Сниппет msOptionsPrice.initialize
Предназначен для подключения стилей и скриптов на фронте сайта.
Достаточно вызвать сниппет в шаблоне продукта.

[[!msOptionsPrice.initialize?]]
Дефолтный скрипт отслеживает изменение формы продукта и подгружает данные о модификации.
Для работы скрипта необходимо добавить необходимые классы, пример чанка продукта — gist.github.com/vgrish/b6998560c6a64c0f34109a9e632b9b56

форма продукта — msoptionsprice-product
стоимость продукта — msoptionsprice-cost msoptionsprice-[[*id]]
артикул продукта — msoptionsprice-article msoptionsprice-[[*id]]
вес продукта — msoptionsprice-weight msoptionsprice-[[*id]]

Сниппет msOptionsPrice.modification
Предназначен для вывода модификаций продукта. Часто требуется отдельно вывести информацию о различных модификациях продукта, теперь это достаточно просто сделать. Нужно вызвать сниппет

[[!msOptionsPrice.modification?]]


Картинка модификации
Можно добавить картинку модификации продукта. Доступны изображения из галереи продукта.

В чанк галереи необходимо добавить идентификаторы
data-rid="{$file['product_id']}" data-iid="{$file['id']}"
пример чанка gist.github.com/vgrish/e5c7e541b33eefc4b7c0cb68ec389096
дофолтный скрипт работает с галереей fotorama.

Обработка старой цены продукта
В случае с модификациями продукта, разница может быть очень значительна и практически всегда ее сумма выглядит нелогично. Поэтому была добавлена обработка старой цены продукта.
Логика расчета очень простая
цена продукта   старая цена продукта
----------------------------------------- =             -----------------------------------------
цена модификации продукта   старая цена модификации продукта

(цена продукта / старая цена продукта = цена модификации продукта / старая цена модификации продукта)
Достаточно проставить старую цену в основное поле продукта и старая стоимость модификации будет автоматически рассчитана.

Для смены на фронте нужно добавить необходимые классы. Пример чанка продукта тут gist.github.com/vgrish/b6998560c6a64c0f34109a9e632b9b56#file-gistfile1-txt-L22

В сниппете msOptionsPrice.modification поле так же доступно поле old_price.

Копия модификации
Добавлен процессор на копирование модификации.


превью в корзине
Для вывода превью модификации в корзине магазина можно использовать следующую конструкцию.
gist.github.com/vgrish/3748714377be39401799e3908efd8a59#file-mscart-tpl-L22-L35

опции продукта
Улучшена работа с опциями продукта. Нет необходимости как прежде сначала создавать опции, а затем переключаться на модификации. Доступно создание/ удаление опций продукта напрямую из модификации.

В целом это пока вся информация, в репозитории будут доступны обе версии сразу. Новую можно будет установить только на чистую систему, где прежде не было старой версии.
В новой версии нет пока никакой работы с остатками, все это будет после хотя бы небольшой обкатки компонента.

Не пытайтесь обновиться!!! Если не уверены что оно вам нужно.

ps. Всем спасибо за внимание. Новая версия совместима с пакетом скидок Discontrol

Пример работы: s6200.h3.modhost.pro/katalog/tovar1.html
03 сентября 2016, 13:18    Володя   G+  
8    3049 +8

Комментарии (236)

  1. Ilya Ev 05 сентября 2016, 15:07 # +1
    а картинку прикрепить к модификации есть возможность? Очень часто такое необходимо
    1. Володя 05 сентября 2016, 16:23 # +1
      да, думаю можно сделать… будет время посмотрю.
      1. Ilya Ev 05 сентября 2016, 17:04 # +1
        Было бы здорово, пойду куплю на вырост)
        1. Володя 06 сентября 2016, 11:42 # +1
          добавил картинку модификации.



          рабочий пример тут s6200.h3.modhost.pro/index.php?id=136
          1. Евгений Webinmd 06 сентября 2016, 14:34 # 0
            А можно как-то сделать чтобы создание данных для модификаций было не обязательным, чтобы можно было указать только Картинка + цена ??
            1. Володя 06 сентября 2016, 14:40 # 0
              и по какому признаку тогда будут отличаться модификации? Сейчас это уникальные для каждой модификации опции…
              1. Евгений Webinmd 06 сентября 2016, 14:45 # 0
                Логично, спасибо
            2. Евгений Webinmd 07 сентября 2016, 11:52 # +1
              в мозиле на демке не работает и в консоль выдает ошибку на строку 120
              var formData = new FormData($(form)[0]);
              TypeError: Argument 1 of FormData.constructor does not implement interface HTMLFormElement.

              если эту строку заменить на ту что ниже, то вроде как работает, но не знаю уже как будет с несколькими формами на странице
              var formData = new FormData(); 
              1. Володя 07 сентября 2016, 13:40 # 0
                спасибо, попрввил.
      2. Евгений Webinmd 05 сентября 2016, 17:30 # 0
        картинка было бы здорово
        1. Виктор Долгий 05 сентября 2016, 20:59 # 0
          В списке товаров использовать можно? Или только старую модификацию?
          1. Володя 05 сентября 2016, 23:39 # 0
            да, можно.
            1. Виктор Долгий 06 сентября 2016, 01:33 # 0
              как?
              1. Володя 06 сентября 2016, 09:10 # 0
                аналогично странице продукта.
                Спрашивайте конкретнее что неясно.
                1. Виктор Долгий 06 сентября 2016, 18:04 # 0
                  Есть список товаров, выводимый miniShop через mFilter, стандартно. Инициализирую до mFilter msOptionsPrice.initialize. В плитке товаров выставляю класс формы msoptionsprice-product, класс ценника msoptionsprice-cost msoptionsprice-[[+id]], в самом товаре создаю два цвета, каждому в «Модификациях» задаю цену (=) и выбираю цвет. И вот, плитка товаров, выбираю цвет, выводимый msOptions в товаре, и ничего не происходит)) Ни в логах браузера, ни в логах MODx ничего нет. Видно, что при выборе цвета в браузере в консоли, промаргивает поле с ценой, но она не меняется абсолютно. Где я не прав?
                  1. Володя 06 сентября 2016, 22:11 # 0
                    Я не говорю что ктото не прав, просто вы спрашиваете а деталей не сообщаете, вот оказывается там mFilter, естественно нужно как то обработать подгрузку товаров при смене фильтров.
                    Сейчас посмотрю…
                    1. Виктор Долгий 06 сентября 2016, 22:21 # +1
                      Всё, заработало. Я не особо лазил в код, но фишка оказалось в том, что в форме продукта в плитке с классами .ms2_form.msoptionsprice-product вызов сниппета [[!msOptions]] должен стоять после скрытого инпута с name=«options». Ну, в принципе логично, но иногда тупикуешь из-за таких мелочей. Вам спасибо, прикуплю еще на один сайт дополнение ;)
                      1. Володя 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
                        1. Виктор Долгий 06 сентября 2016, 22:38 # 0
                          Вот это круто!) Еще раз спасибо!
                          1. Виктор Долгий 14 июня 2017, 16:20 # 0
                            Приветствую. Проясните ситуацию о выставлении опций, в зависимости от фильтров, не совсем понятно.
                            1. Володя 14 июня 2017, 18:29 # 0
                              Привет.
                              При условии что каталог продуктов выводится через mFilter, а в карточке товара присутствуют опции при смене опций в mFilter будут выставлены соответсвующие опции в карточке товара. Так же если подключен и скрипт msOptionsPrice2 будет изменена и стоимость продукта если такое модификации продукта существуют.
                              1. Виктор Долгий 14 июня 2017, 18:34 # 0
                                Как ни пробую, ничего не выходит со сменой. Все последней версии. Немного порылся, на этапе msOptionsPrice.Tools.setOptionValue, на последнем if затык в .js… jQuery 2.2.4
                                1. Виктор Долгий 14 июня 2017, 18:35 # 0
                                  Есть тест где-то?
                                  1. Володя 14 июня 2017, 18:38 # 0
                                    нет
                                    1. Володя 14 июня 2017, 18:39 # 0
                                      скинь в ТП доступ к админке и ссылку на чанк и страницу вывода, посмотрю что и как.
                                      Спасибо!
                                      1. Виктор Долгий 14 июня 2017, 18:42 # 0
                                        Пару минут.
                                        1. Виктор Долгий 14 июня 2017, 18:48 # 0
                                          Отправил в личку через ТП, через задать вопрос не могу, больше года покупке…
                                          1. Виктор Долгий 15 июня 2017, 18:20 # 0
                                            Вопрос решен! Спасибо!
                                            1. Володя 15 июня 2017, 18:30 # 0
                                              пожалуйста!
                                    2. Виктор Долгий 06 сентября 2016, 22:06 # 0
                                      На странице товара всё отлично работает.
                              2. Евгений Webinmd 07 сентября 2016, 12:32 # 0
                                Я понимаю что малость утомил, но есть небольшой вопрос. Этот плагин будет работать с другими плагинами влияющими на модификацию цены?
                                я к тому, что я получаю в своём плагине цену так:
                                $values = & $modx->event->returnedValues;
                                и дальше уже работаю с
                                $values['price']
                                А вот у тебя в плагине как получает?
                                можно ли будет сперва использовать один модификатор цены(твой плагин) и потом еще один поверх первого.
                                У нас в проекте просто идет зависимость цены еще и от города. и надо чтобы бралась цена что в поле или та что в msOptionsPrice и потом еще умножалась на коофициент.
                                1. Володя 12 сентября 2016, 11:10 # 0
                                  опции продукта
                                  Улучшена работа с опциями продукта. Нет необходимости как прежде сначала создавать опции, а затем переключаться на модификации. Доступно создание/ удаление опций продукта напрямую из модификации.
                                  1. Андрей 21 сентября 2016, 17:15 # 0
                                    Как добавить модификацию через процессор?

                                    У товара нет никаких модификаций.

                                    Пишу так, выводит ошибку о том что поле price должно быть уникально
                                    $modification_data = array(
                                      'rid' => 45019,
                                      'type' => 1,
                                      'price' => $good_price,
                                      'article' => $good_article,
                                      'weight' => '',
                                      'count' => 0,
                                      'active' => 1
                                    );
                                    
                                    $response = $modx->runProcessor('modification/create', $modification_data, array(
                                      'processors_path' => MODX_CORE_PATH.'components/msoptionsprice/processors/mgr/'
                                    ));
                                    
                                    if ($response->isError()) {
                                      print_r($response->getResponse());
                                    }
                                    

                                    Сама ошибка
                                    Array
                                    (
                                        [success] => 
                                        [message] => 
                                        [total] => 1
                                        [errors] => Array
                                            (
                                                [0] => Array
                                                    (
                                                        [id] => price
                                                        [msg] => Это поле должно быть уникально
                                                    )
                                    
                                            )
                                    
                                        [object] => Array
                                            (
                                            )
                                    
                                    )
                                    
                                    1. Володя 21 сентября 2016, 21:15 # 0
                                      модификацию нельзя создать без опций. Ваш код верен, нужно только прежде создать опции.

                                      $rid = 3;
                                      $mid = 0;
                                      $price = 100;
                                      $article = '2312';
                                      /* опции модификации */
                                      $options = array(
                                          'color' => 'белый',
                                          'size' => '100'
                                      );
                                      
                                      /* создаем опции продукта */
                                      $options = $msoptionsprice->setProductOptions($rid, $options);
                                      /* создаем опции модификации */
                                      $modx->call('msopModificationOption', 'saveOptions',array(&$modx, $mid, $rid, $options));
                                      
                                      /* создаем модификацию */
                                      $modification = array(
                                        'rid' => $rid,
                                        'type' => 1,
                                        'price' => $price,
                                        'article' => $article,
                                        'weight' => '',
                                        'count' => 0,
                                        'active' => 1
                                      );
                                      
                                      $response = $modx->runProcessor('modification/create', $modification, array(
                                        'processors_path' => MODX_CORE_PATH.'components/msoptionsprice/processors/mgr/'
                                      ));
                                      
                                      if ($response->isError()) {
                                        print_r($response->getResponse());
                                      }
                                      
                                      1. Андрей 21 сентября 2016, 21:38 # 0
                                        Что-то не работает, выдает ошибку

                                        Uncaught TypeError: Argument 4 passed to msopModificationOption::saveOptions() must be of the type array, null given
                                        

                                        Добавил
                                        $corePath = $modx->getOption('msoptionsprice_core_path', null, $modx->getOption('core_path', null, MODX_CORE_PATH) . 'components/msoptionsprice/');
                                        $msoptionsprice = $modx->getService('msoptionsprice', 'msoptionsprice', $corePath . 'model/msoptionsprice/', array('core_path' => $corePath));
                                        


                                        я так понимаю ругается на $options в строке
                                        $modx->call('msopModificationOption', 'saveOptions', array(&$modx, $mid, $rid, $options));
                                        
                                        1. Володя 21 сентября 2016, 21:53 # 0
                                          TypeError: Argument 4 passed to msopModificationOption::saveOptions() must be of the type array, null given
                                          ну он пишет что вместо массива вы передали null.
                                          Либо у вас options пустой или возможно ошиблись с id продукта и опции не установились.
                                          1. web3 15 сентября 2017, 08:38 # 0
                                            Добрый день, попытался добавить опции товара по инструкции выше и что-то пошло не так. Создается модификация, но у нее нет свойств. Пытаюсь добавить еще одну вручную, а у нее уже есть 2 опции и другие выбрать не могу, удаляю одну из модификации и на ее месте появляется новое(такое же свойство) но с другим значением…
                                             $rid =  $array[id];
                                                $mid=intval(addslashes((string)$xml->Штрихкод));
                                             
                                                $count=intval(addslashes((string)$xml->Количество));
                                                $article = $mid;
                                                /* опции модификации */
                                                $options = array(
                                                    'color' =>  $color,
                                                    'size' => $size
                                                );
                                                $corePath = $modx->getOption('msoptionsprice_core_path', null, $modx->getOption('core_path', null, MODX_CORE_PATH) . 'components/msoptionsprice/');
                                                $msoptionsprice = $modx->getService('msoptionsprice', 'msoptionsprice', $corePath . 'model/msoptionsprice/', array('core_path' => $corePath));
                                                /* создаем опции продукта */
                                                $options = $msoptionsprice->setProductOptions($rid, $options);
                                                /* создаем опции модификации */
                                                $modx->call('msopModificationOption', 'saveOptions',array(&$modx, $mid, $rid, $options));
                                                
                                                /* создаем модификацию */
                                                if((isset($old_price))&&($old_price!=NULL)){
                                                    $modification = array(
                                                      'rid' => $rid,
                                                      'type' => 1,
                                                      'price' => $price,
                                                      'old_price' => $old_price,
                                                      'article' => $article,
                                                      'weight' => '',
                                                      'count' => $count,
                                                      'active' => 1
                                                    );
                                                }
                                                else{
                                                     $modification = array(
                                                      'rid' => $rid,
                                                      'type' => 1,
                                                      'price' => $price,
                                                      'article' => $article,
                                                      'weight' => '',
                                                      'count' => $count,
                                                      'active' => 1
                                                    );   
                                                }
                                                
                                                
                                                $response = $modx->runProcessor('modification/create', $modification, array(
                                                  'processors_path' => MODX_CORE_PATH.'components/msoptionsprice/processors/mgr/'
                                                ));
                                                
                                                if ($response->isError()) {
                                                  
                                            В итоге в консоле пишет что цена должна быть уникальной…
                                            Array
                                            (
                                                [success] => 
                                                [message] => 
                                                [total] => 1
                                                [errors] => Array
                                                    (
                                                        [0] => Array
                                                            (
                                                                [id] => price
                                                                [msg] => Это поле должно быть уникально
                                                            )
                                            
                                                    )
                                            
                                                [object] => Array
                                                    (
                                                    )
                                            
                                            )
                                            Да вообще все сломалось и не получается создать модификацию)
                                            1. Володя 15 сентября 2017, 09:20 # 0
                                              вот тема по импорту, посмотрите и сделайте аналогично.
                                              1. web3 15 сентября 2017, 09:36 # 0
                                                Сделал аналогично, не сработало. И ничего не написало.
                                                 if(isset($array['Obhvat'])){
                                                            $size=$array['Razmer']."/".$array['Obhvat'];
                                                        }
                                                        else{
                                                            $size=$array['Razmer'];
                                                        }
                                                    if(isset($array['Cvet'])){
                                                            $color=$array['Cvet'];
                                                        }
                                                    
                                                    if(isset($array[prices]["f282d7ca-2726-11e3-a84f-0002a54e8623"])){
                                                        $price = $array[prices]["f282d7ca-2726-11e3-a84f-0002a54e8623"];
                                                        $old_price =  $array[prices]["f282d7c9-2726-11e3-a84f-0002a54e8623"];
                                                    }
                                                    else{
                                                        $price =  $array[prices]["f282d7c9-2726-11e3-a84f-0002a54e8623"];
                                                    }
                                                    $rid =  $array[id];
                                                    $mid=intval(addslashes((string)$xml->Штрихкод));
                                                 
                                                    $count=intval(addslashes((string)$xml->Количество));
                                                    $article = $mid;
                                                    /* опции модификации */
                                                    $options = array(
                                                        'color' =>  $color,
                                                        'size' => $size
                                                    );
                                                    $msoptionsprice = $modx->getService('msoptionsprice');
                                                    $msoptionsprice->initialize('web');
                                                    /* создаем опции продукта */
                                                    //$options = $msoptionsprice->setProductOptions($rid, $options);
                                                   
                                                    
                                                    /* создаем модификацию */
                                                    if((isset($old_price))&&($old_price!=NULL)){
                                                        $modification = array(
                                                         
                                                          'price' => $price,
                                                          'old_price' => $old_price,
                                                          'article' => $article,
                                                          'weight' => '',
                                                          'count' => $count,
                                                          'options' => array(
                                                            'color' =>  $color,
                                                            'size' => $size
                                                            )
                                                        );
                                                    }
                                                    else{
                                                         $modification = array(
                                                          'price' => $price,
                                                          'article' => $article,
                                                          'weight' => '',
                                                          'count' => $count,
                                                          'options' => array(
                                                            'color' =>  $color,
                                                            'size' => $size
                                                            )
                                                        );   
                                                    }
                                                    
                                                     /* создаем опции модификации */
                                                    $modification = $modx->call('msopModification', 'saveProductModification', array(&$modx, $rid, $modification));
                                                    
                                                1. Володя 15 сентября 2017, 09:56 # 0
                                                  давай ты сначала попробуешь сделать то что описано в статье сверху, проверишь работает ли оно, затем внесешь изменения согласно своим пожеланиям и если оно не будет работать самостоятельно выяснишь где что не так и тогда уже напишешь?
                                                  У меня нет ни желания ни времени погружаться в хитросплетения твоего кода…
                                                  Спасибо!
                                    2. Виктор Долгий 29 сентября 2016, 16:25 # 0
                                      А есть ли способ заставить меняться картинки с опциями в списке (плитке) товаров?
                                      1. Володя 29 сентября 2016, 16:51 # +1
                                        дефолтный скрипт работает с галереей fotorama, если вы по аналогии добавите его на страницу категории, думаю все так же будет рабоотать.
                                        Либо модифируйте скрипт под свой случай, в модификации указан идентификатор картинки.

                                        ps. можно написать плагин на событие msopOnAfterGetModification и получить url изображения.
                                        1. Виктор Долгий 29 сентября 2016, 17:02 # 0
                                          Спасибо! Да, через плагин, думаю, быстрее будет.
                                      2. Юрий Татаркин 07 октября 2016, 17:16 # 0
                                        Добрый день. Имеем 10 размеров и 2 варианта цвета.

                                        Создаем модификации

                                        1. Размер 6 цвет красный, размер 6 цвет синий. — все ок.
                                        2. Размер 8 цвет красный. — Не создает, говорит, что картинку надо уникальную.

                                        Я что то не так делаю или все же это лишняя проверка? Зачем 8 одинаковых фото для 8 размеров?

                                        1. Володя 08 октября 2016, 15:30 # 0
                                          Добрый день.
                                          Картинка в модификации должна быть уникальна, иначе как по картинке потом определить модификацию?
                                          Поясните что в модификации влияет на стоиомсть…
                                          Возможно вам просто создать модификации под цвет без учета размера, а только по цвету…
                                          1. Юрий Татаркин 09 октября 2016, 13:18 # 0
                                            Сферический пример в вакууме:

                                            Айфон память 64 — 128 — 256. Цвета белый, черный, со стразами. При прочих равных, телефон со стразами всегда дороже чем белый или черный. А черный дороже белого, но дешевле того что со стразами. Внешне телефоны с разным объемом памяти не отличаются. То есть фото 3, комбинаций 9. По 3 комбинации на каждое фото. Грузить в галерею 9 отдельных фото не имеет смысла.

                                            у меня ситуация аналогична.
                                            1. Володя 10 октября 2016, 09:37 # 0
                                              может я чтото не так понял, но вот смотри попробовал сделать по твоему примеру
                                              s6200.h3.modhost.pro/index.php?id=138
                                              1. Юрий Татаркин 10 октября 2016, 10:58 # 0
                                                Так получится одна и та же добавка к цене в зависимости от объема памяти.

                                                А если черный с 64 памяти стоит 2100, черный с 128 стоит 2333 и черный 256 памяти стоит 2654

                                                Белый: 64 — 2050, 128 — 1500, 256 — 1800

                                                Такое уже не получится сделать.
                                                1. Володя 10 октября 2016, 11:05 # 0
                                                  ну чтото же должно быть у продукта уникальное, вот к этому уникальному привяжите картинку, а дальше уже другими модификациями задавайте стоимость.
                                                  Например можно взять артикул, ведь он уникален? Создайте его, задайте для него картинку и дальше…
                                                  1. Юрий Татаркин 10 октября 2016, 11:07 # 0
                                                    То есть у модификации должно быть минимум одно поле уникальное? и при этом картинки можно не уникальные?
                                                    1. Володя 10 октября 2016, 11:09 # 0
                                                      нет, картинка уникальна для каждой модификации. Иначе не определить связь между ними.
                                                      1. Володя 10 октября 2016, 11:10 # 0
                                                        не, я муть предложил какую то. вам же надо картинку к цвету цеплять.
                                                        1. Юрий Татаркин 10 октября 2016, 11:11 # 0
                                                          Все это похоже на битриксовые оферы товара. Надо посмотреть как у них сделано.
                                                          1. Володя 10 октября 2016, 11:14 # 0
                                                            в целом можно сделать уникальность картинки настраиваемой. Но в случае когда картинка не уникальна не будет работать переключение опций по смене изображения в галерее, а будет переключаться картинка при смене опций.
                                                            1. Володя 10 октября 2016, 11:21 # +1
                                                              Хотя я так подумал… щас посмотрю, может и получится сделать.
                                                              1. Александр 19 октября 2016, 15:52 # 0
                                                                получилось?
                                                                  1. Юрий Татаркин 23 октября 2016, 06:11 # 0
                                                                    Получилось. Спасибо!
                                                          2. shzk 24 ноября 2016, 12:48 # 0
                                                            А можно чанк такого товара посмотреть?
                                                              1. shzk 24 ноября 2016, 13:50 # +1
                                                                Спасибо!
                                                                Это правда скорее на s6200.h3.modhost.pro/index.php?id=136 похоже, а меня интересовал именно s6200.h3.modhost.pro/index.php?id=138

                                                                Или мне так кажется из-за названий опций просто?
                                                                1. Володя 24 ноября 2016, 13:53 # 0
                                                                  Или мне так кажется из-за названий опций просто?
                                                                  кажется )
                                                                  чанк один и тот же
                                                                  1. shzk 24 ноября 2016, 13:55 # 0
                                                                    Хорошо, сейчас на тестовом сайте разберусь обязательно с ними )
                                                          3. Володя 10 октября 2016, 13:46 # 0
                                                            пробуй обновиться и создать модификации.
                                                            пример рабочий тут s6200.h3.modhost.pro/index.php?id=139
                                                            1. Александр 25 октября 2016, 15:38 # 0
                                                              теперь работает хорошо. но из за того, что фоторама не сразу подгружает все фотки слайдера (а только те, что входят) — не меняется фотография при изменении модификации.
                                                              не в курсе как лечится?
                                                              1. Володя 25 октября 2016, 17:27 # 0
                                                                попробуйте убрать превьюшки gist.github.com/vgrish/7da99c6d534cdfab18f1a0754a0d23bc
                                                                тогда фоторама сам будет генерить превью и возможно это сработает
                                                                1. Александр 25 октября 2016, 17:39 # 0
                                                                  не помогло
                                                                  yadi.sk/i/HTKCeupsxbNWB
                                                                  различие фоток в слайдере. и соответственно при переключении модификации тега img еще нет
                                                                  1. Володя 25 октября 2016, 17:41 # 0
                                                                    напишите в ТП с указанием доступов к админ панели сайта, посмотрю как решить.
                                                                    Спасибо!
                                                                    1. Александр 25 октября 2016, 17:53 # 0
                                                                      Простите, куда написать? линк, если можно.
                                                                      1. Володя 25 октября 2016, 20:32 # 0
                                                      2. Виктор Долгий 08 октября 2016, 15:48 # 0
                                                        Спасибо за обновления) В последнем обновлении не работает поиск по ключу при добавлении опции в модификацию.
                                                        1. Володя 10 октября 2016, 09:22 # 0
                                                          уверен? joxi.ru/xAe8MExSYzKNx2
                                                        2. Кирилл 10 октября 2016, 08:21 # 0
                                                          Подскажите пожалуйста где можно скачать первую версию?
                                                          1. Володя 10 октября 2016, 09:17 # 0
                                                            активировал в репозитории, попробуйте установить.
                                                            1. Кирилл 10 октября 2016, 10:54 # 0
                                                              не появился take.ms/MT8pX. В качестве поставщика установил modstore.pro
                                                              1. Володя 10 октября 2016, 10:57 # 0
                                                                уточните насчет какой первой версии вы имели ввиду? насчет самой самой первой??? ее не будет. Я думал речь шла о пакете msOptionsPrice2 первой версии, ее я и активировал.
                                                                1. Кирилл 10 октября 2016, 11:06 # 0
                                                                  Да речь о самой первой версии. Где-то было написано, что она стала бесплатной. Почему её не будет?
                                                                  1. Володя 10 октября 2016, 11:12 # 0
                                                                    она и была в репозитории пока работала. Сейчас она не работает с новой версией магазина, смысл ее держать? Потому и убрал.
                                                                    1. Кирилл 11 октября 2016, 18:03 # 0
                                                                      А какая минимальная версия магазина нужна (именно miniShop2, а не modx) для 2й версии?
                                                                      1. Володя 11 октября 2016, 21:54 # 0
                                                                        2.4.0
                                                                        1. Сергей Шлоков 11 октября 2016, 21:57 # 0
                                                                          Офтоп.
                                                                          Володь, у вас там сегодня ВВП гостил. Город причесали наверно.
                                                                          1. Володя 11 октября 2016, 22:00 # 0
                                                                            да ты че… Город такого марафета за последние 30 лет не видел.
                                                                            Дороги, спорт площадки как грибы после дождя, за несколько дней выросли.
                                                                            1. Сергей Шлоков 11 октября 2016, 23:06 # 0
                                                                              Всё, на ближайшие 30 лет забудьте, другим тоже нужны дороги и корты :)
                                                                            2. Кирилл 13 октября 2016, 07:59 # 0
                                                                              У меня 2.2.0 и обновиться очень проблематично т.к. мой предшественник вносил правки в исходный код. Может всё-таки дадите доступ к старой версии для таких «везунчиков» как я? Буду вам очень благодарен, могу купить за какую-то умеренную плату. Если конечно она будет работать на моей версии магазина.
                                                                              1. Володя 13 октября 2016, 09:45 # 0
                                                                                активировал в репозитории старую версию. Описание актуальное для старой версии тут modx.pro/components/4880-msoptionsprice2-different-prices-for-the-options-of-the-goods/
                                                                                1. Кирилл 13 октября 2016, 17:46 # 0
                                                                                  Спасибо, но всё равно не вижу дополнение в репозиторие
                                                                                  1. Володя 13 октября 2016, 18:24 # 0
                                                                                    Возможно у вас не куплен пакет?
                                                                                    1. Кирилл 13 октября 2016, 18:27 # 0
                                                                                      В смысле мне нужно купить msOptionsPrice2 для того, чтобы получить доступ к msOptionsPrice?
                                                                                      1. Володя 13 октября 2016, 18:29 # 0
                                                                                        нет, речь изначальна шла про msOptionsPrice2, есть старая версия, есть новая что описана тут.
                                                                                        1. Кирилл 13 октября 2016, 18:32 # 0
                                                                                          msOptionsPrice2 может быть установлена на minishop2 версии 2.2.0?
                                                                                          1. Володя 13 октября 2016, 18:40 # 0
                                                                                            msOptionsPrice2 (1.1.4-beta) — работает на любом minishop2
                                                                                            msOptionsPrice2 (2.0.0-beta) — работает на minishop2 > 2.4.0
                                                                                            1. Кирилл 13 октября 2016, 18:42 # 0
                                                                                              ок, спасибо. И после покупки я смогу выбрать любую из них, правильно?
                                                                                              1. Володя 13 октября 2016, 18:44 # 0
                                                                                                да, должны быть доступны обе версии.
                                                                                                Но я бы советовал вам обновить магазин и не держаться за старое.
                                                                              2. Александр 12 октября 2016, 17:07 # 0
                                                                                Помогите плиз. На событие msOnGetProductPrice стоит 2 плагина. Первым отрабатывает плагин msoptionsprice вторым вызывается плагин для изменения цены от кол-ва товаров.
                                                                                switch ($modx->event->name) {
                                                                                
                                                                                	case 'msOnGetProductPrice':
                                                                                		if ($modx->context->key == 'mgr') {return;}
                                                                                		// Плагин принимает:
                                                                                		// $product - объект msProductData
                                                                                		// $data - массив со свойствами товара, может отсутствовать
                                                                                		// $price - текущая цена товара
                                                                                
                                                                                		// Подключаем массив значений по ссылке - так удобнее
                                                                                		$values = &$modx->event->returnedValues;
                                                                                
                                                                                		// Цена может меняться несколькими плагинами сразу, поэтому проверяем:
                                                                                		if (isset($values['price'])) {
                                                                                			$price = $values['price'];
                                                                                		}
                                                                                		$modx->log(MODX::LOG_LEVEL_ERROR,'Плагин price_currency '.print_r($values,true));
                                                                                
                                                                                $values
                                                                                приходит пустое. То есть изменение цены от первого плагины не приходит.
                                                                                Почему это происходит и как вылечить?
                                                                                1. Володя 12 октября 2016, 17:10 # +1
                                                                                  это не работает с версии php > 5.3
                                                                                  фикс можно вот такой сделать github.com/modxcms/revolution/pull/13116
                                                                                  1. Александр 12 октября 2016, 18:04 # 0
                                                                                    Спасибо посмотрю. еще один вопрос можно?
                                                                                    Есть плагин который в корзине меняет цену в зависимости от кол-ва. (блин плагин выше валюту переводит. поторопился когда писал.)
                                                                                    <?php
                                                                                    switch ($modx->event->name) {
                                                                                    	case 'msOnAddToCart': case 'msOnChangeInCart': case 'msOnRemoveFromCart':
                                                                                    
                                                                                    		$cartArray = $cart->get();
                                                                                    		$cartStatus = $cart->status();
                                                                                    		$totalCount = $cartStatus['total_count'];
                                                                                            //получаем курс валюты
                                                                                    ....
                                                                                            		$price = $product->get('price')*$course;
                                                                                            		$old_price = round($product->get('old_price')*$course, 0);
                                                                                            		//получаем скидку товара
                                                                                    ....
                                                                                    		$cart->set($cartArray);
                                                                                    		break;
                                                                                    
                                                                                    }
                                                                                    
                                                                                    Как в этой строке
                                                                                    $price = $product->get('price')*$course;
                                                                                    можно получить цену модифицированную msOptionsPrice2?
                                                                                    1. Володя 12 октября 2016, 21:06 # 0
                                                                                      расчет цены идет на событие msOnGetProductPrice достаточно вызвать метод
                                                                                      $product->getPrice(array('msoptionsprice_options' => $options));
                                                                                      
                                                                                      где msoptionsprice_options опции продукта
                                                                                      1. Александр 13 октября 2016, 22:16 # 0
                                                                                        Заработало. Я пытался править modx.class.php из админки. Как подсказал Володя его надо было залить по ftp.
                                                                                        И в плагине правки:
                                                                                        <?php
                                                                                        switch ($modx->event->name) {
                                                                                        
                                                                                        	case 'msOnGetProductPrice':
                                                                                        		if ($modx->context->key == 'mgr') {return;}
                                                                                        		// Плагин принимает:
                                                                                        		// $product - объект msProductData
                                                                                        		// $data - массив со свойствами товара, может отсутствовать
                                                                                        		// $price - текущая цена товара
                                                                                        
                                                                                        		// Подключаем массив значений по ссылке - так удобнее
                                                                                        		$values = & $modx->Event->returnedValues;
                                                                                                $values2 = & $modx->event->returnedValues;
                                                                                        ...
                                                                                        		
                                                                                        		$price = $price*$course;
                                                                                        		$values['price'] = round($price, 0);
                                                                                        		$values2['price'] = $values['price'];
                                                                                        ...
                                                                                        		break;
                                                                                        }
                                                                                        
                                                                                    2. Александр 12 октября 2016, 18:26 # 0
                                                                                      фикс можно вот такой сделать github.com/modxcms/revolution/pull/13116
                                                                                      Не работает
                                                                                      // Подключаем массив значений по ссылке - так удобнее
                                                                                      		$values = $modx->event->returnedValues;
                                                                                      
                                                                                      		// Цена может меняться несколькими плагинами сразу, поэтому проверяем:
                                                                                      		if (isset($values['price'])) {
                                                                                      			$price = $values['price'];
                                                                                      		}
                                                                                      		$modx->log(MODX::LOG_LEVEL_ERROR,'Плагин price_currency '.print_r($values,true));
                                                                                      
                                                                                      print_r($values,true) все равно пустое :(
                                                                                      1. Володя 12 октября 2016, 18:41 # -1
                                                                                        вы невнимательны…
                                                                                        1. Александр 12 октября 2016, 18:47 # 0
                                                                                          Поясните пожалуйста.
                                                                                          поставили php5.3 та же проблема :(
                                                                                  2. Константин Ильин 22 октября 2016, 14:34 # 0
                                                                                    Володя, скажи пожалуйста смогу ли я такое реализовать при помощи msOptionsPrice2:
                                                                                    Есть Опция(общая) размеры sizes (тоже множественный выбор, но не стандартная size), сделал так чтобы были уже готовые значения и можно было просто выбирать.

                                                                                    так вот:
                                                                                    Есть несколько размеров, допустим 10, 30, 50. Они общие, т.е. эта опция для групп ресурсов одинаковая. Соответственно на каждую группу ресурсов своя цена на размеры. Допустим так:
                                                                                    - Категория 1
                                                                                    	10 цена 1000р
                                                                                    	30 цена 1200р
                                                                                    	50 цена 1400р
                                                                                    - Категория 2
                                                                                    	10 цена 1100р
                                                                                    	30 цена 1300р
                                                                                    	50 цена 1500р
                                                                                    
                                                                                    В каждом товаре выбираю только размер товара, из предложенных. К примеру:
                                                                                    Товар 1 - размеры 10, 30
                                                                                    Товар 2 - размеры 50
                                                                                    Товар 3 - размеры 10,50
                                                                                    
                                                                                    Соответственно нужно выводить опции-цены только которые выбраны для товара.

                                                                                    Можно ли чтобы не вбивать в каждый товар размер и его цену(создавать модификации), а назначить глобально как-то, т.е. для Категории как в коде выше?

                                                                                    Вопрос не к компоненту, лучше наверно использовать существующее поле size, но как там связать это все и чтоб были значения(т.е. размеры 10, 30, 50 уже вбиты и можно было только выбирать)?
                                                                                    1. Володя 22 октября 2016, 18:13 # +1
                                                                                      можно не создавать опции, не создавать модификации, а написать плагин на msopOnAfterGetModification
                                                                                      должен отдавать модификацию по опциям продукта.
                                                                                      Так вот в него поместить всю логику по вычислению стоимости модификации в зависисмости от ваших категорий и тд.
                                                                                      Отдаете объект модификация с нужной стоимостью и все. Должно работать.
                                                                                    2. Володя 22 октября 2016, 18:14 # +1
                                                                                      Вопрос не к компоненту, лучше наверно использовать существующее поле size, но как там связать это все и чтоб были значения(т.е. размеры 10, 30, 50 уже вбиты и можно было только выбирать)?
                                                                                      Это наверно проще создать опцию как раньше с помощью плагина и в сторе комбика поместить те значения что вам нужны
                                                                                      1. Кирилл 23 октября 2016, 15:19 # 0
                                                                                        Кто-нибудь знает как отписаться от получения новых комментариев отсюда на почту?
                                                                                        1. Jurij 26 октября 2016, 12:29 # 0
                                                                                          После установки дополнения не отображается список опций на карточке товара. Если обновить страницу, то появляется.
                                                                                          Разработчик приложения рекомендовал повысить версию php. Пробовал 5.4 и 7.0. Проблема осталась.

                                                                                          Пробовал удалять приложения (SeoPro, Summary, Collections и другие). Ничего не меняется.

                                                                                          Может кто сталкивался с данной проблемой и может поделиться решением. Не хочется полностью переделывать проект на shopkeepere из-за этой проблемы…

                                                                                          P.S. Установлена последняя версия minishop 2.4.4-pl и mSearch 1.6.4-pl
                                                                                          1. Володя 26 октября 2016, 12:40 # 0
                                                                                            После установки дополнения не отображается список опций на карточке товара. Если обновить страницу, то появляется
                                                                                            не вводите людей в смуту, у вас опции выводятся стандартным сниппетом minishop и компонент тут не причем.

                                                                                          2. Ольга 02 ноября 2016, 11:46 # 0
                                                                                            Добрый день, подскажите, возможно ли у каждой модификации создавать свои цвета? Т.е. у меня товар — стул есть экокожа, есть ткань, есть натуральная кожа. И у каждой модификации есть не несколько видов своих цветов. Возможна ли такая реализация?
                                                                                            1. Дмитрий 04 декабря 2016, 20:54 # 0
                                                                                              добрый день!
                                                                                              Купил msOptionsPrice2, возникли некоторые вопросы по работе:
                                                                                              1. При смене опции меняется артикул и цена, все ок. Как можно передать в корзину артикул модификации? Цена передается, артикул нет.
                                                                                              2. Если у товара нет модификации, артикул товара не отображается
                                                                                              3. Возможно ли использовать radio вместо select в списке опции?
                                                                                              miniShop2 2.4.6-pl1, пришлось обновить так как с 2.2 не работал
                                                                                              msOptionsPrice2 2.1.20-beta
                                                                                              1. Володя 05 декабря 2016, 11:31 # 0
                                                                                                Добрый день.

                                                                                                1. На данный момент никакого механизма по передаче артикула нет. Можно передавать артикул как опцию продукта.
                                                                                                2. Поправил, обновитесь.
                                                                                                3. Да, конечно. Пример чанка gist.github.com/vgrish/46de7e0c9eb453a4ccb77064b3b78916
                                                                                                1. Дмитрий 06 декабря 2016, 09:50 # 0
                                                                                                  Спасибо за ответ.
                                                                                                  Возможно вопрос не к совсем к Вам, но может подскажете:
                                                                                                  Опции к товару добавляются через «Множественный выбор» в таком порядке joxi.ru/KAxbe4nF4WROKm от дешевого в дорогому, соответственно выбран самый дешевый, на при сохранении порядок меняется joxi.ru/zANa0gdclbKGy2. Получается что сортировка сама меняется. Можно ли как-то выводить нужную сортировку?
                                                                                                  >>>1. На данный момент никакого механизма по передаче артикула нет. Можно передавать артикул как опцию продукта.
                                                                                                  Жаль, один из факторов покупки данного компонента, что есть возможность передать уникальный артикул. По факту получается это просо js манипуляция на фронтенде карточки товара.
                                                                                                  1. Володя 06 декабря 2016, 10:42 # 0
                                                                                                    Опции к товару добавляются через «Множественный выбор» в таком порядке joxi.ru/KAxbe4nF4WROKm от дешевого в дорогому, соответственно выбран самый дешевый, на при сохранении порядок меняется joxi.ru/zANa0gdclbKGy2. Получается что сортировка сама меняется. Можно ли как-то выводить нужную сортировку?
                                                                                                    попробуйте выставить настройку msoptionsprice_sort_modification_option_values в нет
                                                                                                    Жаль, один из факторов покупки данного компонента, что есть возможность передать уникальный артикул. По факту получается это просо js манипуляция на фронтенде карточки товара.
                                                                                                    артикула как такового нет в продукте корзины github.com/bezumkin/miniShop2/blob/53f541cb4fabe3ad32f9e0608a5abf5d25cd9a4d/core/components/minishop2/model/schema/minishop2.mysql.schema.xml#L362-L370
                                                                                                    есть только опции, потому если вы передадите артикул как опцию он нигде не потеряется. Других вариантов я пока не вижу.
                                                                                                    1. Дмитрий 08 декабря 2016, 12:09 # 0
                                                                                                      Спасибо за ответ.
                                                                                                      >>>попробуйте выставить настройку msoptionsprice_sort_modification_option_values в нет
                                                                                                      поставил работает, но после обновления до 2.1.22 beta перестало работать, значение в настройках стоит нет, проверил.
                                                                                              2. Александр 07 декабря 2016, 18:10 # 0
                                                                                                в ms2 есть параметр размер. можно ли как то сделать так, чтобы к этому параметру был привязан аналогичный другой параметр мощность. т.е. один размер — одна мощность. второй размер — соответствующая мощность?
                                                                                                и во фронте при изменении модификации завязанной на размер автоматом обновлялся инпут ридонли мощности?

                                                                                                если этот вопрос не связан с Вашим дополнением, можете направить куда рыть, чтобы направление было правильным? :)
                                                                                                1. Володя 07 декабря 2016, 21:44 # 0
                                                                                                  Если я вас правильно понял то можно попробовать так.
                                                                                                  Плагин на событие msopOnGetModificationById примерно так
                                                                                                  if ($modx->event->name = 'msopOnGetModificationById') {
                                                                                                      
                                                                                                      $m = null;
                                                                                                      $msoptionsprice = $modx->getService('msoptionsprice');
                                                                                                     
                                                                                                      // пробуем получить модификацию по свойству
                                                                                                      foreach ($options as $k => $v) {
                                                                                                          $m = $msoptionsprice->getModificationByOptions($rid, array($k => $v));
                                                                                                          if ($m) {
                                                                                                              break;
                                                                                                          }
                                                                                                      }
                                                                                                      
                                                                                                      if ($m) {
                                                                                                  	// получаем все свойства модификации
                                                                                                          $options = $modx->call('msopModificationOption', 'getOptions', array(&$modx, $m['id'], $rid));
                                                                                                          $modification->set('options', $options);
                                                                                                          $modification->set('rid', $rid);
                                                                                                          // сигнализируем что модификация найдена и не нужно выводить пустую модификацию по дефолту
                                                                                                          $modx->event->returnedValues['found'] = true;
                                                                                                  }
                                                                                                  

                                                                                                  далее событие msoptionsprice_product_action
                                                                                                  $(document).on('msoptionsprice_product_action', function (e, action, form, r) {
                                                                                                  	if (action == 'modification/get') {
                                                                                                  	    var m = r.data.modification || {};
                                                                                                  	    var o = r.data.options || {};
                                                                                                  	    
                                                                                                  	    if (m.rid) {
                                                                                                  	        if (!msOptionsPrice.Tools.empty(o)) {
                                                                                                  				for (key in o) {
                                                                                                  				    if (!o.hasOwnProperty(key)) {
                                                                                                  						continue;
                                                                                                  					}
                                                                                                  					var value = o[key];
                                                                                                  					value = msOptionsPrice.Tools.formatOptionValue(key, value);
                                                                                                  					// выставляем свойства модификации
                                                                                                  					msOptionsPrice.Tools.setInputValue(key, value, m.rid);
                                                                                                  				}
                                                                                                  			}
                                                                                                  	    }
                                                                                                  	}
                                                                                                  });
                                                                                                  
                                                                                                  1. Александр 08 декабря 2016, 09:27 # 0
                                                                                                    А где мы привязываем конкретный размер к конкретной мощности?
                                                                                                    Или это делается когда в модификацию добавляются ключи? т.е. надо внимательно следить за тем, чтобы на 1 размер 2 мощности не привязать?
                                                                                                    1. Володя 08 декабря 2016, 10:00 # 0
                                                                                                      Или это делается когда в модификацию добавляются ключи?
                                                                                                      да, все верно.
                                                                                                      т.е. надо внимательно следить за тем, чтобы на 1 размер 2 мощности не привязать?
                                                                                                      Да наверно нужно как то следить.
                                                                                                      1. Александр 08 декабря 2016, 10:22 # 0
                                                                                                        плагин modx, или ms2? что-то не совсем понял куда его.
                                                                                                        1. Володя 08 декабря 2016, 10:46 # 0
                                                                                                          плагин modx, или ms2? что-то не совсем понял куда его.
                                                                                                          плагин modx конечно на событие msopOnGetModificationById
                                                                                                          1. Александр 08 декабря 2016, 12:24 # 0
                                                                                                            но при создании плагина нет такого события… =(
                                                                                                            1. Володя 08 декабря 2016, 14:45 # 0
                                                                                                              скорее всего вам нужно обновить пакет до последней версии
                                                                                                              1. Александр 08 декабря 2016, 15:33 # 0
                                                                                                                да, действительно. обновил, все появилось. в итоге при изменении размера на странице товара мощность не меняется на привязанную.
                                                                                                                при этом цена изменяется только в том случае, если вручную выставлена правильная модификация.
                                                                                                                И можно ли как то избавится от вывода опций через снипет [[msOptions]] и заменить его на простой input?
                                                                                                                1. Володя 08 декабря 2016, 15:50 # 0
                                                                                                                  либо смоделируйте ситуацию на тестовом сайте, либо скиньте доступ в ТП.
                                                                                                                  Не видя тяжело чтото советовать.

                                                                                                                  И можно ли как то избавится от вывода опций через снипет [[msOptions]] и заменить его на простой input?
                                                                                                                  можно а зачем?
                                                                                                2. colmer 05 февраля 2017, 21:59 # 0
                                                                                                  MODX 2.5.4. Поставил последний minishop2, накатил msOptionsPrice2. Создал товар, но новой вкладки не увидел. Необходимы еще какие то манипуляции? В гайде об этом ни слова.
                                                                                                  1. Володя 05 февраля 2017, 22:19 # 0
                                                                                                    Скорее всего
                                                                                                    На странице продукта доступна одноименная вкладка (настройка msoptionsprice_working_templates, в ней перечислить id необходимых шаблонов)
                                                                                                  2. Дмитрий 06 февраля 2017, 13:29 # 0
                                                                                                    Добрый день хочу приобрести Ваш плагин, совместим ли он с minishop2.2?
                                                                                                    1. Володя 06 февраля 2017, 13:40 # 0
                                                                                                      Добрый день.
                                                                                                      совместим ли он с minishop2.2?
                                                                                                      нет, работает с версии 2.4.0
                                                                                                    2. Евгений Webinmd 24 февраля 2017, 13:18 # 0
                                                                                                      Заметил такую штуку.
                                                                                                      Если у товара есть доп поле (TV) и в его Возможные значения вписано что-то типа такого:

                                                                                                      @EVAL return $modx->runSnippet('msProducts', array('parents'=>'0', 'depth'=>'2', 'limit' => '300', 'tpl' => '@INLINE [[+pagetitle]]==[[+id]]||','tplLast' => '@INLINE [[+pagetitle]]==[[+id]]' ));
                                                                                                      то карточка в админке не открывается.
                                                                                                      Если убрать @EVAL, то всё нормально.
                                                                                                      1. Володя 24 февраля 2017, 14:47 # +1
                                                                                                        Привет. Поправил, обновись!
                                                                                                        1. Евгений Webinmd 24 февраля 2017, 14:48 # 0
                                                                                                          ! спс
                                                                                                      2. Максим Степанов 10 марта 2017, 04:34 # 0
                                                                                                        Здравствуйте!
                                                                                                        Скажите может ли компонент вывести в корзине стоимость заказа со скидкой и без? к примеру:
                                                                                                        Сумма заказа со скидкой: 1 000 руб
                                                                                                        Сумма заказа без скидки: 500 руб
                                                                                                        1. Володя 10 марта 2017, 09:16 # 0
                                                                                                          Доброе утро.
                                                                                                          В компоненте нет никаких скидок и он не влияет на корзину… Естественно никакого функционала по выводу стоимости заказа со скидкой и без нет.
                                                                                                          1. Максим Степанов 10 марта 2017, 09:19 # 0
                                                                                                            Прошу прощения, перепутал компоненты, хотел спросить про Discontrol. Может ли он выводить?
                                                                                                            1. Володя 10 марта 2017, 09:22 # 0
                                                                                                              Используйте сниппет dcDiscounts modx.pro/components/8840-discontrol-control-discounts-store/
                                                                                                        2. Владимир Тельнов 15 марта 2017, 01:17 # 0
                                                                                                          1. Возможно вести учет остатков при условии, что у товара нет модификаций и опций?
                                                                                                          2. В случае отмены заказа товар возвращается на склад?
                                                                                                          3. К какому событию / процессу / статусу заказа привязана операция уменьшения остатков?
                                                                                                          4. Есть опция запрета покупки или уведомления пользователя в случае покупки количества товара, которое превышает остатки?

                                                                                                          Спасибо.
                                                                                                          1. Володя 15 марта 2017, 07:17 # 0
                                                                                                            1. Возможно вести учет остатков при условии, что у товара нет модификаций и опций?
                                                                                                            нет, контролируются только остатки модификаций
                                                                                                            2. В случае отмены заказа товар возвращается на склад?
                                                                                                            да
                                                                                                            3. К какому событию / процессу / статусу заказа привязана операция уменьшения остатков?
                                                                                                            msOnCreateOrder
                                                                                                            4. Есть опция запрета покупки или уведомления пользователя в случае покупки количества товара, которое превышает остатки?
                                                                                                            да, отслеживается ко-во товара в корзине, если нет доступного кол-во выводится предупреждение — товар не добавляется.
                                                                                                          2. Олег 16 марта 2017, 13:41 # 0
                                                                                                            Есть ли возможность указывать модификации при импорте через csv или сторонние дополнения?
                                                                                                            Поддерживаются только стандартные свойства — color, size или можно добавлять свои? У меня должны быть свойства — дозировка, объем, теоретически можно color, size приспособить для этих целей. Но в идеале, конечно, использовать свои.
                                                                                                            1. Viktor 13 апреля 2017, 15:23 # 0
                                                                                                              Это дополнение подойдет для фронт-энд конструктора пиццы? Корж + сыр + салями ну и т.д. Можно ли, допустим, 2 порции одного сыра добавить к коржу?
                                                                                                              1. Сергей 21 апреля 2017, 17:13 # 0
                                                                                                                Добрый день!
                                                                                                                Смотрю вашу демо версию и возникает вопрос, можно опции вывести в виде фото?
                                                                                                                В частности выбор цвета.
                                                                                                                1. Андрей 21 апреля 2017, 18:33 # 0
                                                                                                                  Для выбора цвета есть дополнение msOptionsColor. Там же и паттерн(фото) можно поставить.
                                                                                                                2. Сергей 21 апреля 2017, 18:33 # 0
                                                                                                                  Есть возможность вывести так? Пример
                                                                                                                  1. Володя 21 апреля 2017, 20:15 # 0
                                                                                                                    это больше на наборы товаров похоже. есть modstore.pro/packages/ecommerce/mssetincart
                                                                                                                    и есть modstore.pro/packages/integration/msaddlinked
                                                                                                                    1. Сергей 26 апреля 2017, 16:22 # 0
                                                                                                                      Спасибо за ответ!
                                                                                                                      Но не совсем понял почему Вы склоняете меня к этим модулям, мне нужно что бы доп опции были в виде, фото, названия, цены, описания. Если я не ошибаюсь, этот модуль за это и отвечает, что бы выводить дополнительные опции. Или я ошибаюсь?
                                                                                                                      1. Володя 26 апреля 2017, 17:08 # 0
                                                                                                                        модуль предназначен для созданий модификаций продукта на основе опций.
                                                                                                                        Как частный случай возможно его использование при условиии модфикация продукта = одна опция.
                                                                                                                        Вы можете установить пакет на тестовом сайте и посмотреть что к чему modhost.pro/
                                                                                                                  2. Евгений Webinmd 23 апреля 2017, 13:15 # 0
                                                                                                                    не появиться ли в будущем настройки, в которую можно вписать только те опции которые надо выводить при добавлении модификации. Например указать в поле color,size и при добавлении новой модификации в поле Ключ чтобы были только эти два пункта, так как часто опций много, а для модификаций используются парочка и приходиться ждать пока все подгрузятся
                                                                                                                    1. Володя 23 апреля 2017, 15:19 # +1
                                                                                                                      добавил настройку «include_modification_options» — сюда писать ключи что необходимы
                                                                                                                      1. Евгений Webinmd 23 апреля 2017, 15:21 # 0
                                                                                                                        спасибо!
                                                                                                                        1. Володя 23 апреля 2017, 15:24 # 0
                                                                                                                          пожалуйста!)
                                                                                                                    2. Олег 23 апреля 2017, 15:18 # 0
                                                                                                                      В списке модификаций хорошо бы добавить столбик «наименование»
                                                                                                                      Вот тут —

                                                                                                                      Иначе в моем случае везде стоят нули
                                                                                                                      1. Володя 23 апреля 2017, 15:20 # 0
                                                                                                                        не понял, про какие нули идет речь и какие наименования.
                                                                                                                        Поясните, спасибо!
                                                                                                                        1. Олег 23 апреля 2017, 17:02 # 0
                                                                                                                          правой кнопкой на модификации и «обновить». в открывшемся окне есть «наименование». Вот его хорошо бы вывести в список модификаций на скрине из прошлого сообщения.
                                                                                                                          иначе у меня получается вот так — screenshot.ru/upload/images/2017/04/23/EKRANA2017-04-23V15.16.3767c89.png
                                                                                                                          1. Володя 23 апреля 2017, 19:15 # +1
                                                                                                                            настройка msoptionsprice_grid_modification_fields, добавьте туда поле name
                                                                                                                            1. Олег 23 апреля 2017, 19:42 # 0
                                                                                                                              Спасибо!
                                                                                                                      2. Максим 27 апреля 2017, 04:02 # 0
                                                                                                                        Здравствуйте. А можно как-нибудь реализовать select как в msOptions, но только отсортировав его по цене?

                                                                                                                        А то клиент вбил много данных, и в листинге показывает одну цену, а в карточке товара другую (изза модификации).

                                                                                                                        Заранее спасибо.
                                                                                                                        1. Володя 27 апреля 2017, 09:11 # 0
                                                                                                                          Доброе утро.
                                                                                                                          Варианты:
                                                                                                                          — в листинге подключить msoptionsprice с опциями
                                                                                                                          — если модификации построены на одной опции, то можно на основе msOptionsPrice.modification
                                                                                                                          вывести опции с учетом цен
                                                                                                                          — какой то еще вариант…
                                                                                                                        2. Александр 29 апреля 2017, 23:22 # 0
                                                                                                                          Автору компонента спасибо большое за быструю техническую поддержку. Помог решить проблему в ТП очень быстро. При общении более, чем адекватен. Замечательный разработчик!
                                                                                                                          1. Алексей 04 мая 2017, 11:36 # 0
                                                                                                                            Доброго времени суток, Володя! Не разобрался как «перетаскивать» модификации в табличке, вроде как строчка подхватывается по «drug and drop», но не даёт перемещать. Что я делаю не так?
                                                                                                                            PS: нужно для сортировки опций в select'е.
                                                                                                                            1. Володя 04 мая 2017, 11:41 # 0
                                                                                                                              Добрый день.
                                                                                                                              Не разобрался как «перетаскивать» модификации в табличке, вроде как строчка подхватывается по «drug and drop», но не даёт перемещать
                                                                                                                              там нет сортировки.
                                                                                                                              Для сортировки значений опций можно пользовать сниппет msOptionsPrice.option
                                                                                                                              [[!msOptionsPrice.option?
                                                                                                                              &options=`color,size`
                                                                                                                              &sortOptions=`
                                                                                                                                   size:SORT_DESC:SORT_NUMERIC,
                                                                                                                                   color:SORT_DESC:SORT_STRING
                                                                                                                              `
                                                                                                                              ]]
                                                                                                                              
                                                                                                                              1. Алексей 04 мая 2017, 13:22 # +1
                                                                                                                                было бы круто там сортировать! ведь есть же поле msopModification.rank в табличке, а выводит тогда можно вот так:
                                                                                                                                {$_modx->runSnippet('@FILE components/pdotools/elements/snippets/snippet.pdoresources.php', [
                                                                                                                                	'eelementsPath'		=> $_modx->config.core_path ~ "components/",
                                                                                                                                	'elementsPath'		=> $_modx->config.core_path,
                                                                                                                                	'showLog'			=> 0,
                                                                                                                                	'loadModels' 		=> 'msoptionsprice',
                                                                                                                                	'class' 			=> 'msopModificationOption',
                                                                                                                                	'sortby'			=> 'msopModification.rank',
                                                                                                                                	'where'				=> [
                                                                                                                                		'rid'		=> $_modx->resource.id,
                                                                                                                                		'key'		=> 'color',
                                                                                                                                		],
                                                                                                                                	'leftJoin'		=> [
                                                                                                                                		"msopModification" => [
                                                                                                                                			"class"	=> "msopModification",
                                                                                                                                			"alias"		=> "msopModification",
                                                                                                                                			"on"		=> "msopModification.id = msopModificationOption.mid"
                                                                                                                                			],
                                                                                                                                		],
                                                                                                                                	'tpl'				=> '@FILE elements/chunks/msOptions/tpl.html',
                                                                                                                                	'tplWrapper'		=> '@FILE elements/chunks/msOptions/tplWrapper.html',
                                                                                                                                	'wrapIfEmpty'		=> 0,
                                                                                                                                ])}
                                                                                                                                
                                                                                                                                1. Володя 06 мая 2017, 18:25 # 0
                                                                                                                                  обновитесь, поправил сортировку.
                                                                                                                                  Спасибо!
                                                                                                                                  1. Алексей 11 мая 2017, 12:17 # 0
                                                                                                                                    Спасибо за оперативные исправления!
                                                                                                                                    Подскажите, можно ли назначить в модификациях цену по-умолчанию, чтобы она выводилась в списке продукции (в категории магазина) через сниппет msProduct? (сейчас выводится минимальная цена цена с максимальным msopModification.rank, взятая из модификаций, хотелось бы указывать её вручную – не через поле msopModification.rank)
                                                                                                                                    1. Володя 11 мая 2017, 13:29 # 0
                                                                                                                                      Спасибо за оперативные исправления!
                                                                                                                                      пожалуйста!

                                                                                                                                      Подскажите, можно ли назначить в модификациях цену по-умолчанию, чтобы она выводилась в списке продукции (в категории магазина) через сниппет msProduct?

                                                                                                                                      можно попробовать плагином
                                                                                                                                      gist.github.com/vgrish/85b5d8e9e3a159975b330cc90d63f3ca
                                                                                                                                      1. Алексей 11 мая 2017, 13:37 # 0
                                                                                                                                        но ведь дело в том что сниппет msProduct берет значение не из msProduct.price, а как я понимаю, по логике работы плагина msOptionsPrice по событию msOnGetProductPrice и по логике
                                                                                                                                        core/components/msoptionsprice/model/msoptionsprice/systems/msoptionspricemsongetproductprice.class.php
                                                                                                                                        И ему совершенно побоку что стоит в msProduct.price
                                                                                                                                        Но все равно, идею понял! удивительно подробные разъяснения с примерами!
                                                                                                                                        И как задел на будующее – было бы замечательно указывать дефолнтную цену у модификаций, к примеру самой популярной модификации, заказываемой в магазине (можно даже по истории заказов раз в месяц выявлять самые популярные модификации и делать ценник по-умолчанию по этим данным)
                                                                                                                                    2. Алексей 18 августа 2017, 16:11 # 0
                                                                                                                                      Доработал сортировку, чтобы msopModification.rank начинался с 0 для каждого ресурса msopModification.rid, чтобы можно было удобно left-джойнить цену по-умолчанию.
                                                                                                                                      исправления:
                                                                                                                                      в яваскрипте modification.grid.js
                                                                                                                                      :141
                                                                                                                                                              params: {
                                                                                                                                                                  action: config.action || 'mgr/modification/sort',
                                                                                                                                                                  resource_id: store[data.rowIndex].json.rid,
                                                                                                                                                                  source: source,
                                                                                                                                                                  target: target
                                                                                                                                                              },
                                                                                                                                      
                                                                                                                                      в процессоре sort.class.php
                                                                                                                                      :28
                                                                                                                                              $resource_id = (int)$this->getProperty('resource_id');
                                                                                                                                              if (empty($source) || empty($target)) {
                                                                                                                                                  return $this->modx->error->failure();
                                                                                                                                              }
                                                                                                                                              if ($source->get('rank') < $target->get('rank')) {
                                                                                                                                                  $this->modx->exec("UPDATE {$this->modx->getTableName($this->classKey)}
                                                                                                                                      				SET rank = rank - 1 WHERE
                                                                                                                                      				    rid = " . $resource_id . "
                                                                                                                                      					AND rank <= {$target->get('rank')}
                                                                                                                                      					AND rank > {$source->get('rank')}
                                                                                                                                      					AND rank > 0
                                                                                                                                      			");
                                                                                                                                              } else {
                                                                                                                                                  $this->modx->exec("UPDATE {$this->modx->getTableName($this->classKey)}
                                                                                                                                      				SET rank = rank + 1 WHERE
                                                                                                                                      				    rid = " . $resource_id . "
                                                                                                                                      					AND rank >= {$target->get('rank')}
                                                                                                                                      					AND rank < {$source->get('rank')}
                                                                                                                                      			");
                                                                                                                                              }
                                                                                                                                      
                                                                                                                                      внесите пожалуйста изменения, если все ок, чтобы с обновлением не потерялась логика. спасибо.
                                                                                                                              2. Григорий 14 мая 2017, 23:26 # +1
                                                                                                                                В корзине при выводе модификаций почему-то выглядит так:


                                                                                                                                Откуда в конце хвост:
                                                                                                                                Array, 0
                                                                                                                                1. Антон 15 мая 2017, 05:34 # 0
                                                                                                                                  Хороший вопрос. У меня тоже этот Array вылазит.
                                                                                                                                  1. Володя 15 мая 2017, 08:58 # +1
                                                                                                                                    используйте такую конструкцию для исключения служебных опций gist.github.com/vgrish/3748714377be39401799e3908efd8a59#file-mscart-tpl-L86-L99
                                                                                                                                    1. Антон 17 мая 2017, 07:22 # 0
                                                                                                                                      Спасибо! Все работает.
                                                                                                                                      Еще вопросы есть по опциям.

                                                                                                                                      Как исключить выборочно опции по ключу ms2_product_ххх?

                                                                                                                                      Как исключить все опции, но включить только нужные?
                                                                                                                                      1. Володя 17 мая 2017, 08:47 # +1
                                                                                                                                        Как исключить выборочно опции по ключу ms2_product_ххх?
                                                                                                                                        использовать регулярное выражение…
                                                                                                                                        Как исключить все опции, но включить только нужные?
                                                                                                                                        использовать отрицание
                                                                                                                                        not in [...]
                                                                                                                                        
                                                                                                                                        1. Антон 17 мая 2017, 23:39 # 0
                                                                                                                                          Можно образец, пожалуйста.
                                                                                                                                          Лучше 1 раз увидеть, чем 100 раз услышать.
                                                                                                                                          1. Володя 18 мая 2017, 13:32 # +1
                                                                                                                                            Как исключить выборочно опции по ключу ms2_product_ххх?
                                                                                                                                            {foreach $options as $name => $value}
                                                                                                                                            	{if ($name|preg_match:'#key')}{else}{continue}{/if}
                                                                                                                                            {/foreach}
                                                                                                                                            
                                                                                                                                            1. Володя 18 мая 2017, 13:33 # +1
                                                                                                                                              Как исключить все опции, но включить только нужные?
                                                                                                                                              foreach $product.options as $key => $option}
                                                                                                                                                  {if $key not in ['color','size']}{continue}{/if}
                                                                                                                                              {/foreach}
                                                                                                                                              
                                                                                                                                    2. Григорий 16 мая 2017, 19:48 # 0
                                                                                                                                      Отлично.
                                                                                                                                      Правда после покупки код ломает всё… Как исправить?


                                                                                                                                      1. Володя 16 мая 2017, 19:50 # 0
                                                                                                                                        скорее всего вы где-то нарушили синтаксис…
                                                                                                                                        напишите в ТП с указанием доступов к админке и ссылкой на шаблон корзины, разберемся в чем дело.
                                                                                                                                        Спасибо!
                                                                                                                                      2. Алексей 18 мая 2017, 02:57 # 0
                                                                                                                                        Доброго времени!

                                                                                                                                        Купил уже пакет, разбираемся учу менеджеров пользоваться, но вот заинтересовало как вы реализовали работу слайдера и опций.

                                                                                                                                        Долго изучал предоставленный вами материал (Чанки, Демо сайт) Сделал всё идентично сказанному.

                                                                                                                                        Через фото раму, фото выделяется, но только если в Sellect Я выберу опцию, а если нажать по миниатюре фото в галерее, то опция будет стоять на месте.

                                                                                                                                        Как вы сделали весь процесс?
                                                                                                                                        1. Володя 18 мая 2017, 13:30 # +1
                                                                                                                                          Скорее всего вы не модифицировали чанк галереи, там добавляются необходимые параметры
                                                                                                                                          gist.github.com/vgrish/e5c7e541b33eefc4b7c0cb68ec389096#file-tpl-msgallery-L10
                                                                                                                                          если не получается напишите в ТП с указанием доступов к админке сайта и ссылкой на чанк/ шаблон продукта, разберемся.
                                                                                                                                          Спасибо!
                                                                                                                                          1. Алексей 18 мая 2017, 13:51 # 0
                                                                                                                                            Чанки модифицированы. По шагам сделал всё по вашей инструкции, но увы.

                                                                                                                                            Я не могу отследить весь процесс события, но при клике в Галерее, событие отрабатывает на форме продукта, но при этом нечего не меняется.
                                                                                                                                            1. Алексей 19 мая 2017, 13:09 # 0
                                                                                                                                              В какую ТП вы мне предложили обратиться? Часть форума по тематике вопросы?
                                                                                                                                              1. Володя 19 мая 2017, 14:37 # 0
                                                                                                                                                В какую ТП вы мне предложили обратиться?
                                                                                                                                                В поддержку магазина modstore.pro/office/support#office/support/add
                                                                                                                                          2. Алексей 18 мая 2017, 15:09 # 0
                                                                                                                                            Отследил по степам что происходит после клика в галерее. по шагам отрабатываемые строки скрипта инициализации продукта.

                                                                                                                                            1. if(inputs){inputs.each(function(){msOptionsPrice.Tools.setValue(this,value,key);});}
                                                                                                                                            2. inputs.each(function(){msOptionsPrice.Tools.setValue(this,value,key);}); (результат: value = «Белый», key = «colors»)
                                                                                                                                            3. return;},setGalleryImage:function(rid,iid){var fotorama=$('.fotorama__img[data-rid="'+rid+'"]').closest(msOptionsPrice.Product.gallery).find('.fotorama').data('fotorama');if(!!fotorama){if(fotorama.activeFrame['iid']==iid){return;}
                                                                                                                                            4. ,setGalleryImage:function(rid,iid){var fotorama=$('.fotorama__img[data-rid="'+rid+'"]').closest(msOptionsPrice.Product.gallery).find('.fotorama').data('fotorama');if(!!fotorama){if(fotorama.activeFrame['iid']==iid){return;}
                                                                                                                                            5. key in data.options){if(!data.options.hasOwnProperty(key)){continue;}
                                                                                                                                            6. if(!msOptionsPrice.Tools.empty(errors)){console.log(errors.join('
                                                                                                                                            '));}} (при этом уже стоит результат «errors=[]»)
                                                                                                                                            7. }}).done(function(response){}).fail(function(jqXHR,textStatus,errorThrown){});}};msOptionsPrice.Tools={arrayIntersect:function(array1,array2){var result=array1.filter(function(n){return array2.indexOf(n)!==-1;});return result;},inArray:function(needle,haystack){for(key in haystack){if(haystack[key]==needle)return true;}

                                                                                                                                            Это все процессы в инициализации.

                                                                                                                                            При клике по фото скрипт получает данные ключа опций, а так-же значение этого ключа.

                                                                                                                                            У скрипта есть направление в name=«options[key]», но при этом значение не меняется в этом селекте

                                                                                                                                            1. Алексей 18 мая 2017, 15:23 # 0
                                                                                                                                              p/s — Я перепутал по пункту 2. Значения скрипт эти получает из формы как раз при клике, а не из галереии.
                                                                                                                                              Выдаёт последнюю выбранную опцию
                                                                                                                                            2. Виктор Долгий 15 июня 2017, 18:22 # 0
                                                                                                                                              Еще вопрос. Как лучше перехватить цену после выбора модификации (после обработки msOp2), чтобы конвертировать согласно курсу валют?
                                                                                                                                                1. Виктор Долгий 15 июня 2017, 21:52 # 0
                                                                                                                                                  Спасибо)
                                                                                                                                              1. Виктор Долгий 15 июня 2017, 21:42 # 0
                                                                                                                                                Было бы круто блокировать кнопку «Купить», пока цена не выставится, по типу того, как это делает компонент ExtraFields.
                                                                                                                                                1. Виктор Долгий 16 июня 2017, 15:25 # 0
                                                                                                                                                  Снова вопрос. Если в списке товаров (с mFilter), мы выбираем опции, то они выставляются и в каждом товаре (вчера с Володей выяснили, что работает с select`ом). Так вот, если, например, нужно опции проставлять чекбоксами, то остается активным только последняя опция в товаре.

                                                                                                                                                  Default.js: msOptionsPrice.Tools.setValue -> switch -> case tagName == 'INPUT' && tagType == 'checkbox'… В случае, если выбрано 2 опции в фильтре товаров, то тут он сначала выставляет первой опции галочку, потом снимает, потом снимает со второй, потом ставит...)) Стоит сделать проверку, думаю, на наличие опций из массива, а не перебирать, так 4 цикла получается. Дальше не успел, вернусь через пару часов за комп.
                                                                                                                                                  1. Виктор Долгий 16 июня 2017, 19:22 # +1
                                                                                                                                                    Предлагаю заменить:
                                                                                                                                                    value.filter(function (item, r) {
                                                                                                                                                        if ($this.val() == item) {
                                                                                                                                                            $this.prop('checked', true);
                                                                                                                                                        }
                                                                                                                                                        else {
                                                                                                                                                            $this.prop('checked', false);
                                                                                                                                                        }
                                                                                                                                                    }, this);
                                                                                                                                                    
                                                                                                                                                    на
                                                                                                                                                    if (msOptionsPrice.Tools.inArray($this.val(), value)) {
                                                                                                                                                        $this.prop('checked', true);
                                                                                                                                                    }
                                                                                                                                                    
                                                                                                                                                    , или что-то вроде того. Или я что-то не так понял в плане функционала?
                                                                                                                                                    1. Володя 17 июня 2017, 10:44 # +1
                                                                                                                                                      да, вполне верное замечание. Данный функционал сам не пользую потому не тестировал…
                                                                                                                                                      Внес правки, можно обновиться.
                                                                                                                                                      Спасибо!
                                                                                                                                                      1. Виктор Долгий 17 июня 2017, 14:10 # 0
                                                                                                                                                        Теперь следующая проблема в выставлении цен с этими чекбоксами:
                                                                                                                                                        1. В админке невозможно создать разные модификации с одним ключем, но разными значениями (чтобы создать наборы из комбинаций опций).
                                                                                                                                                        2. Если модификации выставлять с ценником +к стоимости товара, то на фронте выставляется стоимость по последней опции.

                                                                                                                                                        Эти два пункта исключают возможность выставлять цены опциями в чекбоксах))

                                                                                                                                                        Могу предоставить тот же сайт, он пока не очень работает, можешь там поэкспериментировать, если нужно.
                                                                                                                                                        1. Володя 17 июня 2017, 14:11 # 0
                                                                                                                                                          1. В админке невозможно создать разные модификации с одним ключем, но разными значениями (чтобы создать наборы из комбинаций опций).
                                                                                                                                                          это как?
                                                                                                                                                        2. Виктор Долгий 17 июня 2017, 14:11 # 0
                                                                                                                                                          Да, и после последнего обновления, цена у товара выставляется от последней модификации, а не указанная в самом товаре, не зависимо от того, выбрана она, или нет.
                                                                                                                                                          1. Володя 17 июня 2017, 14:12 # 0
                                                                                                                                                            пиши на почту, надо по месту смотреть…
                                                                                                                                                            1. Виктор Долгий 29 июня 2017, 18:05 # 0
                                                                                                                                                              Это был неведомый глюк, после пересоздания опций все стало ок.
                                                                                                                                                              1. terlim 03 июля 2017, 11:42 # 0
                                                                                                                                                                У меня похожий глюк. Пока не разобрался в чем дело, но началось после обновления PdoTools до 2.9.0
                                                                                                                                                                1. Володя 03 июля 2017, 12:46 # 0
                                                                                                                                                                  сомневаюсь что есть какая либо взаимосвязь с pdoTools.
                                                                                                                                                                  В любом случае есть ТП можно/ нужно писать туда по вопросам и тд…
                                                                                                                                                                  Спасибо!
                                                                                                                                                        3. Виктор Долгий 29 июня 2017, 18:03 # 0
                                                                                                                                                          Володя, еще один вопрос, думаю, кому-то пригодится, как посоветуешь проставлять в товарах еще и цены в долларах / евро, если, например, цена изначально в национальной валюте? Допустим, цену можно считать плагином на msopOnGetFullCost, но как донести эти доп. цены до товара (еще и аяксом)?
                                                                                                                                                          1. Володя 29 июня 2017, 18:36 # 0
                                                                                                                                                            пока никак не посоветую… над сесть подумать и тд… с ходу чтото ничего путного в головву не приходит.
                                                                                                                                                          2. Алексей 12 июля 2017, 12:12 # 0
                                                                                                                                                            Доброго дня.

                                                                                                                                                            В msOptionsPrice.modification увидел параметр «toPlaceholder» с параметрами Да/Нет.

                                                                                                                                                            Замечательно, а как плейсхолдер-то называется в который сниппет сохраняет результаты?
                                                                                                                                                            Ведь самому указать название нельзя
                                                                                                                                                            1. Володя 12 июля 2017, 12:16 # 0
                                                                                                                                                              Приветствую.
                                                                                                                                                              Это банальная очепятка в типе свойства.
                                                                                                                                                              просто задайте название плейсхолдера в параметре toPlaceholder
                                                                                                                                                              1. Володя 12 июля 2017, 12:17 # 0
                                                                                                                                                                c приходом шаблонизатора это вообщем то и не нужно…
                                                                                                                                                                1. Алексей 12 июля 2017, 12:22 # 0
                                                                                                                                                                  Спасибо за пояснение.
                                                                                                                                                                  1. Володя 12 июля 2017, 12:42 # 0
                                                                                                                                                                    пожалуйста!
                                                                                                                                                              2. info 12 июля 2017, 15:11 # 0
                                                                                                                                                                Не могу создать модификацию товара через админку. Ругается что поле цена не уникально. Также нельзя создать пару ключ-значение, не выводятся списки ключей и значений
                                                                                                                                                                1. Володя 12 июля 2017, 15:18 # 0
                                                                                                                                                                  Добрый день.
                                                                                                                                                                  Пишите в ТП
                                                                                                                                                                  Приложите доступы к админке и ссылку на проблемный товар.
                                                                                                                                                                  Спасибо!
                                                                                                                                                                2. Ника 14 июля 2017, 12:16 # 0
                                                                                                                                                                  Добрый день!
                                                                                                                                                                  Подскажите, пожалуйста! Как реализовать изменение цены не от количества, а от веса, с помощью данного модуля?


                                                                                                                                                                  Например, 1 кг продукта стоит 500 рублей. пользователь вводит, что хочет 333 грамма и товар с соответствующей ценой добавляется в корзину.
                                                                                                                                                                  1. Володя 14 июля 2017, 13:48 # 0
                                                                                                                                                                    Добрый день.
                                                                                                                                                                    Если поле вес предполагает свободное значение то можно реализовать через плагин.
                                                                                                                                                                    Пишите в ТП, решим.
                                                                                                                                                                    Спасибо!
                                                                                                                                                                  2. Константин Ильин 03 сентября 2017, 19:49 # 0
                                                                                                                                                                    Привет Володя, не могу утверждать, что это баг, но ко мне обратились с такой проблемой:
                                                                                                                                                                    При добавление в моификацию опции, отображались не все опции
                                                                                                                                                                    joxi.ru/82Qpan0sj73Kem

                                                                                                                                                                    Чтож полез в процессор «mgr/misc/option/getkeys.class.php», вывел массив в лог joxi.ru/1A5QnldhnYkE4A
                                                                                                                                                                    Там получил все опции нормально.

                                                                                                                                                                    Пошел дальше с мыслью, что где-то исключается и как вариант лимит стоит, посмотрел функцию getData(). Там установил лимит на 0 и начали отображаться все опции.
                                                                                                                                                                    joxi.ru/12M7daECM9X6xr

                                                                                                                                                                    Версия последняя.
                                                                                                                                                                    1. Володя 04 сентября 2017, 10:54 # 0
                                                                                                                                                                      там и не должны выбираться сразу все опции, снизу должна быть пагинация

                                                                                                                                                                      у тебя на скрине этого не видно, есть она или отсутствует у опций с кол-ом значений > 10
                                                                                                                                                                      1. Константин Ильин 04 сентября 2017, 12:37 # 0
                                                                                                                                                                        Вот вот, я тоже думал, что она должна быть, но ее нет… капец, как так
                                                                                                                                                                        1. Володя 04 сентября 2017, 12:40 # 0
                                                                                                                                                                          скинь в ТП доступы к админке и ссылку на товар где это можно увидеть, посмотрю в чем дело.
                                                                                                                                                                          Спасибо!
                                                                                                                                                                    2. Константин Ильин 08 сентября 2017, 16:00 # 0
                                                                                                                                                                      {$_modx - > runSnippet('!msOptionsPrice.modification', [
                                                                                                                                                                              'tpl' => 'tpl.imagess',
                                                                                                                                                                              'includeThumbs' => '360x800',
                                                                                                                                                                              'sortby' => 'rank',
                                                                                                                                                                              'processOptions' => 1
                                                                                                                                                                      ])}
                                                                                                                                                                      Володь, подскажи пожалуйста как можно отсортировать опции по rank у категории, rank хранится в ms2_category_options
                                                                                                                                                                      joxi.ru/D2PVZOJspybd3r
                                                                                                                                                                      1. Володя 08 сентября 2017, 17:11 # +1
                                                                                                                                                                        пока никак, будет время посмотрю этот момент.
                                                                                                                                                                        1. Володя 09 сентября 2017, 10:34 # 0
                                                                                                                                                                          привет. Я правильно понимаю что ты хочешь отсортировать опции конкретной модификации согласно порядку опций категории? Что в таком случае делать с опциями msProductData которых нет в категории?
                                                                                                                                                                          Опиши более детально что ты хочешь с этим сделать, спасибо!
                                                                                                                                                                          1. Константин Ильин 09 сентября 2017, 11:10 # 0
                                                                                                                                                                            По сути ты правильно описал то что я придумал. Но возможно у тебя есть другое предложение или идея как сортировать опции.
                                                                                                                                                                            Лучший пример — это ситуация:
                                                                                                                                                                            Есть 10 неких опций, Тест 1-10. Спустя месяцы захотелось добавить опцию Тест 11, но так чтобы она отображался в карточке товара после опции Тест 3.
                                                                                                                                                                            т.е.:
                                                                                                                                                                            Тест 1
                                                                                                                                                                            Тест 2
                                                                                                                                                                            Тест 3
                                                                                                                                                                            Тест 11
                                                                                                                                                                            Тест 4
                                                                                                                                                                            ...
                                                                                                                                                                            Тест 10
                                                                                                                                                                            
                                                                                                                                                                            Что в таком случае делать с опциями msProductData которых нет в категории?
                                                                                                                                                                            Вот я как то тебе задавал этот вопрос. Повторюсь, а зачем в списке опций для модификации, отображаются те опции которые вообще не должны быть у этой категории? joxi.ru/KAg7zleC4DBalA
                                                                                                                                                                            т.е. не просто так же идет назначение опции для категории при ее создании в настройках ms2

                                                                                                                                                                            Блин пока писал пост ты уже что-то сделал)))
                                                                                                                                                                            1. Володя 09 сентября 2017, 11:17 # +1
                                                                                                                                                                              Повторюсь, а зачем в списке опций для модификации, отображаются те опции которые вообще не должны быть у этой категории?
                                                                                                                                                                              это опции из таблицы msProductData и как бы они существуют для всех товаров. Я допустим только ими и пользуюсь, а вот этот «удобный для вас» механизм создания и всяких других операций с опциями мне вообще неинтересен...)

                                                                                                                                                                              Блин пока писал пост ты уже что-то сделал)))
                                                                                                                                                                              ну добавил сортировку по умолчанию, вроде то и надо было.
                                                                                                                                                                              1. Константин Ильин 09 сентября 2017, 11:31 # 0
                                                                                                                                                                                В админке при просмотре модификации работает и соответствует сортировке в категории.
                                                                                                                                                                                А на фронте что-то надо поменять? какой параметр? т.к. там отображается в конце
                                                                                                                                                                                {$_modx - > runSnippet('!msOptionsPrice.modification', [
                                                                                                                                                                                        'tpl' => 'tpl.imagess',
                                                                                                                                                                                        'includeThumbs' => '360x800',
                                                                                                                                                                                        'sortby' => 'rank',
                                                                                                                                                                                        'processOptions' => 1
                                                                                                                                                                                ])}
                                                                                                                                                                                1. Володя 09 сентября 2017, 11:40 # 0
                                                                                                                                                                                  ничего не надо менять, так все должно работать.
                                                                                                                                                                                  Если чтото не пашет пиши дальше уже в ТП, будем разбираться.
                                                                                                                                                                                  Спасибо!
                                                                                                                                                                          2. Володя 09 сентября 2017, 10:56 # +1
                                                                                                                                                                            добавил сортировку согласно rank по умолчанию. Если это то что было необходимо просто обновись и все заработает.
                                                                                                                                                                          3. Илья 21 сентября 2017, 14:30 # 0
                                                                                                                                                                            Здравствуйте,

                                                                                                                                                                            Есть возможность выводить в каталоге разные модификации товара (критерий размер-цена, как сделано в карточке товара на демо-сайте) с возможностью добавить их в корзину как отдельные товары?

                                                                                                                                                                            Спасибо.
                                                                                                                                                                            1. Володя 21 сентября 2017, 14:42 # 0
                                                                                                                                                                              Добрый день.
                                                                                                                                                                              Есть возможность выводить в каталоге разные модификации товара (критерий размер-цена, как сделано в карточке товара на демо-сайте)
                                                                                                                                                                              вы сейчас говорите о каталоге модификаций? Если да, то нет, на данный момент такой возможности нет. ТОлько если в каждом товаре запустить сниппет для вывода модификаций.
                                                                                                                                                                              1. Илья 21 сентября 2017, 14:49 # 0
                                                                                                                                                                                Нет, я спрашиваю только про вывод в категорию.

                                                                                                                                                                                Клиент хочет следующее:

                                                                                                                                                                                На странице каталога/категории есть несколько товаров, у каждого задана модификация размер-цена.
                                                                                                                                                                                В каждой карточке выведенной в каталог сделать отдельными строками ввод количества и возможность заказа каждой из модификаций как отдельный товар в корзине.

                                                                                                                                                                                Пример — есть пицца маргарита размером 32см, 40см и 50см. Я хочу заказать 3 маргариты 32см и 2 маргариты 40 см из каталога/категории товаров пицца.

                                                                                                                                                                                Это реализуемо?
                                                                                                                                                                                1. Володя 21 сентября 2017, 16:34 # +2
                                                                                                                                                                                  как и говорил выше
                                                                                                                                                                                  в каждом товаре запустить сниппет для вывода модификаций
                                                                                                                                                                                  пример
                                                                                                                                                                                  {'!pdoPage'|snippet: [
                                                                                                                                                                                  'element' => 'msProducts',
                                                                                                                                                                                  'tpl' => "@INLINE 
                                                                                                                                                                                  {'!msOptionsPrice.modification'|snippet: [
                                                                                                                                                                                  'product' => {{+id}},
                                                                                                                                                                                  ]}
                                                                                                                                                                                  "
                                                                                                                                                                                  ]}
                                                                                                                                                                                  
                                                                                                                                                                                  1. Илья 21 сентября 2017, 16:55 # 0
                                                                                                                                                                                    Т.е. я пропишу эту конструкцию в tpl.msProducts.row и будет мне счастье?
                                                                                                                                                                                    1. Володя 21 сентября 2017, 17:04 # 0
                                                                                                                                                                                      именно… можно создать тестовый сайт на modhost.pro/ и там экспериментировать.
                                                                                                                                                                                      1. Илья 21 сентября 2017, 17:06 # 0
                                                                                                                                                                                        Спасибо! теперь проект стал казаться менее проблемным)))
                                                                                                                                                                                        1. Володя 21 сентября 2017, 17:34 # 0
                                                                                                                                                                                          Пожалуйста!
                                                                                                                                                                                          По вопросам работы платных компонентов всегда можно (лучше) писать в ТП
                                                                                                                                                                                          1. Илья 21 сентября 2017, 17:39 # 0
                                                                                                                                                                                            Я собственно так обычно и делаю, пока планирую какие компоненты будут нужны и какой соответственно бюджет расходов на платные компоненты, поэтому здесь и беспокою.

                                                                                                                                                                                            Этим компонентом пока не пользовался, поэтому вопрос и возник, т.к. предположил что данный компонент такое может уметь делать.

                                                                                                                                                                                            Спасибо за подробный ответ! Как только согласуем ТЗ — в магазин за компонентом)
                                                                                                                                                                            2. Надир 14 октября 2017, 20:38 # 0
                                                                                                                                                                              Здравствуйте! С помощью вашего дополнения хочу реализовать подобный конфигуратор товара www.adidas.ru/mi-superstar-rt/4001936_M.html?cm_sp=MIADIDAS_CLP_MIADIDAS_HOME-_-MI_SUPERSTAR_RT-_-CTA_MI_SUPERSTAR_RT

                                                                                                                                                                              Скажите, есть ли возможность выводить отдельный набор изображений для каждой модификации? То есть не одно изображение на модификацию, а несколько (галерея модификации). Если нет, планируется ли добавить такой функционал? А если не планируете, можете ли рассмотреть возможность добавления такого функционала индивидуально?

                                                                                                                                                                              Спасибо
                                                                                                                                                                              1. Сергей 18 октября 2017, 08:59 # 0
                                                                                                                                                                                Здравствуйте! Используя данное дополнение на цветочном сайте столкнулся со следующей проблемой. Создал необходимые модификации, а точнее размер и упаковка
                                                                                                                                                                                [[!msOptions? &tpl=`tpl.bouquet-size`&options=`bouquet-size`]]
                                                                                                                                                                                ,
                                                                                                                                                                                [[!msOptions? &tpl=`tpl.product-option`&options=`package`]]
                                                                                                                                                                                и
                                                                                                                                                                                [[!msOptions? &tpl=`tpl.product-option` &options=`kraft`]]
                                                                                                                                                                                . Все работает великолепно но загвоздка, в том, что когда выбираем штучный товар скажем «Роза .....» и упаковку для неё, то price меняется с учетом модификации ( и это правильно) но если нам нужна не одна, а скажем пять «Роза .....» то при изменении count, цена за каждый товар будет прибавляться с учетом модификации. Следовательно вопрос такой, как сделать чтобы цена с модификацией (упаковка), прибавлялась только один раз к данному товару (count = 1), а если этого товара нам нужно больше одного (count > 1), то цена добавляется без учета цены за эту модификацию(упаковка)? Подскажите пожалуйста решение или место где копать.
                                                                                                                                                                                1. Володя 18 октября 2017, 11:32 # 0
                                                                                                                                                                                  Добрый день.
                                                                                                                                                                                  Возможно в данном случае с упаковкой нужно использовать чтото другое для модификации цены.
                                                                                                                                                                                  Напишите в ТП с указанием доступов к админке сайт и ссылкой на тестируемый товар. Посмотрю что можно сделать.
                                                                                                                                                                                  Спасибо!
                                                                                                                                                                                2. web3 16 ноября 2017, 09:46 # 0
                                                                                                                                                                                  Добрый день! Возможно ли как-то отсортировать вывод опций в другом порядке?
                                                                                                                                                                                  1. web3 16 ноября 2017, 10:26 # 0
                                                                                                                                                                                    Уже не актуально, нашел что искал…
                                                                                                                                                                                    &sortOptions=`size:SORT_ASC:SORT_NUMERIC`
                                                                                                                                                                                    1. Володя 16 ноября 2017, 10:35 # 0
                                                                                                                                                                                      да, с помощью msOptionsPrice.option можно сортировать опции.
                                                                                                                                                                                      Если вас это устраивает то отлично.
                                                                                                                                                                                  2. Илья Александрович Вчера в 16:47 # 0
                                                                                                                                                                                    подскажите как настроить модификации с опциями товаров? или это не работает?
                                                                                                                                                                                    пример:
                                                                                                                                                                                    выбор размера, влияет на цену и вес — это как у вас в примерах, всё отлично работает.
                                                                                                                                                                                    есть у меня ещё опции товаров, ключ p6 — Список с автодополнением, там разные значения так скажем.
                                                                                                                                                                                    а как сделать что бы они менялись при выборе размера, в модификации добавил
                                                                                                                                                                                    пробовал и так
                                                                                                                                                                                    [[!msOptions? &tpl=`tpl.product-option` &options=`p6`]]
                                                                                                                                                                                    и так
                                                                                                                                                                                    <span class='msoptionsprice-p6 msoptionsprice-[[*id]]'>[[+p6]]</span>
                                                                                                                                                                                    1. Володя Вчера в 17:08 # 0
                                                                                                                                                                                      а как сделать что бы они менялись при выборе размера
                                                                                                                                                                                      — оформить как опции товара и тогда они будут меняться
                                                                                                                                                                                      — написать js на событие msoptionsprice_product_action и сделать смену
                                                                                                                                                                                      подробности и вопросы задавайте в ТП, спасибо!
                                                                                                                                                                                    Вы должны авторизоваться, чтобы оставлять комментарии.