Володя

Володя

С нами с 18 декабря 2012; Место в рейтинге пользователей: #4
Володя
27 декабря 2016, 17:23
0
{foreach $product.options as $key => $option}
      {set $caption = $product[$key ~ '.caption']}
      {set $caption = $caption ? $caption : ('ms2_product_' ~ $key) | lexicon}
      {$caption} - {$option} 
{/foreach}
Володя
27 декабря 2016, 17:22
0
Михаил, где конкретнее? Фильтрация по опциям тоже нужна?
Приложите скриншот для большей ясности.
Спасибо!
Володя
26 декабря 2016, 08:34
0
Попробуйте повторить ситуацию на тестовом сайте и скиньте доступы в личку, посмотрю в чем дело.
Спасибо!
Володя
22 декабря 2016, 14:16
0
удалите файл lexicon.js, он сформируется заново с внесенными изменениями
Володя
20 декабря 2016, 07:31
0
Доброе утро.
Из коробки такого нет.
Можно написать свой класс в который заложить нужную логику.
При покупки 3 любых товаров
Вы подразумеваете под покупкой добавление продукта в корзину? или же покупку — создание заказа и последующую оплату.
Володя
14 декабря 2016, 12:33
0
напишите в ТП с указанием доступов к сайту и странице где можно увидеть данную проблему.
Спасибо!
Володя
13 декабря 2016, 10:48
+1
Используется библиотека sypexgeo.net/ru/download/
все данные берутся оттуда.
Володя
09 декабря 2016, 13:38
0
Петр в новой версии прямая ссылка на оплату
Володя
09 декабря 2016, 13:32
0
Петр можно это где то посмотреть в действии?
Володя
09 декабря 2016, 13:17
0
где эта ошибка? На сайте Яндекс Кассы или на вашем? Скрин окна с консолью можете приложить?
Володя
09 декабря 2016, 11:11
0
allow policy такой не видел, но бывает что-то наподобие. Скорее на стороне ЯК работы или что то еще.
Лечилось отправлением им письма с указанием неполадок. Решают оперативно.
Попробуйте им отписать.
Володя
08 декабря 2016, 19:16
+1
если у вас свежая версия магазина, можно обновиться. Но я бы советовал деинсталлировать старую версию, потом установить новую.
Не забываем перед деинсталляцией сохранить настройки и у кого холдирование сохранить файлы сертификата и ключ.
Володя
08 декабря 2016, 15:50
0
либо смоделируйте ситуацию на тестовом сайте, либо скиньте доступ в ТП.
Не видя тяжело чтото советовать.

И можно ли как то избавится от вывода опций через снипет [[msOptions]] и заменить его на простой input?
можно а зачем?
Володя
08 декабря 2016, 15:03
+1
для уже работающий ИМ после обновления в обязательном порядке проверить работу оплаты.
Так же заполнить настройки оплаты в новом разделе mspYaCassa
Володя
08 декабря 2016, 14:45
0
скорее всего вам нужно обновить пакет до последней версии
Володя
08 декабря 2016, 10:46
0
плагин modx, или ms2? что-то не совсем понял куда его.
плагин modx конечно на событие msopOnGetModificationById
Володя
08 декабря 2016, 10:00
0
Или это делается когда в модификацию добавляются ключи?
да, все верно.
т.е. надо внимательно следить за тем, чтобы на 1 размер 2 мощности не привязать?
Да наверно нужно как то следить.
Володя
07 декабря 2016, 21:44
1
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);
				}
			}
	    }
	}
});