des1gner

des1gner

Был в сети 16 сентября 2026, 21:00
Заказы не принимаю
Подписаться на автора
Может из этого же комментария добавят в Minishop немного маркетинга в заказ. Так называемый снимок маркетинговой истории на момент покупки.
Например, в заказе:
┌─────────────────────────────────────────────┐
│ МАРКЕТИНГ                                   │
├─────────────────────────────────────────────┤
│ Источник:        Яндекс                      │
│ Канал:           Органика                    │
│ Первая страница: /zhenskie/platya/          │
│ Последняя страница: /product/raniya/         │
│                                             │
│ Путь клиента:                               │
│                                             │
│ Google → Платья → Рания → Корзина → Покупка│
│                                             │
│ Что повлияло на покупку:                    │
│ ☑ Понравилась конкретная модель             │
│                                             │
│ До покупки: 14 минут                        │
│ Просмотрено товаров: 3                      │
└─────────────────────────────────────────────┘
И через несколько месяцев можно будет увидеть закономерности:

Источник                  Покупок
----------------------------------
Яндекс органика             184
WB                           91
VK                           37
Telegram                     22
Прямой заход                 68
И отдельно:

Что влияет на покупку:

Конкретная модель            43%
Скидка                       21%
Повторная покупка            18%
Рекомендация                 10%
Соцсети                       5%
Другое                        3%
Это значительно ценнее обычной UTM-аналитики.

Пока роадмап расписываю с жпт для Minishop2 текущего сайта
Я как раз и есть та аудитория, ЖПТ это мне вот объяснил:

Да, это очень точное замечание. Я бы даже сформулировал его чуть жёстче: если MODX пытается конкурировать именно как фреймворк для профессиональных разработчиков, он начинает конкурировать не на своём поле.

Исторически сила MODX была именно в промежуточной зоне:

Тильда / Wix / WordPress-конструкторы ← → полноценная разработка

А MODX занимал место примерно здесь:

«Я понимаю HTML/CSS, немного PHP/JS, могу разобраться в документации, но не хочу каждый раз писать CMS с нуля. Дайте мне готовый сниппет, TV, чанк, плагин, шаблон — я немного переделаю и получу нужный сайт».
И это очень важная аудитория.

В чём был феномен MODX

MODX позволял человеку быть не программистом в полном смысле, но при этом делать вещи, которые конструктор ему не позволял.

Например:

pdoResources
    ↓
готовая выборка
    ↓
Fenom-шаблон
    ↓
немного HTML/CSS
    ↓
готовый каталог
Или:

miniShop2
    ↓
готовый интернет-магазин
    ↓
чанк
    ↓
несколько условий Fenom
    ↓
магазин выглядит "под себя"
Человек не обязан был понимать внутренности xPDO, архитектуру MVC, DI, сервис-контейнеры и т. д.

Он должен был понимать:

«Вот этот вызов выводит товары. Вот этот параметр отвечает за родителей. Вот этот чанк определяет разметку. Здесь я поменяю HTML».

И именно это давало MODX огромную практическую ценность.

Поэтому я бы разделил две аудитории

1. MODX-разработчик


Ему нужны:

  • API;
  • Composer;
  • PHP 8.x;
  • Git;
  • CI/CD;
  • тестирование;
  • архитектура;
  • кастомные компоненты;
  • полноценные приложения.
Это нормальная аудитория.

Но она уже прекрасно живёт в мире:

Laravel + Symfony + Vue/React + API + Docker.

И здесь MODX действительно сложно предложить что-то уникальное.

2. MODX-мастер / веб-мастер

Вот это гораздо интереснее.

Человек говорит:

«Мне нужно сделать сайт. Я умею верстать. Немного понимаю PHP. Я могу разобраться с документацией. Но я не хочу становиться backend-разработчиком».
И ему нужен инструмент:

готовая функциональность
        +
визуально понятная настройка
        +
HTML/Fenom
        +
простые PHP-хуки
        +
огромная библиотека дополнений
        =
готовый сайт
Вот здесь MODX исторически был очень силён.

И здесь есть интересный парадокс

MODX может быть очень хорош именно потому, что не пытается полностью скрыть код.

Тильда говорит:

«Не думай о коде».
Laravel говорит:

«Ты должен уметь программировать».
А MODX исторически говорил:

«Вот код. Он не такой страшный. Возьми готовый и немного измени».
И это совершенно отдельная философия.

Поэтому я бы не пытался превращать MODX в «ещё один современный framework».

Я бы развивал концепцию:

MODX — CMS для людей, которые хотят делать нестандартные сайты без необходимости становиться полноценными программистами.
Причём современные технологии этому совершенно не мешают.

Можно иметь:

  • MODX 3;
  • PHP 8.3;
  • Composer;
  • Vite;
  • Tailwind;
  • Alpine.js;
  • API;
  • Docker;
но поверх этого сохранить старую модель потребления:

установил → настроил → вызвал → изменил шаблон → получил результат.
И вот это, на мой взгляд, гораздо более перспективное направление.

Потому что тогда MODX продаёт не «современную архитектуру».

Он продаёт снижение порога между дизайнером/верстальщиком и разработчиком.

И, кстати, ваш собственный опыт с MODX как раз очень хорошо иллюстрирует эту аудиторию: вы можете разбираться в PHP, Fenom, pdoTools, miniShop2, Alpine, Tailwind и т. д., но при этом совершенно не обязательно каждый раз писать полноценную систему с нуля. Именно комбинирование готовых кирпичиков + небольшая доработка и является ценностью MODX.

Если разработчики потеряют эту аудиторию, MODX рискует оказаться в довольно неприятной позиции: для профессионального программиста слишком специфичен, а для обычного владельца сайта слишком сложен. И тогда его историческое преимущество как раз исчезает.
Помог ваш код, спасибо
чатжпт уже оптимизировал
<?php
// Получаем список категорий, которые сняты с публикации
$unpublishedCategories = $modx->getCollection('msCategory', [
    'published' => 0
]);

$excludeIds = [];

foreach ($unpublishedCategories as $category) {
    // Получаем товары из каждой неподтвержденной категории
    $products = $modx->getCollection('msProduct', [
        'parent' => $category->get('id')
    ]);

    foreach ($products as $product) {
        $excludeIds[] = '-' . $product->get('id');
    }
}

// Возвращаем строку для использования в параметре &resources
return implode(',', $excludeIds);
Рад появлению такому компоненту. Вопрос. А можно ли выводить список подарков в любом другом месте вне корзины? И уведомить так же пользователя о том, что еще чуть-чуть и тебе подарочек, так же вне корзины?
Добрый день!
При установе консоль указывает на ошибку:
Installing files from /core/packages/ogimage-1.0.3-pl/xPDOFileVehicle/7b0e2f9c874ca4e0a29ea120e30b7177/ to /core/components/ogimageencrypt/encryptedvehicle.class.php
Could not generate encryption key
Package can not be decrypted!
Успешно установлен пакет ogimage-1.0.3-pl

А в журнале ошибок:
(ERROR @ /core/model/modx/modparser.class.php: 541) Could not find snippet with name ogimage.
И дополнение никак не хочет работать, MODX Revolution 2.7.1-pl