Всего 125 671 комментарий

Андрей
05 февраля 2021, 10:03
0
))
Обычные модификации не подходят, ввиду крайне не удобного администрирования.
Попытаюсь объяснить подробнее:
Мебель, выбор ткани или выбор цвета.
Цвета и ткани делятся на ценовые категории, внутри каждой много делений по названиям тканей, а каждая ткань в свою очередь представляет из себя множество фото в разных цветовых решениях.
Категории тканей — это у нас категории товаров. Сама ткань — ресурс (товар), фото тканей — галерея изображений.
Суть в том, что в зависимости от товара наценка на категории тканей разная. Поэтому вводим такую опцию — Категории тканей, которая содержит просто перечисление категорий (категория 1, категория2, категория 3 и т.д.), а в модификациях мы указываем наценку, допустим: кат1 — 0, кат 2 — +500, кат 3 + 1000 и.т.д
При нажатии на сайте ссылки выбор ткани всплывает модальное окно в которое подгружаются только те ресурсы, названия родителя которых совпадают с значениями опций (где-то может быть 5 категорий ткани, где-то 8) и они раскидываются по вкладкам (табам), каждый таб — отдельная категория ткани. и вот сюда мне нужно погрузить наценку категории, а для этого — получить модификации продукта по опции Категория тканей и соответственно наценку на каждое из значений опции
Дмитрий
05 февраля 2021, 08:52
0
Как я заменил, ползунок сначала показывает цены по одной категории, затем по другой. (Но это не точно).
Скорее всего просто в рандомном порядке
Дмитрий
05 февраля 2021, 08:48
0
Цены указаны только в целых числах, кеш много раз чистил((
Роман
05 февраля 2021, 08:45
0
Что-то показывается не правильно. Либо это копейки или кэш.
Alexey Medvedev
05 февраля 2021, 02:19
0
«Вставлю и я свои 5 копеек» :)
@Василий Наумкин Спасибо тебе за участие в развитии сообщества и созданные инструменты. Ты внес ощутительный вклад — ты это сам прекрасно знаешь.
Да, все мы выгораем постепенно и теряем вдохновение к работе — к сожалению, такая у нас реальность.
От себя, я тебе желаю позитива, хороших и интересных проектов, профессионального роста и счастья тебе и твоим близким.
А теперь по делу:
Узнал поздно о твоем решении, мог бы помочь с мордой на VueJS (NuxtJS), но раз Иван уже взялся за modx.pro, то ждем его на React :)
Касательно, pdoTools предлагаю назначить несколько мейнтейнеров из сообщества (@Илья Уткин,@Павел Гвоздь,@Сергей Шлоков) с правом принятия пулл-реквестов и мержа в основную ветку, чтобы они проводили код-ревью и принимать решения по добавлению изменений в репозиторий. Я бы предложил себя, но этот год начался очень нагружено и боюсь не оправдать ожиданий из-за нехватки времени.

Удачи тебе :)
Дима Сайт old см. профиль
05 февраля 2021, 00:59
+4
Под обсуждение: Общеизвестно, что в сообществе есть возможность и поощряется говорить «спасибо» за ответы на вопросы, добавляя + в «карму».
А все ли в курсе, что некоторые программисты и веб-мастера люди видимо очень стеснительные и после получения ответа на свой вопрос, чтобы в будущем не было «стыдно что задавал глупые вопросы» просто берут и снимают их с публикации.

И вот она, Проблема:
От снятия топиков с публикации есть два сайд-эффекта, которые не очевидны и не приятны:
  1. Вопрос (и ответ) не найдут поиском другие (а там готовые решения конкретных проблем)
  2. Карма в необпуликованных топиках не учитывается
Тут у нас рейтинг особо ни на что сам по себе не влияет но как-то пару лет назад приболел и работать не хотелось, взялся отвечать на вопросы, зеленые плюсики были доп. мотивацией и предавали некой геймификации процессу. За пару дней плотной «форумной жизни» я не раз столкнулся с тем, что у тебя на почте лежит письмо от modx.pro и там автор например отвечает «спасибо решение мне помогло», кликаешь посмотреть на зеленый плюсик и порадоваться что кому-то помог, а там — 403. Мотивация отвечать… если не пропадает, то падает. А как бы иногда было приятно на вопрос от коллеги ответь «чекни на modx.pro — я там отвечал кому-то по этой теме», правда же?

Решение 1, возможно имеет смысл запретить снимать с публикации топики в которых есть ответы или хотя бы запретить делать это быстро?

