Всем добрый день!
Подскажите пожалуйста, как реализовать товар с несколькими ценами, которые будут менять в зависимости от свойств товара.
Например есть корм: цена будет менять в зависимость от веса. То есть упаковка 200г и 400г.
Смотрел вебинар, там было сказано про модель товара, но подробно нигде такой вариант не рассматривался, или я это пропустил. Может быть кто-нибудь подтолкнет в нужном направлении?
Здравствуйте.
С моделями товаров лучше не заморачиваться, это слишком сложно. Вот подробный топик про дополнительные параметры товаров, там все довольно полно описано. Но ваша задача чуть сложнее (несколько цен), поэтому просто используйте TV migx. Документация: http://rtfm.modx.com/extras/revo/migx/migx.backend-usage.
У вас будет две колонки: параметр и цена. Далее развивайте.
Ясно, спасибо! Буду стараться...
Пожалуйста!
Конечно плохо, что такие, скажем так, банальные вещи для магазина не идут в коробке...
1. Главное в "коробке" - это продуманная расширяемая система. Ввести несколько цен - дело пары часов. А внести мегауниверсальный механизм нескольких цен - это уже задача гораздо сложнее, так как на разных магазинах часто выставляют разные требования к этому, и на конечном магазине выполнить индивидуальную доработку гораздо проще, чем сделать универсальный механизм, который устроит всех. А мой принцип - лучше сделать "с нуля" малое, чем перелопачивать под себя многое.
2. Вы можете предложить свою реализацию в виде пуллреквеста, или хотя бы поддержать рублем проект. А так, дареному коню в зубы не смотрят.
Помогите пожалуйста с алгоритмом работы:
Сначала создал tv migx с двумя полями опция - цена.
Дальше создал в таблице modx_billing_order_products поле option, правлю индексы: order_id-product_id-option,
и перегинерирую map.
Дальше в шаблоне вывожу tv migx например чекбоксами, убираю стандартную цену.
Дальше правлю процессоры, вот тут беда.
В моем случае менять их надо немного не так, как тут
И еще, если неавторизованный человек добавляет товар в корзину, а потом уходит с сайта, то товар остается в базе и не удаляется?
*стандартное поле "цена" убираю.
Да, все верно. Более того, можете править прям сами процессоры ShopModxBox-а, так как система не рассчитана на дальнейшие обновления поверх модуля. Главное - чтобы в таблицу заказов попадали записи со связкой product_id - параметр.
И еще, если неавторизованный человек добавляет товар в корзину, а потом уходит с сайта, то товар остается в базе и не удаляется?
Да. И пусть там и лежат, они кушать не просят. Если боитесь за производительность, то уверяю, что менее миллиона записей вы особо и не заметите. А если будет лям+, то шоб я так жил, деньги тогда на доработки найдутся, если понадобятся.
Добавил в layout товара
{snippet name="getImageList" params="tvname=`options`&tpl=`optionsTpl`"}
На собственной старице товара все выводится, а вот в списке нет...
А по какому принципу сниппет должен догадаться, что он в списке работает и что что-то надо перехватить и учесть? Компьютерная телепатия?
Простите, туплю)
вызвал так -
{snippet name="getImageList" params="tvname=`options`&tpl=`optionsTpl`&docid=`{$object.id}`"}
Но почему product_id отличается от id ресурса?
Помогите, пожалуйста...
Но почему product_id отличается от id ресурса?
Потому что id ресурса - это как вы сами же и написали, id ресурса (класс modResource), а product_id - это id продукта (класс ShopmodxProduct). Смотрите его мап-файл. Его записи даже в другой таблице находятся, и почти 100% объектов продуктов меньше объектов документов количественно.
А как правильно вывести поля, если я вывожу
то в таблицу modx_billing_order_products будет попадать только цена, как посылать оба значения?
Или по "price" вытаскивать "name"?
Но там tv в json, лишние телодвижения...
Не выводит код почему-то
* - это только текущие поля документа и его TV-поля. Товар не является источником его прямых значений. Но можно получить их так:
$product = $modx->resource->Product; $price = $product->sm_price;
Простите, но я ничего не понял...
В форме я вызываю
{snippet name="getImageList" params="tvname=`options`&tpl=`optionsTpl`&docid=`{$object.id}`"}
например с чанком
но как послать add-процессору "name"-"price"?
А вот об этом я говорил - не достаточно скилов в программировании, не беритесь за ShopModxBox. Во-первых, наши технологии не подразумевают использование чанков и сниппетов, только самый минимум, логику которых модифицировать не надо. Большая часть необходимого пишется на конкретном сайте. В общем, в таких объемных задачах я не помогаю. Не понятно простое - сорри, но мы не пишем вам ваши сайты вашими руками, тем более бесплатно. Или справляйтесь сами, или кидайте клич кто поможет за денежку.