Всего 123 804 комментария

perfkirill
06 сентября 2022, 11:23
0
Согласен, я делал раз 5-6, но ведь в этом и прикол, что клиенты, которые хотят интеграцию даже не рассматривают modx. Т.к в ней нет в коробки 1с
Артур Шевченко
06 сентября 2022, 11:15
0
Я, конечно, не проверял, но мне кажется ни у одного бесплатного решения для электронной коммерции из коробки интеграции с 1С нет. В целом, я согласен с тем, что базовый функционал надо расширять, так как голый MiniShop по этому параметру сильно уступает тому же OpenCart. Но приоритетнее сделать фильтрацию из коробки, избранное, сравнение товаров, а интеграции это индивидуальная потребность конкретного бизнеса. За три года работы с Modx интеграцию с 1С делал раза два, при том что магазинов сделал несколько десятков, а вот фильтры нужны были почти в каждом.
perfkirill
06 сентября 2022, 10:33
0
Дело в стратегическом мышлении, посмотрите долю, которую занимает modx, и долю битры и других заточенных CMS, вы на платных дополнениях больше заработаете по оборотам.

И не правильно вы поняли мысль, остатки по складам сделать уже платным. (По одному складу бесплатным, согласитесь, что по коду там работы на пару часов от силы.)
Ivan
05 сентября 2022, 22:34
0
Если я ничего не путаю, то вам нужно в настройках ЧПУ добавить этот символ в исклечения.
2022-09-05-22-33-12
Далее, например через дополнение Console, пересоздать урлы всех ресурсов. Что-то вроде этого:
if ($resources = $modx->getCollection('modResource')) {
    foreach($resources as $resource) {
        $resource->set('alias', $resource->cleanAlias($resource->get('pagetitle')));
        $resource->save();
    }
}
Артур Шевченко
05 сентября 2022, 21:09
+2
Если из коробки сделать интеграцию с 1С, остатки по складам, то minishop надо делать платным, а фишка minishop в его бесплатности. Ты получаешь базу на которую можешь накрутить, что душе угодно.
Артур Шевченко
05 сентября 2022, 21:01
1
0
В общем, я установил UsersOnline и он не работает. Я посмотрел ошибки и завёл его. Вот код сниппета getOnlineUsers.
<?php
    /** @var array $scriptProperties */
    /** @var UsersOnline $UsersOnline */
    if (!$UsersOnline = $modx->getService('usersonline', 'UsersOnline', $modx->getOption('usersonline_core_path', null,
            $modx->getOption('core_path') . 'components/usersonline/') . 'model/usersonline/', $scriptProperties)
    ) {
        return 'Could not load UsersOnline class!';
    }
    if (!$pdo = $modx->getService('pdoTools')) {
        return $modx->lexicon('no_pdo');
    }
    $interval = $modx->getOption('timeInterval', $scriptProperties, -1);
    if ($interval == -1) {
        $interval = $modx->getOption('usersonline_time_span');
    }
    $contexts = $modx->getOption('contexts', $scriptProperties, null);
    
    $innerJoin = array();
    /*$innerJoin = $modx->getOption('innerJoin', $scriptProperties, '');
    $innerJoin = $modx->fromJSON($innerJoin);*/
   
    $innerJoin['UsersOnline'] = array(
        'class' => 'userOnline',
        'on'    => 'modUser.id = UsersOnline.user_id',
    );
    $select = array();
    /*if($select = $modx->getOption('select', $scriptProperties, '')){
         $select = $modx->fromJSON($select);
    }*/    
    $select['UsersOnline'] = '*';
    $time = time();
    $startTime = $time - $interval;
    $where = array();
    /*if($where = $modx->getOption('where', $scriptProperties, '')){
        $where = $modx->fromJSON($where);
    }*/
    
    $where[] = array(
        'UsersOnline.lastvisit:>=' => $startTime,
        'UsersOnline.lastvisit:<=' => $time,
    );
    $contextsArray = array();
    if($contexts != null){
        $contextsArray = explode(',', $contexts);
    }
    if (!empty($contextsArray)) {
        $where[] = array(
            'UsersOnline.context_key:IN' => $contextsArray,
        );
    }
    $scriptProperties['where'] = $modx->toJSON($where);
    $scriptProperties['innerJoin'] = $modx->toJSON($innerJoin);
    $scriptProperties['select'] = $modx->toJSON($select);
    $output = $modx->runSnippet('pdoUsers', $scriptProperties);
    return $output;
