epic

epic

С нами с 16 марта 2024; Место в рейтинге пользователей: #994

Большой интернет магазина на MiniShop2

Привет, сразу скажу, ни разу не программистка, по этому вопрос может показаться простым, но все же нужно предварительно узнать, что бы не собрать все возможные проблемы. Подскажите пожалуйста кто имел опыт работы с большими магазинами. Хочу перенести магазин на ms2, накупить компонентов… и появилось несколько вопросов.

В магазине около 30к товаров, у товаров в каталоге, в сумме, более 100 атрибутов (помимо стандартных свойств: цвет, размер, вес, цена...) в общем, то есть у каждого примерно 10-20 разных дополнительных атрибутов.
Алина
07 июня 2020, 14:31
modx.pro
1
2 206
+1

Генерация файла sitemap.xml для мультиязычного сайта

Многие из нас делают мультиязычные сайты на контекстах. Контексты в MODx — вообще очень крутая штука, наверное, одна из самых крутых. На текущем большом мультиязычном проекте, SEO оптимизатор скинул мне статью в гугле и сказал, что нужно оптимизировать сайт под неё. Вопрос по теме задавали аж два года назад и ответов не последовало. Но народ вроде дал мотивацию тратить время на статью…
iWatchYouFromAfar
03 марта 2020, 22:28
modx.pro
17
5 734
+19

Ошибка с msFieldsManager [Решено]

Добрый день.

Когда захожу в раздел список полей, то там нет не единого поля joxi.ru/zANJvYgT6x4NDA но полей там должно быть куча.

В логах только одна ошибка:
[2020-02-28 07:30:21] (ERROR @ /home/c/cn71901/site.ru/public_html/core/xpdo/om/xpdoobject.class.php : 240) Error 42S22 executing statement: 
Array
(
    [0] => 42S22
    [1] => 1054
    [2] => Unknown column 'MsfmFields.unit' in 'field list'
)
Помоги пожалуйста, как исправить. Если я правильно понял, то в БД есть/появилась кривая запись (может менеджеры какое наименование занесли с кавычками или еще как).

В БД пошарил, но что-то не смог найти и совсем не помню, что бы создавал поле «unit»

В ТП обратится не могу, ругается:
Вы купили это дополнение 13.02.2018 и с тех пор прошло уже больше года. Сожалеем, но вы больше не можете обращаться за поддержкой по этой покупке.
Буду благодарен за помощь, спасибо.
Роман
28 февраля 2020, 07:37
modx.pro
1
1 030
0

[multiSite] - Мультисайт на MODX

Привет! Компонент реализует собственно мультисайт на modx. Что он делает по факту? В зависимости от города он ищет во всей странице ключи в соответствии вашего паттерна и заменяет их на содержимое конкретно этого города.


Pavel Zarubin
10 декабря 2019, 03:17
modx.pro
13
2 424
+23

[UserLocation] - Геолокация и выбор города пользователя

Компонент [UserLocation] позволяет определить локацию пользователя и вывести список доступных локаций.



Особенности
— определение локации пользователя по ip
— готовая база городов и регионов России, возможность импорта/ экспорта своих локаций
— в отличие от CitySelect оперирует локациями созданными в базе данных. Позволяет добавить/ изменить нужную локацию под себя.

Володя
22 октября 2019, 09:01
modx.pro
1
4 013
+7

Как определить поддомен в Robots.txt?

Есть задачка
Сделал сайт с поддоменами (региональными)
Прикрутил при помощи создания ресурсов sitemap.xml и robots.txt

Теперь ломаю голову, как скрыть в файле robots.txt страницы блога на всех поддоменах а на основном оставить.

Для реализации поддоменов использовал компонент cityFields
Буду очень благодарен за помощь!
Андрей
27 июня 2019, 09:23
modx.pro
1
1 408
0

Автоматическое создание артикула для miniShop2 (с проверкой на уникальность)

Три года назад этот вопрос поднимался вот здесь.
В результате есть работающий код:
<?php
if ( $modx->event->name != "OnDocFormSave" || $resource->get('class_key') != 'msProduct' || !empty($resource->get('article')) ) return;
$resource->set('article', substr($resource->get('alias'),0,2).'-'.$resource->get('parent').$resource->get('id'));
$resource->save();
$resource->clearCache();
Артикулы получаются типа: pl-38125
Также есть вариант для TV генерирующий артикулы в числовом виде.
<?php
if ($modx->event->name == "OnDocFormSave") 
{    
    $tv = 'articul';
    $id = $resource->get('id');
    $parent = $resource->get('parent');
    $tvv = $resource->getTVValue($tv);
    
    if (empty($tvv))
    {
	   switch ($str=strlen($parent.$id))
       {
         case ($str <= 4): $article = mt_rand(0, 9).mt_rand(0, 9).$parent.$id; break;     
         case ($str == 5): $article = mt_rand(0, 9).$parent.$id; break;   
         case ($str == 6): $article = $parent.$id; break;
         case ($str >= 7): $article = substr($parent.$id, 1); break;
       }		
               $resource->setTVValue($tv, $article);
    }
}
Просьба специалистам в PHP модифицировать первый код так, чтобы в miniShop2 можно было создавать артикулы в цифровом виде.
Ну а если этот плагин будет ещё проверять на уникальность артикула, ему вообще цены не будет ))

