А как правильно вывести поля, если я вывожу то в таблицу modx_billing_order_products будет попадать только цена, как посылать оба значения? Или по "price" вытаскивать "name"? Но там tv в json, лишние телодвижения...

Но почему product_id отличается от id ресурса? Потому что id ресурса - это как вы сами же и написали, id ресурса (класс modResource), а product_id - это id продукта (класс ShopmodxProduct). Смотрите его мап-файл. Его записи даже в другой таблице находятся, и почти 100% объектов продуктов меньше объектов документов количественно.

Простите, туплю) вызвал так - {snippet name="getImageList" params="tvname=options&tpl=optionsTpl&docid={$object.id}"} Но почему product_id отличается от id ресурса? Помогите, пожалуйста...

А по какому принципу сниппет должен догадаться, что он в списке работает и что что-то надо перехватить и учесть? Компьютерная телепатия?

Добавил в layout товара {snippet name="getImageList" params="tvname=options&tpl=optionsTpl"} На собственной старице товара все выводится, а вот в списке нет...

ищи плагин autofolders и смотри его код.

Ну да, в плагине. Смотри здесь, особенно комментарии.

Да, была такая идея. Просто там уже ~1500 товаров в нескольких десятках категорий. А вообще как-то можно вклиниться в процесс формирования uri? Чтобы автоматом?

Тебе это автоматизировать надо или вручную будешь делать? uri_override рулит.

Да, все верно. Более того, можете править прям сами процессоры ShopModxBox-а, так как система не рассчитана на дальнейшие обновления поверх модуля. Главное - чтобы в таблицу заказов попадали записи со связкой product_id - параметр. И еще, если неавторизованный человек добавляет товар в корзину, а потом уходит с сайта, то товар остается в базе и не удаляется? Да. И пусть там и лежат, они кушать не просят. Если боитесь за производительность, то уверяю, что менее миллиона записей вы особо и не заметите. А если будет лям+, то шоб я так жил, деньги тогда на доработки найдутся, если понадобятся.