Репозиторий MODX
Исходный код на Github
Демонстрационный сайт
Категории и товары
Все товары и категории располагаются в дереве ресурсов. Очень советую для отличия одних от других использовать разные шаблоны. Также, категории должны быть контейнерами.
Шаблоны для них должны быть указаны в системных настройках компонента (Переключите namespace на minishop).
Там же нужно изменить номер статуса для нового заказа (1 по умолчанию, уже установлен)
Отвечаю на вопрос, почему все хранится в ресурсах:
1. Можно использовать ТВ параметры.
2. Можно использовать контексты.
3. Можно использовать все стандартные сниппеты.
4. Можно использовать группы ресурсов и права доступа.
5. Из коробки работает кэширование.
6. Дружественные урлы для каждого товара.
Можно продолжить самостоятельно.
Недостатков я не вижу,
но в будущем хочу забить скриптом кучу товаров, чтобы протестить скорость. На данный момент, в дерево нужно лазить только для создания товара, остально меняется в компоненте. В будущем, все действия с товаром (кроме, наверное, ТВ параметров переедут в компонент).
В компоненте есть удобная фильтрация по категориям, названию и артикулу товара, так что ничего не потеряется при многих сотнях\тысячах позиций.
Склады.
Компонент поддерживает неограниченное количество складов.
Отдельно настраиваются параметры для каждого. Доставка, адрес, почта для приема сообщений о заказе и т.д.
Вы можете не использовать эту возможность, но как минимум один склад для работы должен быть (по умолчанию создается).
У товаров есть пока 4 основных свойства: артикул, изображение, цена и остаток. Все 4 свойства привязаны к соотношению склад-товар.
То есть, у вас как бы все товары одновременно есть на всех складах, но везде могут иметь разные свойства (или одинаковые). Это дает богатые возможности по управлению.
Отображать товар на сайте можно с помощью остатка на текущем складе. Если остаток 0 — не выводить товар, или не давать заказать.
Мультикатегории.
У каждого товара есть своя основная категория (контейнер, в котором он находится) и могут быть дополнительные — их вы задаете в его настройках. При выводе товаров через сниппет
msGetGoods все позиции достаются в соответствии с категориями и передаются в getResources (он требуется, да).
Таким образом, один товар выводится в разных категориях.
Статусы.
Можно создать сколько угодно статусов для заказов и переключать их в любом порядке. Каждому статусу можно настроить уведомление на почту покупателя и менеджера (разные заголовки тела писем).
При установке создается статус «Новый» с включенными уведомлениями.
Уведомление менеджеру идет на почту склада (можно указать их там несколько, через запятую).
При переключение статуса заказа в компоненте это действие сохраняется в историю изменения заказа и высылается (или не) уведомление, в соответствии с настройкой этого статуса.
Каталог на сайте
Все операции с корзиной, добавлением\удалением товаров, оформлением заказа работают через Ajax.
Обязательны jquery 1.7+, jquery.form 2.8+ и friendly urls.
Вообще, на мой взгляд, фронтенд пока слабоват, но не понятно что народ хочет.
У всех разные требования к оформлению заказа, регистрации юзеров и т.д. Поэтому смотрите
$_SESSION['minishop'] и пишите свои сниппеты, если что.
В моем варианте оформления заказа юзер идентифицируется по email, если его нет в базе, то он регистрируется со случайным паролем (потом можно сделать сброс и изменение на свой — вот и регистрация =)). Заказ и адрес доставки привязываются к этому юзеру. Адрес можно изменить в админке у свойств заказа. Кол-во товаров там же можно поменять.
В основном классе есть зачатки для выбора из этих адресов при заказе, но пока все закомментировано — ибо нестабильно.
После оформления заказа сессия юзера очищается.
При работе с корзиной возвращается json строка со статусом, сообщением, кол-вом товаров и суммой корзины.
Заключение.
В составе пакета идут все необходимые сниппеты и чанки для создания простого магазина.
Как их использовать я напишу позже (во всяком случае постараюсь), но вы всегда можете посмотреть на демонстрационный сайт.
Также смотрите описание чанка\сниппета, там указано зачем они.
Проект еще совсем молодой, умеет немного, но со временем, я думаю, подрастет. В ближайших планах тестирование, пара внедрений, и создание товара в компоненте.
Принимаю предложения на установку\настройку\доработку под индивидуальные требования. Особо интересные вещи будут добавляться в основной код магазина.
P.S. Старую тему спрятал в черновики, полезные советы прочитал и запомнил, повторять не нужно =)
Еще очень прошу, перед задаванием вопросов смотреть на демонстрационный сайт — там все работает и я специально открыл просмотр чанков и сниппетов.
Ошибки прошу указывать на Github.
UPD.
На демонстрационном сайте забил
15000 товаров в БД, по 500 в одной категории.
Время загрузки страницы категории с получением параметров товара из отдельной таблицы
1-2 секунды. При том, что в чанке во всю импользуется phx.
По моему, неплохо.
UPD. 2
Версия 1.0.1 beta1
Добавил создание товаров сразу из компонента. При обновлении почистить кэш, чтобы админка обновилась.
Комментарии (238)
RSS свернуть / развернутьNeolot
vanchelo
Заходим в корень сайта (там где assets и core), набираем: Появляется директория miniShop. Переходим в нее, там в _build и запускаем: Внимательно изучаем, что пишет сборщик.
Если нет ошибок — идем в менеджер пакетов, добавляем локальный пакет (предварительно нужно удалить старый, так как версия не изменилась) и устанавливаем.
Если есть ошибки (возможно, что-то с путями не совпадет) — смотрим где на что ругается и чиним.
Если что, собранный пакет должен быть в /core/packages.
bezumkin
git clone git://github.com/bezumkin/miniShop.git
bezumkin
viktormatush
Можно ли заполнять свойства товара при создании нового ресурса? чтобы каждый раз не ходить в компонент?
vanchelo
А этот кусок нигде не используется, забыл удалить.
bezumkin
vanchelo
bezumkin
Еще вопрос теперь в выводе категорий у которой вложенная категория как сделать чтобы отображались только товары явл. непосредственными детьми, и чтобы другие категории в ней не отображались
vanchelo
vanchelo
bezumkin
Я предполагал, что внутри категории будут только другие категории, а не категории + товары.
То есть:
Посмотрю, сколько людей будут на это ругаться =)
Если много — буду думать как оптимизировать.
bezumkin
vanchelo
bezumkin
Чанк Content.category
Чтобы только товары отображались
vanchelo
Не думаю, что это ошибка. У вас в категории подкатегории — вы их и выводите. Или прячете. Все как обычно.
В этом преимущество хранения товаров в ресурсах — вы сами можете отфильтровать как захотите.
А в админке я поправлю проблему с выводом категорий в товарах.
bezumkin
vanchelo
Глубину нужно было 0 ставить. 1 — опускается на уровень ниже
vanchelo
Вечно путаю. У Wayfinder &level=1 а у getResources &depth=0 =)
bezumkin
vanchelo
vanchelo
Дадите доступ к админке, поглядеть?
bezumkin
vanchelo
vanchelo
Вам она вообще не нужна, при одном то складе.
Это надо когда 2 и более склдаов, при заведении товара, чтобы не прописывать несколько раз одно и тоже (ну если везде цены одни и артикул).
bezumkin
vanchelo
В чем косяк? Не могу понять
vanchelo
vanchelo
И еще в сниппете шаблон корзины назван как tpl.msCart.outer.
Но в чанках он назван tpl.msCart.
Так должно быть или нет не знаю, но я в сниппете переименовал его на tpl.msCart.
Кстати на демо сайте присутствуют два эти сниппета с идентичным содержимым!
vanchelo
Выложил beta3.
bezumkin
viktormatush
viktormatush
А сейчас 1.0.1 beta2
bezumkin
Вроде бы как хотели удалить в новой бете?
vanchelo
bezumkin
vanchelo
— регистрация и логин юзеров через логинзу (в shopkeeper прикручивал без проблем)
— страница «мои заказы» для зареганных юзеров с отслеживанием статуса товара
— смс сообщения об изменении статуса
— создание каталога в отдельном контексте
Dronowar
vanchelo
Dronowar
Исследовательской работой мне сейчас заниматься некогда, если честно.
bezumkin
— Это будет, но позже.
— Это как-нибудь пока без меня. На мой взгляд, емайла за глаза.
— Товары-ресурсы. Делайте хоть 10 контекстов, от компонента никак не зависит.
bezumkin
Dronowar
bezumkin
я к тому что в шопкипере в таблице заказов хранится все в таком виде что нужно функцию вызывать и применять шаблон. Тыкнулся просто написать снипет личного кабинета юзера для шопкипера. Вот и интересно стало как заказы у вас хранятся.
Dronowar
В ресурсах только товары, для того, чтобы можно было использовать навороты MODX с ними.
Смотрите на сниппеты, там подключается класс. После этого можно делать просто:
bezumkin
я надеюсь что у вас там попроще все
Dronowar
Тут json строка, а у меня заказы в ModOrders, товары заказа в ModOrderedGoods, а адрес заказа ModAddress.
Короче, развлекайтесь.
bezumkin
tist
Киньте в ЛС данные для админки, я гляну.
bezumkin
tist
bezumkin
tist
vanchelo
tist
tist
bezumkin
Проверяет принадлежность товара в том числе и к склдау.
Если нет ни одной записи в таблице ModGoods — то ничего не выводится. Должен быть хоть один товра, для срабатывания поиска.
Это мой косяк, вылезает только при чистой установке. Поправлю.
bezumkin
tist
qwedy
qwedy
В последней версии магазина для товаров добавлены 3 дополнительных поля.
Одно можно использовать для указания типа, второе — для хранения свойств в виде json-массива. Третье еще и про запас остается.
Я не знаю особенностей вашей задачи, но попробуйте так.
bezumkin
viktormatush
В новой (сегодняшней) версии все свойства товаров выводятся сразу в корзину — но у вас там выведется недекодированный json массив. Это можно легко решить собственным простым фильтром.
Например, вывод цвета из такого массива: [[+add3:get_color]]
Понятен принцип?
Учтите, что вы можете хранить сразу текстовые значения во всех трех дополнительных параметрах. А вот если их уже не хватает — тогда можно и массивы в add3 пихать.
bezumkin
viktormatush
Можно было и раньше использовать, просто приходилось доставать через msGetGoodsPlaseholder — не очень удобно.
В общем, попробуйте — у меня на демо сайте посмотрите новые чанки для корзины, если что.
bezumkin
Делаю 1 в 1 [[+add3:get_size]]
Товары добавляет, размер не выводит. Можете подсказать в чём ошибка?
viktormatush
id, цена, кол-во.
При изменении корзины возвращается кол-во товаров и их сумма.
Если у вас размер — это свойство товара — просто добавьте соответствующий плейсхолдер в чанк вывода строки с стоваром в корзине.
bezumkin
vanchelo
bezumkin
vanchelo
1. Нужно кликнуть 2 раза на строке, на нужном поле.
2. Откроется инпут или комбобокс.
3. Вносите изменение.
4. Жмете ентер или кликаете в сторону.
Это неплохо, если нужно поменять только один параметр. А если 2? Тогда число кликов уже удваивается и явно проигрывает тому, что есть сейчас:
1. Два клика на строку левой кнопкой, либо один правой, потом левой.
2. Открывается окно, в котором можно менять любые параметры товара за раз, включая категории.
3. Сохранение либо по кнопке, либо shift+enter.
На мой взгляд, окно гораздо функциональнее и не менее эргономично. Поэтому, я сделал все манипуляции в магазине именно через окна.
bezumkin
Возможность редактирования заказа в админке, убрать добавить товар, изменить дополнить сведения клиента
vanchelo
bezumkin
vanchelo
Изменить\дополнить адрес клиента для доставки также возможно.
bezumkin
vanchelo
awesomescreenshot.com/0009emb5
awesomescreenshot.com/05b9en54
bezumkin
Редактирование сведений клиента нашел! =)
Вы не обижайтесь что я в такой форме пишу свои замечания, они скорее просто мои желания.
vanchelo
Наверняка, вы увидите вот такое окно.
У вас как там, на мышке, с правой кнопкой все хорошо?
bezumkin
vanchelo
vanchelo
Так нельзя. Я еще понимаю, изменить кол-во товаров в заказе (ну мало ли), но удалить вообще товар задним числом — зачем?!
Чтобы менеджеры с кривыми руками радовали хозяина сайта и покупателей?
bezumkin
Если статус заказа стоит Новый, то почему бы не удалить товара из списка, и после этого отправить сообщение повторно!
Многие леняться повторно делать заказ
vanchelo
Если передумал (и такое часто бывает) — ставьте кол-во 0. Будет понятно, что товар он заказывал и передумал.
bezumkin
Carw
vanchelo
Вы после обновлений кэш вообще чистите?
bezumkin
vanchelo
vanchelo
И сейчас там все ок.
bezumkin
vanchelo
Zinich66
На складах ведь могут быть совсем разные свойства у товаров. Да и в наличии чего-то может не быть.
В будущем, возможно, этот вопрос будет решен как-то посимпатичнее, типа пересчетом содержимого корзины (хотя с наличием все равно непонятки) — но пока вот так.
bezumkin
Zinich66
При обновлении сниппет перезапишется, так что лучше переименуйте его, чтобы изменения сохранялись.
bezumkin
Zinich66
bezumkin
viktormatush
minishop.categories_tpl
minishop.goods_tpl
укажите айди Ваших шаблонов,
Дальше создайте ресурс с корзиной, и пропишите его в сниппете miniShop, укажите айди Вашей страницы с корзиной:
// Страницы работы с заказом
$c['page_cart'] = 12; (12 — айди моей корзины)
И еще один момент, в шаблоне корзины. на демо сайте он указан как Main, обязательно добавьте вызов сниппета [[!miniShop]], промучался целый день пока вкурил что да как.
На странице товара добавьте ссылку с атрибутами Корзина, чтобы динамически отображалось кол-во товаров в корзине, остальное, в принципе, все на демо сайте есть.
Меня же интересует другой вопрос, только начиная осваивать рево, как выполнить запрос, примерно такой:
SELECT `modx_ms_modOrders`.`id`, `modx_ms_modOrders`.`uid`, `modx_ms_modOrders`.`status`, `modx_ms_modOrderedGoods`.`gid`, `modx_users`.`username` FROM `modx_ms_modOrders` LEFT OUTER JOIN `modx_ms_modOrderedGoods` ON (`modx_ms_modOrders`.`id` = `modx_ms_modOrderedGoods`.`oid`) INNER JOIN `modx_users` ON (`modx_ms_modOrders`.`uid` = `modx_users`.`id`) WHERE `modx_ms_modOrders`.`status` = 2
Нужно ли для этого xPDO?
Суть такая, у меня клиент покупает не товар, а доступ к платному контенту (журналу), когда клиент сделал заказ и я его перевел в статус «выполнен», клиенту должен отображаться тот самый контент, в противном случае — какой-то месседж о необходимости покупки.
В принципе, это симбиоз miniShop и PasswordRequired от гуру Безумкина, может чего-то гуру подскажет? Спасибо.
Klim872
Сейчас проблема — жму на «Добавить в корзину» и ничего не происходит. :(
viktormatush
Если работать не будет, то дело не в них =) Да, Фрэндли-урлы включили?
Klim872
Klim872
ЧПУ тоже включил.
Может cufon меняет классы и мешает работе? я хз. Нужно создавать видимо свой тестовый вариант, ванилла так сказать и смотреть почему не работает о_0
viktormatush
Плюс раскэшируйте все…
Klim872
viktormatush
Начать можно отсюда.
Для работы с таблицами магазинов нужно подключить в своем сниппете модель БД.
А потом можно устраивать вот такие выборки:
Контролировать получающиеся запросы можно вот так:
В сниппетах и процессорах магазина еще очень много примеров =)
bezumkin
Klim872
На странице товара вызвал сниппет If с такими параметрами:
Т.е. если при запросе что-то выводится, тогда ему открывается статья, если запрос пустой — ничего не выводится.
Подскажите, пожалуйста, грамотно ли это реализовано и какие тут могут быть подводные камни?
Спасибо огромное еще раз!
Klim872
И проверяем вывод сниппета на странице
bezumkin
Klim872
Klim872
Огромное Вам спасибо!
Klim872
bezumkin
Все работает =)
Планируется ли у Вас подключение платежных систем? ЛикПей, ИМХО, наиболее универсален — принимает по платежным картам.
Может я могу чем-то помочь Вам в разработке или в туториалах? Программер из меня никакой, только начинаю, но есть стремление. Если что — я всегда рад Вам помочь! Еще раз огромное спасибо!
Klim872
Помочь вы можете очень сильно написанием how-to с примерами. У меня совершенно нет на это времени, да и не очень ясно, что писать — мне изнутри не видно проблем.
В ближайшее время планирую начать вести мини-бложик и пописывать туда такие вещи. Если будете присылать — буду выкладывать ваши тексты.
Боб Рэй вон, целую книгу написал в итоге =)
bezumkin
По поводу онлайн-оплат — можно пойти по пути шопкипера — robokassa.ru
Они принимают кучу платежных систем, в том числе:
Webmoney — webmoney.ru
типов:
WMR (рубли)
WMZ (доллары)
WME (евро)
WMU (украинские гривны)
WMY (узбекские сумы)
WMB (белорусские рубли)
WMG (эквивалент золота)
Яндекс.Деньги — money.yandex.ru
Moneymail RUR — moneymail.ru
RBK Money RUR — rbkmoney.ru
EasyPay — easypay.by
Единый кошелек — w1.ru
LiqPay — liqpay.com
WebCreds — webcreds.com
Z-Payment — z-payment.ru
Подробней тут: www.robokassa.ru/ru/Currencies.aspx
Klim872
Поэтому делать надо так, чтобы хорошо было всем и сразу.
Чем я и займусь, в будущем.
bezumkin
Магазин в статусе беты, он активно разрабатывается и выкладываю я его не как готовое для всех решение, а, скорее, как игрушку для нетерпеливых.
Скоро будет личный кабинет, потом платежная система, а потом уже и готовая сборка, потерпите.
P.S. демо-сайт переезжал на другой сервер, забыл открыть доступ к менеджеру. Уже поправил, можно заходить.
bezumkin
Klim872
Шаблон Корзины:
Шаблон товара:
Шаблон категорий не делал
Klim872
viktormatush
Что с ней дальше делать — вы можете посмотреть в скрипте (функция cartStatus)
bezumkin
где myOuterTpl:
viktormatush
Дальше можно выставить из него плейсхолдеры или сразу пропарсить какой-нить чанк.
bezumkin
Чанк:
Но такой вывод будет статичным, то есть, не будет реагировать на изменения корзины без перезагрузки страницы.
Поэтому мне больше нравится вариант с javascript, который я привел на демо-сайте.
bezumkin
viktormatush
Aplotnik
Если вы там ничего не понимаете — то вам в топик "Объявления о работе"
bezumkin
Aplotnik
Соответственно, запускать его нужно из консоли сервера:
Файл для иморта указывается тут:
На всякий случай — исходный код.
bezumkin
Aplotnik
Пытаюсь отфильтровать по переменным, сниппет неправильно работает, и очень тормозит. Можно ли как-то по-другому отфильтровать по переменным шаблона? Спасибо.
viktormatush
Season — это у вас есть такой ТВ у всех товаров? Вы фильтруете по ТВ.
По свойствам товара пока фильтровать кажется нельзя, еще не сделал.
bezumkin
viktormatush
Моя модификация касается только поддержки мультикатегорий, свойств товаров в чанках и сортировке по свойствам. Фильтрацию по свойствам я просто забыл сделать, каюсь =)
В ближайшее время сделаю, возможно даже завтра.
P.S. фильтрация по ТВ и вызов кучи сниппетов в кач-ве аргументов — это очень небыстрая задача. Старайтесь отказываться от ТВ — у товаров есть дополнительные поля.
bezumkin
Смотрю что код связазнный с варинатами доставки почти везде закоментирван.
vanchelo
viktormatush
Но если есть хоть немного навыков в xPDO, то вы найдете объект ModDelivery =)
bezumkin
vanchelo
Дальше будет только лучше.
bezumkin
vanchelo
Делаю сайт одного известного бренда, у меня вопрос, я установил Babel для мультиязычности и получилось 10 контекстов, так как сайт содержит ещё дополнительные ресурсы, то с переводом на 10 языков проблем нету.
Теперь я не могу понять, подскажите в каком направлении мне идти.
1) Мне нужно весь тавар скопировать 10 раз — т.е. в разные контексты?
(Да, на каждый товар-ресурс около 9 TV)
2) как мне следить за товаром, ведь тавар один а id ресурсов 10?
Пока всё, заранее спасибо за ответ.
Gera
Думаю, тут miniShop просто не подойдет.
bezumkin
Жаль, я столько надежд на него имел.
Теперь нужно снова думать.
Gera
Даже если и разные названия — их можно хранить в дополнительном поле №3 json-строкой с массивом (контекст => название). А при заходе в контекст переключать склад в сессии и доставать всегда товары из одного, основного, контекста.
В принципе, может сработать.
Ну и всегда остается вариант переписать часть магазина для работы с внешними таблицами. Тогда конечно вы не будете получать обновлений компонента — но это тоже вариант.
bezumkin
10 складов не нужно. Достаточно одного склада.
В принципе, теперь мне кажется, что мой компонент вам может помочь.
bezumkin
Название везде одинаковые, только некоторые моменты в товарах отличаются языком, но я так понял, то, что часто используюется, можно записать в лексикон.
А вот описание разное. Но, спасибо за идеи, надеюсь что-то придумаю. Буду пробовать.
Сразу встречный вопрос, какие системы оплат уже есть? Меня интересует PayPal (если ещё нету, тогда поделюсь когда сделаю)
Gera
Есть таблица с заказами, там статусы и в классе есть метод для их переключения. Он пишет с историю изменения и шлет почтовые уведомления.
То есть, вам нужно только принять оплату товара и переключить статус.
Если описание разное — то создавайте 10 складов и на каждом складе у товара будут разные свойства, для длинного описания лучше использовать третье дополнительное поле, для короткого — первые 2, там строка до 255 символов.
bezumkin
С оплатой вы правы, там всё логично, прикрутить PayPal на мой взгляд проблем не будет.
С описанием, я подошел немного с другой стороны (сейчас ещё просмотрю ваш вариант), я создал дополнительную таблицу и модель, и по id товара думаю брать данные в зависимости от контекста.
В админки немножко нужно будет мне добавить в грид, дополнительные поля — т.е. мои контексты и связать их джоинами с моей дополнительной таблицей.
Извините, возможно не внятно объяснил, но идея родилась именно такая.
Сейчас посмотрю реализацию по вами предложенному варианту.
Gera
Но обновления магазина вы уже не поставите (ну или после апгрейда придется прописывать заново все свои добавки)
Просто имейте в виду, магазин еще активно развивается.
bezumkin
Спасибо за советы, буду думать как с наименьшим ущербом для себя всё это сделать.
Gera
bezumkin
Итак:
1. Создаем товары в основном контексте.
2. Создаем категории во всех контекстах.
3. Каждому товару задаем категории везде где надо — msGetResources будет выводить без проблем.
4. В чанке для вывода в категории используем фильтры для показа свойств на разных языках (из ваших таблиц).
5. При переходе на страницу товара плагином по onPageNotFound выдаем содержимое страницы товара из основного контекста с нужными свойствами через фильтры.
6. Пишем отдельный компонент для задания описания товаров в свои таблицы.
Все работает, код магазина не меняется.
bezumkin
Сейчас думаю как свою таблицу связать по одной нитке с Вашим магазином в админки, чтобы меньше переписывать в дальнейшем.
Gera
How can I pay PayPal?..
I'm not looking to look.
Your servant
רישי (Rishi)
Rishi
Вот ответ на ваш вопрос, придется поднапрячься.
bezumkin
Your servant
רישי (Rishi)
Rishi
Может, это, конечно, только мне с острова ни черта не видно.
vbatushev
habrahabr.ru/blogs/hosting/139368/
bezumkin
Пользуясь случаем, кланяюсь земляку, ибо сам почти двадцать лет отработал в газете «Кузбасс» :)
vbatushev
bezumkin
у меня «коряво» работает обновление корзины. я думаю что дело в кэшировании
как это исправить??
в шаблоне вызываю чанк со следующим содержимым ссылки корзины
Корзина
эта ссылка выводится в шапке шаблона
далее вызываю [[!miniShop]] на странице корзины
cайт esupp.ru
Спасибо!
maxxus96
Как минимум, устраните их.
bezumkin
ошибок море
но в логе я не увидел
ошибок при обращении запросом к /cart.html
maxxus96
Заранее, благодарен!
vanchelo
bezumkin
Копируется только на активный склад, если нужно продублировать свойства на все склады — придется открыть товар, отметить галочку про все склады и сохранить.
bezumkin
vanchelo
(ERROR @ /index.php) Could not prepare context: x1 — ресурс контейнер /каталог/
(ERROR @ /index.php) Could not prepare context: x2 — ресурс /меню/
и эти ошибки повторяются при переходе по ссылкам.
p.s. в инете по данным ошибкам найти ничего не смог
корзина работает через раз /проверил все селекторы все как на демо сайте/
с главной отправляется в корзину только количество, опять через раз
другие ресурсы тоже работают через раз
дайте наводку где копать
я с модх всего месяц имею дело
Спасибо!
и наверно было бы полезно назначать товар конкретному складу или нескольким складам
maxxus96
x1 — ресурс контейнер /каталог/
x2 — ресурс /меню/
это родители
maxxus96
Возможно включен php5-apc — надо выключить. Мне некогда разбираться с вашими проблемами, извините.
Только вчера с нуля настроил сервер, поднял там MODx, установил магазин — все работает без вопросов.
> и наверно было бы полезно назначать товар конкретному складу или нескольким складам
Если товара нет на складе — ставьте остаток -1 и не выводите в чанках товары с остатком < 0.
bezumkin
ВО КАК
maxxus96
maxxus96
Нашел такую возможность поиска по другим таблицам но не могу правильно настроить. Может кто-то нибудь подскажет
vanchelo
vanchelo
Вы ищите дополнительные свойства или товары?
Ну и wid — это id склада, а id товара — gid (WarehouseID или GoodsID), наверное тут ошибка?
bezumkin
Это я понимаю, но мне нужно при поиске вывести цены товаров и их картинки.
За это я не подумал, попробую иначе
vanchelo
Это делается проще — использованием в чанке результата msGetGoodsPlaceholder.
Ну, мне кажется, что это проще =)
bezumkin
vanchelo
modx-minishop.ru/documentation/
bezumkin
viktormatush
Размещу на сайте со ссылкой на вас.
bezumkin
можно вписать в доп поля вызов чанка? [[$xxx]]
Спасибо!
maxxus96
Это про что? Не понял.
> можно вписать в доп поля вызов чанка? [[$xxx]]
Наверное, попробуйте. Я не знаю.
bezumkin
maxxus96
Но забэкапиться никогда не помешает.
bezumkin
добавление в корзину вроде заработало хотя я ниче не делал видимо чета с сервером было
вот если бы товар имел возможность создания дополнительных полей на усмотрение пользователя мне кажется это полезная штука
и еслиб их еще можно было связать между собой
maxxus96
Просто ищете пакет в репозитории и он дает скачать и обновить. А сам про обновления через раз гооворит.
> вот если бы товар имел возможность создания дополнительных полей
Ясен пончик.
На это нужно время и деньги. Закажите — доработаю.
bezumkin
maxxus96
15-20 тысяч
bezumkin
vanchelo
maxxus96
можно скинутся кто ЗА
maxxus96
Щас еще пожертвования будете мне собирать.
Магазин в разработке, как появляется время — я его дорабатываю бесплатно. Как ктото заказывает отдельную доработку — с его согласия она попадает в основной код.
Просто ждите.
bezumkin
vanchelo
maxxus96
vanchelo
Где то по дороге в таблицу теряется?
vanchelo
Переставьте компонент.
У меня на демо-сайте последняя версия всегда, без изменений — там все нормально с заказами.
Не вижу, где тут может быть ошибка. Исходник
bezumkin
vanchelo
Тупая опечатка поправлю.
Еще раз спасибо!
bezumkin
vanchelo
Проще писать 2 лишних символа, чем при каждом обращении проверять на не пустоту.
Пакет в репозитории обновил.
bezumkin
vanchelo
vanchelo
Но поправлю потом.
bezumkin
vanchelo
В новых версиях добавились префиксы к плейсхолдерам, типа [[+addr., [[+cart. и т.д.
Доступные плейсхолдеры
bezumkin
vanchelo
vanchelo
vanchelo
vanchelo
bezumkin
Функция getCartStatus() из minishop.class.phpЗакомментировал в minishop.js строки 5-9
Теперь при переходах по страницам сайта не яваскриптом обновляется состояние корзины, а сниппетом, сразу (т.е. до полной загрузки страницы) отображается состояние корзины
vanchelo
Вот чанк cartStatus
vanchelo
vanchelo
bezumkin
vanchelo
Но если неожиданно обновится формат корзины — ваш сниппет об этом не узнает и после обновления компонента что-нить сломается.
Ну и мне по прежнему непонятно, зачем выводить корзину сразу при загрузке, если все равно к ней нужны ajax методы для обновления статуса при изменении.
bezumkin
vanchelo
vanchelo
vbatushev
причины?..
valikras
Причин не знаю.
vbatushev
Проснётся — починит :)…
А это не облако случайно упало?
valikras
valikras
vbatushev
А сервер лежит опять, да. Откатываюсь обратно на php 5.3.
bezumkin
При нажатии на кнопку добавить, все хорошо — никаких ошибок. Перехожу в корзину — пусто.
Есть включаю в корзине [[!minishop? &debug=`1`]] появляется ошибка:
7-я строка в minishop.js
Переустанавливал модуль, все равно не появляются товары в корзине.
thedarki
Если включен php-apc — отключите.
bezumkin
thedarki
bezumkin
thedarki
bezumkin
Где отключить чтобы не искал apc.so?
thedarki
bezumkin
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.