Сразу видно, что не 5 минут потратил на изучение этого вопроса. Даа, не один час ушёл)) И даже не три) еще вот такой момент по поводу проверок прав до и после сохранения. Как я и писал выше... А, блин! Вот теперь дошло, почему я ни где локальной проверки на create не нашёл.

Вот товар-документ должен быть сразу в нескольких категориях. При этом товар-документ по сути один (просто есть связка, которая позволяет понять, что товар и в этой категории). И вот (да простят меня СЕОшники), если встанет задача, чтобы товар этот имел ссылку на себя во всех этих категориях, то реально этих ссылках в MODX-е не будет, и надо будет свой роутер прописывать на OnPageNotFound, чтобы корректно отрабатывать запрос и отдавать страницу. Хотя может я и спешу с выводами, и может этого и не придется делать, но все же вероятность есть.

Я Articles не использую, но судя по всему у вас путаница в целом. $document = $modx->newObject('Article'); Для того, чтобы это корректно работало, вам нужно подключить пакет, если он не подключен, а именно использовать $modx->addPackage() или подключить extenstionPackage. Подробней написано здесь: modxclub.ru/blog/115.html Когда подключается пакет, тогда указывается папка, в которой xPDO будет искать запрашиваемые классы. Когда выполняется метод $modx->newObject($className), xPDO выполняет loadClass($className), который ищет не только сам файл с этим классом, но и сопутствующие файлы для конкретного типа базы данных (мап- и db- файлы). А вот используемый метод $modx->getService($serviceName, $className) тоже выполняет $modx->loadClass(), но только с еще тремя параметрами ('', false, true), которые указывают, что не надо использовать мап-файл. В итоге вы получаете указанный класс, но теряете mysql-класс (не подгружается сопутствующий файл). Вот поэтому вы и получаете фатальную ошибку Fatal error: Class 'Article_mysql' not found in… Собственно, поэтому я и говорю, что вы все напутали. $modx->getService() используется совершенно для других целей.

Да, это надо, и это будет. Собственно, наработки для этого есть давно. Просто будем смотреть как красивей это сделать (чтобы было удобней в управлении). Соответственно под это еще и роутер надо зафигачить. я не совсем понимаю про роутер.

Всегда рад помочь хорошему делу :)

Нет, пока не сейчас. Я планирую всерьез переосмыслить и доработать основной getdata-процессор, который используется для получения документов (включу в него trancate и еще кое-какие моменты), и тогда уже начнем описывать. То есть по сути с момента запуска этой новой сборки можно начинать плотно заниматься документацией. Спасибо за предложенную помощь! Она понадобится.

Блин, как не хватает знаний по modx Наверстаешь.

Причем планирую создавать документацию по процессорам и т.п., так как в отличие от сниппетов, они более стабильные и универсальные. Вот в этом могу помочь уже сейчас. Есть опыт доходчиво описывать (никто не жаловался). Надо только о форме договориться, чтобы однообразно все было. Если нужно будет, подкидывай задачки.

Хорошо. Я когда им займусь, тоже буду выкладывать свои решения. Блин, как не хватает знаний по modx и времени!

Точно потребуется система скидок в зависимости от акции (причем акций может быть одновременно несколько и на разные, заданные группы товаров: новинка, праздник, распродажа), суммы покупки, накопительных за период и индивидуальных для покупателей. Акции и скидки действительно очень нужны и есть четкие мысли на этот счет, но по этому модулю объем работ слишком большой, так что это — следующий этап работ. Все остальное перечисленное — это тоже пойдет в следующий этап.