Или еще интереснее Решение 2: я прямо уверен что некоторые с публикации снимают топики чтобы потом при откликах в разделе Работа, заказчик не пошел в профиль — не посмотрел топики и не усомнился в компетенции специалиста «а чего это он вопросы задает, сам не шарит что-ли?». Заказчики вообще нечасто в курсе специфики наших профессий :) и намного хуже когда разработчик перестает учиться…
Так может сделаем возможность вместо снятия с публикации просто скрывать ссылку и имя автора топика в Вопросах?

Можно еще в зависимости от рейтинга автора (или даты регистрации) писать вместо имени «МодЫксер» или «Опытный МодЫксер», «Новичек» и т.п. чтобы намекнуть читателю об уровне топикстартера, как было на «теплых ламповых» форумах) (может это доп.усложнение и перебор, конечно, но возможность анонимизации в вопросах точно позволила бы ценным ответам задерживаться в паблике, что для сообщества точно было бы полезным!
Артур Шевченко
05 февраля 2021, 00:48
-1
Ничего не понял, но очень интересно. Почему просто не сделать нужную модификацию?
Андрей
04 февраля 2021, 23:29
0
Не уверен))
Суть такова: внутри товара я получаю некий ресурс — в галерее которых цвета.
В тоже время у этого товара есть опция, в модификациях которой указана наценка.

Проще говоря, есть группы лдсп и на каждую группу по названию (категория 1, категория 2 и т.д.) есть наценка. Вот ее и нужно подтянуть.
Артур Шевченко
04 февраля 2021, 23:19
-1
А зачем? Вы уверены, что ответ на ваш вопрос является единственно верным решением вашей задачи?
Николай Савин
04 февраля 2021, 21:27
0
Нашел ошибку.
Файл msynccataloghandler метод getCategoryData строка 628
Должна проверяться настройка $this->config['category_by_name'] а не $this->config['parent_by_name']
Из за этого сопоставление по имени не работает
Georg
04 февраля 2021, 19:45
0
Огромное человеческое спасибо
Николай Савин
04 февраля 2021, 19:22
0
Я бы кстати и здесь вопросы почистил. Удалить к примеру те что без ответа и срок давности хотя бы два года.
А то висят мертвым грузом
Андрей
04 февраля 2021, 19:11
0
Ставил бОльший приоритет. И штука в том что в одном коде одна часть товаров нормально работает:
$products = $modx->getObject('msProduct', $product->get('id'));
	

    		if ($products->get('parent') == $plamgasCatsId) {
    			
    			$price_product_id = $products->get('price_id_product');
				$para = $products->get('para')[0];

    			foreach ($price_product_id as $product_id) {
					$res = $modx->getObject('msProduct',$product_id);
						if ($res) {
							$price_sostav = $res->get('price');
							$price_sum += $price_sostav;
							if ($para[0] == 1) {
								$price_sum = $price_sum*2;
							}
						}
				}
				
				$price_sale = $price_sum * 0.95;
    			$product->set('price', $price_sale);
				//$product->set('price', $price_sum);

    			
    		}
А другая часть, которая должна применять скидку к товарам одной категории — не работает

else {
    			
    				$pids = $modx->getParentIds($products->get('id'), 10, array('context' => 'web'));
	    			if (in_array($target, $pids)) {
	    				$price_sale = $product->get('price') * 0.95;
	    			}
	    		
    		}
    		
    		$product->set('price', $price_sale);
Евгений Webinmd
04 февраля 2021, 19:03
0
там есть такая штука как приоритет плагинов, поиграйте там со значениями, чтобы ваш плагин срабатывал после msOptionPrice
Андрей
04 февраля 2021, 18:55
0
Добавил такие строки:
$returned_values = & $modx->event->returnedValues;
$values =  $modx->event->params['data'];
$returned_values['price'] = $price_sale;
все равно не меняет ценник.
Я тут плагины поотключал и выяснил что при отключении плагина msOptionPrice все работает. Но вот где он ценник перебивает ума не приложу
Евгений Webinmd
04 февраля 2021, 18:44
0
а, точно, заработался, но если попробовать $returned_values = & $modx->event->returnedValues; вот это впихнуть в твой вариант?
Андрей
04 февраля 2021, 18:39
0
А так он меняет ценник в самой карточке товара, а нужно чтобы в корзине при добавлении
Евгений Webinmd
04 февраля 2021, 18:31
0
а если так:
case 'msOnGetProductPrice': 
          $returned_values = & $modx->event->returnedValues;
          $values =  $modx->event->params['data'];
           $returned_values['price'] = 300;
        break;