nekto 29 сентября 2014 0 18
Всем добрый день!
Подскажите пожалуйста, как реализовать товар с несколькими ценами, которые будут менять в зависимости от свойств товара.
Например есть корм: цена будет менять в зависимость от веса. То есть упаковка 200г и 400г.
Смотрел вебинар, там было сказано про модель товара, но подробно нигде такой вариант не рассматривался, или я это пропустил. Может быть кто-нибудь подтолкнет в нужном направлении?
18 комментариев
Fi1osof1
Fi1osof 29 сентября 2014г в 12:55 #
Здравствуйте.
С моделями товаров лучше не заморачиваться, это слишком сложно. Вот подробный топик про дополнительные параметры товаров, там все довольно полно описано. Но ваша задача чуть сложнее (несколько цен), поэтому просто используйте TV migx. Документация: http://rtfm.modx.com/extras/revo/migx/migx.backend-usage.
У вас будет две колонки: параметр и цена. Далее развивайте.
n
nekto 29 сентября 2014г в 15:12 #
Ясно, спасибо! Буду стараться...
Fi1osof1
Fi1osof 29 сентября 2014г в 15:15 #
Пожалуйста!
n
nekto 29 сентября 2014г в 15:21 #
Конечно плохо, что такие, скажем так, банальные вещи для магазина не идут в коробке...
Fi1osof1
Fi1osof 29 сентября 2014г в 15:27 #
1. Главное в "коробке" - это продуманная расширяемая система. Ввести несколько цен - дело пары часов. А внести мегауниверсальный механизм нескольких цен - это уже задача гораздо сложнее, так как на разных магазинах часто выставляют разные требования к этому, и на конечном магазине выполнить индивидуальную доработку гораздо проще, чем сделать универсальный механизм, который устроит всех. А мой принцип - лучше сделать "с нуля" малое, чем перелопачивать под себя многое.
2. Вы можете предложить свою реализацию в виде пуллреквеста, или хотя бы поддержать рублем проект. А так, дареному коню в зубы не смотрят.
Tramp13571
Tramp1357 29 сентября 2014г в 21:52 #
+++
n
nekto 02 октября 2014г в 18:58 #
Помогите пожалуйста с алгоритмом работы:
Сначала создал tv migx с двумя полями опция - цена.
Дальше создал в таблице modx_billing_order_products поле option, правлю индексы: order_id-product_id-option,
и перегинерирую map.
Дальше в шаблоне вывожу tv migx например чекбоксами, убираю стандартную цену.
Дальше правлю процессоры, вот тут беда.
В моем случае менять их надо немного не так, как тут
И еще, если неавторизованный человек добавляет товар в корзину, а потом уходит с сайта, то товар остается в базе и не удаляется?
n
nekto 02 октября 2014г в 18:59 #
*стандартное поле "цена" убираю.
Fi1osof1
Fi1osof 02 октября 2014г в 19:23 #
Да, все верно. Более того, можете править прям сами процессоры ShopModxBox-а, так как система не рассчитана на дальнейшие обновления поверх модуля. Главное - чтобы в таблицу заказов попадали записи со связкой product_id - параметр.
И еще, если неавторизованный человек добавляет товар в корзину, а потом уходит с сайта, то товар остается в базе и не удаляется?

Да. И пусть там и лежат, они кушать не просят. Если боитесь за производительность, то уверяю, что менее миллиона записей вы особо и не заметите. А если будет лям+, то шоб я так жил, деньги тогда на доработки найдутся, если понадобятся.
n
nekto 03 октября 2014г в 13:14 #
Добавил в layout товара
{snippet name="getImageList" params="tvname=`options`&tpl=`optionsTpl`"}

На собственной старице товара все выводится, а вот в списке нет...
Fi1osof1
Fi1osof 03 октября 2014г в 13:16 #
А по какому принципу сниппет должен догадаться, что он в списке работает и что что-то надо перехватить и учесть? Компьютерная телепатия?
n
nekto 03 октября 2014г в 13:45 #
Простите, туплю)
вызвал так -
{snippet name="getImageList" params="tvname=`options`&tpl=`optionsTpl`&docid=`{$object.id}`"}

Но почему product_id отличается от id ресурса?
Помогите, пожалуйста...
Fi1osof1
Fi1osof 03 октября 2014г в 13:53 #
Но почему product_id отличается от id ресурса?

Потому что id ресурса - это как вы сами же и написали, id ресурса (класс modResource), а product_id - это id продукта (класс ShopmodxProduct). Смотрите его мап-файл. Его записи даже в другой таблице находятся, и почти 100% объектов продуктов меньше объектов документов количественно.
n
nekto 03 октября 2014г в 14:40 #
А как правильно вывести поля, если я вывожу
то в таблицу modx_billing_order_products будет попадать только цена, как посылать оба значения?
Или по "price" вытаскивать "name"?
Но там tv в json, лишние телодвижения...
Fi1osof1
Fi1osof 03 октября 2014г в 14:52 #
* - это только текущие поля документа и его TV-поля. Товар не является источником его прямых значений. Но можно получить их так:
$product = $modx->resource->Product;
$price = $product->sm_price;
n
nekto 03 октября 2014г в 15:00 #
Простите, но я ничего не понял...
В форме я вызываю
 {snippet name="getImageList" params="tvname=`options`&tpl=`optionsTpl`&docid=`{$object.id}`"}

например с чанком
но как послать add-процессору "name"-"price"?
Fi1osof1
Fi1osof 03 октября 2014г в 15:04 #
А вот об этом я говорил - не достаточно скилов в программировании, не беритесь за ShopModxBox. Во-первых, наши технологии не подразумевают использование чанков и сниппетов, только самый минимум, логику которых модифицировать не надо. Большая часть необходимого пишется на конкретном сайте. В общем, в таких объемных задачах я не помогаю. Не понятно простое - сорри, но мы не пишем вам ваши сайты вашими руками, тем более бесплатно. Или справляйтесь сами, или кидайте клич кто поможет за денежку.
n
nekto 03 октября 2014г в 14:41 #
*
n
nekto 03 октября 2014г в 14:41 #

Не выводит код почему-то
Авторизуйтесь или зарегистрируйтесь (можно через соцсети ), чтобы оставлять комментарии.