Вот вызов.
[[!getOnlineUsers?
    &contexts=`web`
]]
Zulya
05 сентября 2022, 20:15
0
Артур, я изучала документацию pdoUsers, но сейчас снова изучила. Но и там нет примеров как совместить getOnlineUsers и pdoUsers. И в документации pdoUsers тоже нет информации о том, что getOnlineUsers и pdoUsers можно использовать вместе.
Артур Шевченко
05 сентября 2022, 14:23
0
Очевидно же документация на UsersOnline отсылает к документации на pdoUsers.
Zulya
05 сентября 2022, 13:08
0
Добрый день, Артур. В документации UsersOnline написано:
Для вывода списка пользователей онлайн используется сниппет getOnlineUsers, который является оберткой над pdoUsers. Соответственно, оформлением результатов занимается pdoUsers, которому передаются все параметры вызова.
Но примера запроса нет.

Для плейсхолдера [[+fullname]] от Tickets, как использовать UsersOnline чтобы показать статус автора комментария, подскажите пожалуйста. Спасибо!
Павел Голубев
05 сентября 2022, 12:58
0
В Magento попрежнему использует EAV, но потом таки транслирует их в обычные плоские таблицы, чтобы делать быструю фильтрацию и выборки по индексам.

И тут получается нюанс, в котором жертвуем нормализацией данных, в угоду производительности и каким-то макаром нужно следить за консистентностью данных в EAV. плоских таблицах, таблицах фасетных фильтров.
perfkirill
05 сентября 2022, 06:04
0
Чисто мое мнение.

Когда мне звонят клиенты и говорят нужен интернет-магазин, то я предлагаю MODx (Ибо я люблю его). На что они говорят «Что? мод че? Не слышал». Ибо в рейтингах данная система себя не позиционирует как интернет-магазин.

А что в мозгах обычных клиентов ассоциирует себя как хороший интернет-магазин? Тот, который имеет интеграцию с 1С. Есть замечательный модуль по интеграции с 1С, сделайте его в коробке. Опытные программисты знают, что от базы все равно толку нет, надо это докрутить, то докрутить, вот тут уже и можно модули делать. Например на модицифации товаров (msoptionprice2) для 1С продавать модуль, но в 2 раза дороже, возьмут, для бизнеса это копейки.

Да и еще остатки введите а базу. А например, остатки по складам уже модуль

Решить вопрос с созданием опцией товаров. Самое главные затыки в них:
1. Почему не делать автотранслит при создании опции товара??? Нафига людям это объяснять
2. Люди хотят нормальную сортировку этих опций. В норм магазине от 100 категорий товаров (подкатегорий). Люди мучаются делать нужный порядок опций.
Артур Шевченко
04 сентября 2022, 22:45
+1
Есть msAddFields, чтобы плагины не писать.
Дмитрий
04 сентября 2022, 12:40
0
Скорее всего вы правы. Есть предположение куда лезь? малейшую зацепку бы)
Сергей Карпович
04 сентября 2022, 12:37
0
[migxResourceMediaPath]: docid could not be determined. — не относится к этой проблема, это просто динамический источник файлов не может создаться, например когда в шаблон переходишь
Вячеслав Варов
04 сентября 2022, 08:17
0
Спасибо! Это рабочий способ!)
Сергей Карпович
03 сентября 2022, 21:07
0
Ух как не скоро