РЕШЕНИЕ (чтобы не копаться в комментах).
Артикулы получаются уникальные типа: 38125 — ID категории и товара
<?php
if ( $modx->event->name != "OnDocFormSave" || $resource->get('class_key') != 'msProduct' || !empty($resource->get('article')) ) return;
$resource->set('article', $resource->get('parent').$resource->get('id'));
$resource->save();
$resource->clearCache();
Также есть вариант артикула формата: Случайное число от 0 до 999-IDродитель-IDтовара
<?php
if ( $modx->event->name != "OnDocFormSave" || $resource->get('class_key') != 'msProduct' || !empty($resource->get('article')) ) return;

// Создаем артикул формата Случайное число от 0 до 999-IDродитель-IDтовара
$resource->set('article', mt_rand(0, 999).$resource->get('parent').$resource->get('id'));
$resource->save();
$resource->clearCache();
Благодарность iWatchYouFromAfar и Николай приветствуется ))
websfera
04 мая 2019, 11:44
modx.pro
2
1 678
-2

Медленная загрузка страниц

Здравствуйте.
Большая просьба помочь.
По мере наполнения сайта товаром, время загрузки страниц становится все больше и больше.
Сейчас на сайте порядка 10 тысяч товаров. Если заходим на отдельные категории товаров (200-300 шт), то загрузка сайта более менее в пределах нормы 2-4 сек. Но если переходим в общий каталог, то все, можно идти чай пить скорость загрузки 18-25 сек.
Включил &showLog=`1`, он мне показал «17.8670690: Fired paginator: „pdoPage“».
Далее я попробовал сделать в этом же каталоге фильтрацию, это заняло примерно столько же времени.
Какие был сделаны работы: включено кеширование на VPS сервере, переход на ssd диски, проверка всех сниппетов на кеширование, подключен MinifyX для скриптов и стилей.
Записал видео работы по ссылке: vk.com/video25923943_456239105
Ссылка на каталог: dealsport.ru/katalog/
Ильяс
23 марта 2019, 23:16
modx.pro
1
1 925
+1

[mFilter2] Вывод товаров со смежными значениями

Небольшая заготовка из вчерашнего рукоделия.

Имеем сайт с подбором товаров по характеристикам, реализованным на mFilter2.
Один из параметров «Мощность активная» выглядит так (увеличение по клику):


Как видно, есть большое разнообразие товаров с близкими значениями мощностей, но общее количество товаров не столь велико.
Это приводит к тому, что когда посетитель выбирает, к примеру, мощность 10 кВт, то он видит 1 товар в результатах подбора. А специфика продукции такова, что логично предложить пользователю аналогичные изделия как с чуть меньшей мощностью, например 9 кВт, так и с большей, до 12-15 кВт.

Нет, конечно можно сказать, что пусть нащелкает нужные цифры в подборе, но всегда есть «но». На страницу «Товары с мощностью 10 кВт» (где уже стоит галочка в фильтре) пользователь приходит из поисковых систем, фильтра он не видел и не нажимал. Если на странице будет 1 товар, пользователь может быстро уйти, решив, что мы предлагаем крайне скудный ассортимент, так и не увидев, что есть фильтр.

В общем, небольшая зарисовка на тему того, как при выборе в фильтре параметра со значением 10, показать все товары в диапазоне -x%....+y%.

Наумов Алексей
26 февраля 2019, 10:29
modx.pro
15
1 960
+10

Вывод определенной страницы в pdo menu

Добрый день!
Есть верхнее меню на сайте:
atmjet.ru/jets/
У меня там выводится меню с дочерними страницами Услуг, все работает ок:
<nav class="top-menu xs-hidden">
        [[pdoMenu?
            &parents=`0`
            &level=`2`
            &tplOuter=`@INLINE <ul>[[+wrapper]]</ul>`
            &tpl=`@INLINE <li[[+classes]]><a href="[[++base_url]][[+link]]" [[+attributes]]>[[+longtitle]]</a></li>`
            &tplParentRow=`@INLINE <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="[[++base_url]][[+link]]" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">[[+longtitle]]<span class="caret"></span></a>[[+wrapper]]</li>`
        	&tplInner=`@INLINE <ul class="dropdown-menu">[[+wrapper]]</ul>` 
            &tplInnerRow=`@INLINE <li><a href="[[++base_url]][[+link]]" class="dropdown-item">[[+introtext]]</a></li>`
        ]]
    </nav>
Но мне нужно в выпадающем списке, где Услуги, вывести еще три определенных страницы, которые НЕ являются дочерними к услугам. Как это можно сделать?
Виноградов Тимур
08 января 2019, 14:22
modx.pro
1
1 464
0