Юрий

Юрий

С нами с 13 декабря 2018; Место в рейтинге пользователей: #11982
Юрий
25 июня 2023, 15:41
0
Спасибо, не догадался
Юрий
18 сентября 2020, 20:46
0
Здравствуйте. Сделал все по вашей инструкции. После чего страница оформления заказа выдаёт ошибку 500
Юрий
03 мая 2020, 14:56
1
0
1) Указать у производителя соответствующую страницу и на ней вызывать сниппет (для каждого производителя придется создавать отдельную страницу).
Такой вариант не подходит требования были именно выводить все товары в категории с разбивкой по производителям.

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

Сниппет miniShopVendorsList
<?php

$output = '';
$categoryId = (int)$modx->getOption('category', $scriptProperties, -1);

if ($categoryId >= 0) {
  $categoryEntries = [];
  
  $categoriesQuery = $modx->newQuery('modResource');
  $categoriesQuery->where(array(
     'parent:IN' => array($categoryId),
     'deleted' => false,
     'hidemenu' => false,
     'published' => true,
  ));
  $categoriesResources = $modx->getCollection('modResource', $categoriesQuery);
  
  foreach ($categoriesResources as $categoryResource) {
    $categoryEntries[] = $categoryResource->get('id');
  }
  
  if (!empty($categoryEntries)) {
    $vendorsListQuery = $modx->query("SELECT id, name FROM modx_ms2_vendors");
    $vendorsListArray = $vendorsListQuery->fetchAll(PDO::FETCH_ASSOC);
    
    if (!empty($vendorsListArray)) {
      $tpl = $modx->getParser()->getElement('modChunk', 'miniShopVendorsProductsList');
      $tpl->setCacheable(false);
      
      foreach ($vendorsListArray as $vendorRow) {
        $vendorData = $vendorRow;
        $vendorData['id'] = (int) $vendorData['id'];
        
        $vendorId = $modx->quote($vendorData['id'], PDO::PARAM_INT);
        
        $vendorProductsQuery = $modx->query("SELECT id FROM modx_ms2_products WHERE vendor = $vendorId");
        $vendorProductsArray = $vendorProductsQuery->fetchAll(PDO::FETCH_ASSOC);
    
        foreach ($vendorProductsArray as $vendorProductRow) {
          $vendorProductId = (int) $vendorProductRow['id'];
          if (in_array($vendorProductId, $categoryEntries)) {
            $vendorData['productsList'][] = $vendorProductId;
          }
        }
        $vendorData['productsList'] = implode(', ', $vendorData['productsList']);
        
        if (!empty($vendorData['productsList'])) {
          $tpl->_processed = false;
          $output .= $tpl->process($vendorData);
        }
        
      }
      
    }
    
  }
  
}

return $output;
Вывод на странице
<div class="col-12">
  <h3>[[+name]]</h3> // Название бренда
</div>

// Вывод товаров этого бренда

[[!msProducts?
  &parents=`0`
  &resources=`[[+productsList]]`
  &tpl=`catalog_list`
]]
но так как страница, скорее всего окажется очень большой и будет долго грузиться, то никто не мешает дописать аякс подгрузку на скролл.
В данном примере товаров всего около 100 шт. в 6 категориях и 5-6 брендов. В итоге на одной странице не больше 10-20 товаров. Поэтому в этом примере обошлись без ajax подгрузки.

PS код писал не сам, помог знакомый программист. Код писался «на коленке» по быстрому, если есть предложения по оптимизации и улучшению welcome
Юрий
16 декабря 2019, 16:26
0
Дополнение работает. В инкогнито работает. Возвращаюсь в обычный режим не удаляется. Буду искать. Спасибо
Юрий
16 декабря 2019, 16:12
0
Да, я всё вычистил. кеш браузера, core/cashe, Полностью удалил дополнения. Переустановил не помогло. Убираю галочку. Сохраняю открываю опцию галочка на месте.
Юрий
16 декабря 2019, 15:29
0
Подскажите. У меня если отметить «Показать в фильтрах», а потом снять отметку то она возвращается. Получается что я не могу удалить опцию из фильтра если один раз её добавил?
Юрий
05 сентября 2019, 13:33
0
В источнике файлов внесите размеры для больших изображений
{"small":{"w":75,"h":49,"q":100,"zc":"1","bg":"f5f5f5"},"big":{"w":701,"h":491,"q":100,"zc":"1","bg":"f5f5f5"}}
Где big ваш размер изображений
В чанке tpl.msGallery укажите big
Юрий
27 августа 2019, 11:59
0
Да, спасибо, уже понял
Юрий
27 августа 2019, 11:18
0
Спасибо
Юрий
27 августа 2019, 11:16
0
Да нет, чанк выводится именно из кода выше.
Юрий
06 июня 2019, 13:12
0
Да, забыл перенести ключ, спасибо
Юрий
01 июня 2019, 17:53
0
Спасибо. Помогло, видимо где-то что-то упустил
Юрий
01 июня 2019, 16:34
0
Да. Не помогло. На вкладке категории товара стоит «Заблокирован»
Юрий
07 апреля 2019, 19:34
0
Ведь знал что что-то в этом духе, спасибо. Всё сразу встало на свои места
Юрий
07 апреля 2019, 19:06
0
Может я что-то не понимаю но
Юрий
17 декабря 2018, 14:13
0
Проблему решил, проблема была в следующем — при копировании сайта выставил в настройках «Статус сайта» — нет. Пол дня искал проблему, писал в службу поддержки двух хостингов, переписывал, и перезаписывал все конфиги по 10 раз. В итоге «статус сайта» поставил да. Установилось нормально. Может кому поможет.