Всего 125 668 комментариев

Андрей
05 февраля 2021, 14:52
0
1. Товар Диван Амстердам. У него есть опция Категории тканей, со значениями: Категория 1, Категория 2, Категория 3 (для примера)
2. Есть в дереве ресурсов такая структура, как вы писали выше:
— Категория-1
----Ткань-1
----Ткань-2
----Ткань-3
— Категория-2
----Ткань-4
----Ткань-5
----Ткань-6
— Категория-3
----Ткань-7
----Ткань-8
----Ткань-9
Товар-ткань в данном случае лишь для удобства структурирования — он может быть и простым ресурсом. Главное — внутри него есть галерея с фото тканей.
3. При клике в карточке товара Дивана по кнопке выбора ткани открывается модальное окно в которой в виде табов подгружаются категории в каждом из табов идут галереи из ресурсов, дочерних к данной категории.

Пример в скринах
prnt.sc/ye2m65
prnt.sc/ye2o7m
prnt.sc/ye2q5p
Артур Шевченко
05 февраля 2021, 14:42
-1
И у одной ткани — товара — может быть до 8 значений в опции Категория ткани, так?
Андрей
05 февраля 2021, 14:41
0
Значение опции = Наименованию категории в дереве
Артур Шевченко
05 февраля 2021, 14:38
-1
Это я понял, что показывает опция? отношение к категории в дереве?
Андрей
05 февраля 2021, 14:34
0
В дереве категории — это ресурсы типа Категория товаров.
В опции — это опция типа «Список с автодополнением»
Артур Шевченко
05 февраля 2021, 14:33
-1
Вы не ответили на мой вопрос, а это важно для понимания, Категории в дереве и Категории в опциях это разные сущности?
Andrei
05 февраля 2021, 14:19
0
Здесь написано много хороших вещей для доработки. Меня бы как владельца магазина, который иногда что-то дорабатывает, очень интересует вот что:
1. Нормальный Поиск. Старый был тоже «такое», но там были сортировки, вес и тп. Сейчас вообще аут
2. Здесь собрано много крутейших готовых решений и просто каких-то небольших примеров и кусочков, которые нужно «условно» валидировать.
3. Ну и фриланс фрилансом, но в разделе Работа как-то переделать саму модель. Вы ведь сами на этом можете зарабатывать, как на комиссии, так и решениями. Но должен быть как-то рейтинг и у заказчика, и у специалиста. Чтоб были гарантии результата
Андрей
05 февраля 2021, 14:12
0
Выкладываю свой полный код, помогите понять почему msOptionPrice своим плагином перебивает мой, приоритеты у моего стоят выше

<?php
$plamgasCatsId = 10535;
$target = 6;

switch ($modx->event->name) {
	
	case 'msOnBeforeAddToCart':
		
    
	$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;
    			
    		}
    		
    		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);
    
    break;

}
Henk Everts
05 февраля 2021, 13:42
+4
Привет друзья!

We're going to investigate how we can add realtime Russian translations to the livestream of the event. Please contact me if you have any ideas on this or when you want to offer your help: henk@sterc.com

Привет из Нидерландов!
Андрей
05 февраля 2021, 13:39
0
Принцип такой:
Свой модификатор обходит значения опции и по названию находит ID ресурсов.
Далее из них формируются табы
{var $tabs = $_modx->getResources(
                        [
                            'published' => 1,
                            'deleted' => 0,
                            'id:IN' => $_modx->resource.color|getPageIDsByPagetitle,
                        ],
                        [
                        'class_key' => 'msCategory',
                        'sortby' => 'menuindex',
                        'sortdir' => 'ASC',
                        'limit' => 0,
                        'select' => 'id,pagetitle'
                        ]
                    )}

                    <ul class="fabric-tabs">
                        {foreach $tabs as $tab}
                            <li class="tab-link {$tab@index == 0 ? 'current' : ''}" data-tab="tab-{$tab.id}">{$tab.pagetitle}</li>
                        {/foreach}
                    </ul>
А уже внутри таба выдергиваются ресурсы (ткани) и их галереи
Вот кусок кода, в котором немного иная логика — ценник единый на все товары и поэтому задается в TV поле категории. А мне нужно сейчас перевести ее на модификации
{if $.post.id != ''}
    {'!pdoResources'|snippet:[
        'parents' => $.post.id,
        'class' => 'msProduct'
        'where' => ['class_key' => 'msProduct'],
        'limit' => 0,
        'leftJoin' => [
            'TVCategory' => [
                'class' => 'modTemplateVarResource',
                'on' => 'msProduct.parent = TVCategory.contentid AND TVCategory.tmplvarid = 6',
            ],
            "fabricType" => [
                "class" => "msProductOption",
                "on" => "fabricType.key = 'tkan_type' and fabricType.product_id = msProduct.id"
            ]
        ],
        'select' => 'msProduct.id,parent,pagetitle,TVCategory.value as category_price, fabricType.value as fabric_type',
        'tpl' => '@INLINE
            <div class="select-color-gallery" data-type="{$fabric_type}">
                {$category_price|setPlaceholder:"category_price"}
                {"!msGallery"|snippet:[
                    "product" => $id,
                    "tpl" => "tpl.selectFabric",
                ]}
            </div>
        ',
    ]}
{/if}
Александр
05 февраля 2021, 13:38
0
Спасибо, воспользовался ссылкой, все встало корректно и работает.
Scorp Satex
05 февраля 2021, 13:22
0
Похоже что нет.

github.com/modxcms/revolution/pull/15335
Артур Шевченко
05 февраля 2021, 13:19
-1
Если Категории в дереве и Категории в опциях это разные сущности, то они должны называться по-разному, если одинаковые, то зачем их дублировать?
Артур Шевченко
05 февраля 2021, 13:17
-1
А почему категории в опции называются так же как и категории в дереве и при этом вы говорите. что товар одновременно может быть только в одной категории, хотя в опции их может быть до 8?
Игорь Терентьев
05 февраля 2021, 13:12
0
Теперь есть событие msOnGetProductFields:
<?php
switch($modx->event->name) { 
    case 'msOnGetProductFields':
        $returned_values = & $modx->event->returnedValues;
        $values =  $modx->event->params['data'];
          
        $returned_values['price'] = $values['price'] * 2;
        $returned_values['old_price'] = $values['price'] * 3;
        $returned_values['article'] = 'custom_article';
        $returned_values['weight'] = 222;
    	break;
}
Андрей
05 февраля 2021, 12:58
0
Те же, и называются также. Но в дере допустим 13 категорий, а у товаров может быть только 8, значит в опции у него будет до 8 категории значения.
Хотя это редко. В основном везде у всех полный перечень. да и опции ввелись только из-за того, что наценка разная от товара к товару.
Артур Шевченко
05 февраля 2021, 12:55
-1
А в опции Категории тканей какие категории перечислены, не те же, что в дереве?
Дмитрий
05 февраля 2021, 12:54
0
У меня вообще нет компонента SeoFilter ))
Сергей
05 февраля 2021, 12:53
0
Добрый день! Есть возможность сохранять в формате word?
Андрей
05 февраля 2021, 12:51
0
нет, ткани могут быть только в одной категории.