Разделы

SBShop 0.1a - альфа-версия интернет-магазина для MODx

Спешу поделиться с вами очень радостной новостью. Наконец-то разработка электронного магазина для MODx под кодовым названием SBShop приобрела некий ощутимый и рабочий вид. Первая альфа!

Информации очень много, поэтому не буду вдаваться в лирику и перейду к делу. Описывать буду как все устроено, а не «как сделать магазин».

Итак, SBShop представляет собой некое расширение ядра MODx и в том числе содержит в наборе модуль, плагин, сниппет и некий свой API.

Структура магазина



Базовый каталог

Магазин привязывается к некому ресурсу в дереве (например «Магазин (15)»), который становится корнем магазина (условно /magazin.html). Далее каталог имеет набор различных товаров, категорий с неопределенным уровнем вложенности.

ЧПУ строится на основе заданных псевдонимов у категорий/товаров и учитывает вложенность. Псевдонимы генерируются автоматически на основе стандартного плагина MODx.

Режимы работы, блоки

Режимом будем называть некую основную функцию на текущей странице, которую магазин должен для нас сделать. Среди стандартных режимов есть categories (список категорий), product (товар), breadcrumbs (крошки), cart (корзина) и checkout (оформление заказа).

Так как информация нам нужна разных видов на конечной странице (крошки, корзина, список категорий), то нам нужно как-то определять, что мы хотим получить. Есть три варианта использования какого-то режима:

1) Режим заданный по URL (/magazin/checkout.html). Так работает оформление заказа
2) Базовый режим. Выводится прямым вызовом сниппета и зависит от текущего URL. В данный момент так работают вывод категорий и товара
3) Блок. Задается в параметре сниппета &mode (&mode=`breadcrumbs,cart`). Выводится через плейсхолдер. Это у нас крошки, корзина.

Этот список составлен в порядке приоритета и режим, который определился первым, считается основным.

Категории

Тут все просто. Категории имеют разную вложенность и в них вложены товары.

Товары

Здесь уже поинтереснее. В товарах есть несколько стандартных возможностей:

— основные параметры: название, псевдоним, артикул, цена, описание
— изображения, которые автоматически создают нужный набор миниатюр при загрузке (задается конфигом)
— динамический список параметров в виде ключ — значение
— динамический список опций, которые оказывают влияние на стоимость товара

Модуль управления

Имеет собственное дерево категорий/товаров и стандартный набор функций, которые вам известны по дереву ресурсов (создание, редактирование, публикация / отмена публикации, удаление / восстановление).

Показывает список имеющихся заказов.

Шаблоны



Основной шаблон страницы

Разумеется для разных страниц магазина нужны свои шаблоны. Чуть выше было описано как выбирается основной режим. Именно он и определяет какой шаблон (из стандартных в MODx) будет использоваться (определяется конфигом).

Шаблоны категорий, товаров, корзины и т.д.

Разумеется они тоже задаются. Единственный момент, что сейчас они все лежат в специальных .tpl файлах. Вид магазина полностью настраивается.

Технические моменты



Управление параметрами товара

Сейчас все задается в виде текста в специальном поле. Формат в виде примера:

Цвет==зеленый||Ширина==100 см||Высота==250 см


Узнаваемо? Отлично!

Управление опциями

Тоже в виде текста, но формат посложнее:

Размер оперативной памяти#3[16 Гб#1==+1510;32 Гб#2==+2900]||Звук#4[не устанавливать#3==;установить#4==+11740]


Размер оперативной памяти, Звук — названия опций
16 Гб, 32 Гб, не устанавливать, установить — значения опций
#1, #3, #2 — идентификаторы названий опций и значений (добавляются автоматически, писать их не нужно).

API

Ядро магазина автоматически загружается с помощью плагина и доступно на всем сайте через $modx->sbshop. Через него можно например получить:

$modx->sbshop->config — массив конфигурации
$modx->sbshop->lang — языковые данные (Да!)
$modx->sbshop->oOrder — заказ
$modx->sbshop->oCustomer — данные пользователя

К множеству других возможностей можно получить доступ, используя различные классы. Например:
$oProduct = new SBProduct();
// загружаем товар по идентификатору
$oProduct->load(5);
// Выводим стоимость
var_dump($oProduct->getAttribute('price'));


Покопайтесь в коде, там все прокомментировано полностью.

Установка



Модуль

Название: SBShop
Код:
include  MODX_BASE_PATH . 'assets/extends/sbshop/modules/module.inc.php';

Конфигурация:
&doc_start=Документ магазина;string;15

GUID: Включить

Укажите свой «Документ магазина», где у вас будет находиться корень каталога.

Плагин

Название: SBShop
События: OnLoadWebDocument, OnWebPageInit, OnLoadWebPageCache, OnPageNotFound
Код:
include  MODX_BASE_PATH . 'assets/extends/sbshop/plugins/plugin.inc.php';


Сниппет

Название: SBShop
Код:
<?php
include  MODX_BASE_PATH . 'assets/extends/sbshop/snippets/snippet.inc.php';
?>


Создание связи с модулем

Нужно зайти в модуль и добавить зависимости с плагином и модулем. Затем установить параметр «Импортировать общие параметры модуля» у плагина и модуля.

Резюмируем



Что сделано

— отточена концепция и видение магазина (в процессе работы)
— гибкая платформа (есть основное ядро с нужными функциями, есть режимы, которые подключаются динамически и легко добавляются)
— магазин отлично встраивается в MODx и можно писать свои дополнительные сниппеты
— заложены отличные возможности на будущее (в области управления параметрами и опциями)
— работает ЧПУ и настраиваемые шаблоны
— динамические параметры и опции
— предусмотрена мультиязычность
— работа без регистрации
— все данные хранятся в собственных таблицах и не создают большой нагрузки
— легкое управление

Важные недостатки

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

Пара заключительных слов

Работа проделана огромная. Я успел побывать в разных городах за это время, несколько раз передумать концепцию, провести множество ночей за компьютером… И все же я безумно счастлив, что сейчас могу показать вам результат. Да здравствует Open Source!

Скриншот




Бонус



Заодно хочу сразу представить вам первый рабочий магазин, который использует SBShop. 7plusov.ru — Электронный магазин акриловых ванн в Екатеринбурге.

Спасибо ему огромное! Именно благодаря ему удалось проверить и довести SBShop в боевых условиях.

Магазин рабочий, поэтому с заказами аккуратнее. Если очень хочется проверить как работает заказ, то пишите test вместо ФИО.

Жду ваши отзывы, впечатления, пожелания и готовые доработки (а вдруг? ;-) ).

Ссылки



Скачать SBShop 0.1a

Страница проекта на Google Code: code.google.com/p/sbshop/
  • +9
  • 20 июня 2010, 00:57
  • Carw

Комментарии (114)

RSS свернуть / развернуть
0
Здорово! А можно скрины модуля из админки? Ну так, для привлечения внимания :)

В магазинчике ванн понравились фотогалереи к продукции ну и конечно блок «Возможные опции» — он полностью автоматически генерируется?
avatar

antonkuzmin

  • 20 июня 2010, 23:06
0
В админке сейчас все очень аскетично. Поэтому привлекать там особо нечем пока. Там более всего понимаешь, что версия именно альфа. :)

Фотогалерея генерится автоматом и ей можно любой вид придать.

Блок с возможными опциями разумеется тоже автоматически генерируется, как и параметры товара. Если значение одно, то берется один шаблон (у меня — чекбокс), если несколько, то другой (радио). Можно заказывать как с опциями так и без них. При этом товары с разными опциями будут отображаться раздельно в корзине, а с одинаковыми совмещаться (увеличивая количество).
avatar

Carw

  • 20 июня 2010, 23:44
0
класс, надеюсь ты завершишь проект!
avatar

Leverkuss

  • 21 июня 2010, 00:48
+1
Смотря что понимать под завершением. В данный момент он уже отлично работает. Не смотря на статус альфы, даже ошибок нет особых. В админке требуется скорее оформительская работа.

А так я думаю, что все постепенно будет обрастать новыми возможностями по мере их необходимости.
avatar

Carw

  • 21 июня 2010, 13:13
0
Я крайне рад этой новости.

Желаю скорейшего развития, обрастания мясом и появления полноценного магазина под MODx ;)
avatar

pitbull

  • 21 июня 2010, 19:17
0
Спасибо. Надеюсь, что кому-то это будет полезно.
avatar

Carw

  • 21 июня 2010, 20:06
0
Carw а можешь поподробней описать как сделаны чпу?
Смотрел-смотрел так и не въехал. Когда делал в своих сниппетах — пришлось с помощью .htaccess делать.
avatar

zluk

  • 21 июня 2010, 23:02
0
Если коротко, то адреса ЧПУ такого конечно нет и MODx выдает 404 ошибку. Плагин отлавливает ее. Далее мы ищем этот самый адрес уже в своей таблице.
avatar

Carw

  • 21 июня 2010, 23:39
0
Хитро :) Смотрел код плагина — но не подумал даже что 404 ошибка для таких целей отлавливается!
avatar

zluk

  • 22 июня 2010, 00:13
0
Там еще много разных фокусов.
avatar

Carw

  • 22 июня 2010, 00:25
0
Я в шоке. Столько переходов на магазин и закачек, а комментов нет. Это значит, что никому не нужно или ничего не получается? Или..? :)
avatar

Carw

  • 22 июня 2010, 13:34
0
Посмотрел, прочитал, удивился и закрыл.
Интересно, но пока без надобности.
avatar

alex2read

  • 22 июня 2010, 15:57
0
Понятно, похоже у большинства похожая ситуация.
avatar

Carw

  • 22 июня 2010, 17:49
0
Очень интересно и полезно, но пока не будет своего проекта с Интернет магазином соответственно никто особо не будет колупаться ))
avatar

tonatos

  • 22 июня 2010, 17:41
0
А я было думал, что у кого-то появится творческое желание развивать продукт, чтобы потом использовать. )
avatar

Carw

  • 22 июня 2010, 17:56
0
как я и писал желание появится только вместе с необходимостью делать свой магазин ) и вот тогда пойдет развитие )
avatar

tonatos

  • 22 июня 2010, 18:22
0
p.s. Тестировался ли магазин на быстродействие где-то для 30 т. товаров?
avatar

tonatos

  • 22 июня 2010, 18:28
0
Нет, как указано среди минусов:

магазин не подготовлен к большой нагрузке (напрочь отсутствует кеширование в каталоге, таблицы не имеют индексов)


Задачи пока не стояло работать с таким объемом, поэтому не тестировалось. Но вопрос производительности все время учитывался, поэтому при необходимости это доработать не долго.
avatar

Carw

  • 22 июня 2010, 19:44
0
Ожидал, что при оформлении заказа мне предложат вариант оплаты а там всего лишь надпись «с вами свяжутся».
avatar

Agel_Nash

  • 23 июня 2010, 07:10
+2
В данном случае оплата через интернет не требуется. Но можно добавить режим, который будет предлагать оплату.

Спасибо за комментарий, благодаря ему у меня появилась идея разделить режим checkout на два.
avatar

Carw

  • 23 июня 2010, 09:42
0
После установки и запуска модуля, 3 ссылки при клике на любую: No record found for id 2. Что это может быть? Ума не приложу.
avatar

Zinich

  • 23 июня 2010, 15:20
0
Скрин можно?
avatar

Carw

  • 23 июня 2010, 15:24
0
Вот скрин.
avatar

Zinich

  • 23 июня 2010, 15:28
0
zinich.com/scrin.jpg Прошу прощения за предыдущий пост.
avatar

Zinich

  • 23 июня 2010, 15:28
0
Похоже дело в ID модуля. У меня он был вторым и по умолчанию его идентификатор был 2. вас он третий и идентификатор нужен другой. Надо покопаться, видимо где-то я его забил вручную…
avatar

Carw

  • 23 июня 2010, 15:35
0
Ясно. На счет цен, можно получить значение поля цены со всех страниц и сделать как я говорил, таблицу… Можно же не только TV так массово редактировать.
avatar

Zinich

  • 23 июня 2010, 15:39
0
Проблема в файле module.inc.php, я действительно написал:
$iModId = 2;

Нужно заменить на:
$iModId = $_REQUEST['id'];


С ценами надо очень обстоятельно подумать, как сделать. Таблицу-то общую вывести легко, но есть еще опции например.
avatar

Carw

  • 23 июня 2010, 17:34
0
Опции тоже выводятся. По крайней мере те, которые в TV заданны. Но я так понял, что все поля можно редактировать. Или нет?
avatar

Zinich

  • 23 июня 2010, 17:59
0
С опциями там все намного сложнее, во всяком случае сейчас. Допустим их около 10 для каждого файла. Редактируя каждую опцию мы вновь создаем себе большие проблемы. По хорошему в одной категории опции схожи, поэтому правильнее двигаться в сторону объединения опций в некий справочник и обновлять все сразу массово. И это должно быть просто.
avatar

Carw

  • 23 июня 2010, 18:08
0
Загрузил SBShop на Google Code. Можно следить за изменениями в SVN, кому интересно.

Также выложил исправленный архив, где исправлено несколько найденных ошибок.
avatar

Carw

  • 24 июня 2010, 00:36
+2
Да, выглядит отлично, но нет пока времени самому все посмотреть :(

Много знакомых вещей заметил(ЧПУ через 404, дерево и т.д.), рад что пригодились :)
Опции довольно хорошо продуманы, я до некоторых вещей не дошел когда продумывал свой вариант… :)

По-моему проделана огромная работа. Очень радует, что все эти задумки доведены до ума (ну или, по крайней мере, вышли в свет в рабочем виде) и теперь, я думаю, найдется много людей, которые сделают свой вклад. И, конечно, я тоже готов помочь чем смогу. :)

Ну довольно лирики :) Меня интересуют такие моменты:
1. Есть ли (планируется ли) возможность установки связей между товарами. (например, похожие товары, или товары, которые обычно выбирают вместе и т.п.)
2. Как насчет связи с Excel (импорт / экспорт)?
3. Еще интересная вещь — разделение покупателей на группы (розничные, оптовые, крупнооптовые и т.п.) + возможность предоставления скидок.

Это моменты, которые мне приходилось часто использовать в своей практике. Можно рассматривать их как вопросы относительно данной версии и как предложения по ее развитию (2 и 3-й пункты, думается мне, не реализованы в альфе).

Ну и еще было бы хорошо добавить возможность выбора вариантов оплаты (хотя уже об этом писали выше). Было бы отлично сделать возможность принимать webmoney / оплату по robokassa.

Искренне желаю успехов этому проекту (ну и его разработчику, разумеется) :)
avatar

burik

  • 25 июня 2010, 15:41
0
Много знакомых вещей заметил(ЧПУ через 404, дерево и т.д.), рад что пригодились :)


Ну так, не зря же мы рассуждали обо всем этом. Все здесь пригодилось. Хочу выразить огромную благодарность, в связи с этим. :-)

1. Есть ли (планируется ли) возможность установки связей между товарами. (например, похожие товары, или товары, которые обычно выбирают вместе и т.п.)


Здесь пока только заложена базовая возможность. Если посмотреть внутри, то информация о параметрах товара дублируется. В текстовом виде она сохраняется в поле товара (это позволяет сэкономить на запросах), а дополнительно в разобранном — в отдельной таблице. Отдельная таблица и будет служить для фильтрации.

2. Как насчет связи с Excel (импорт / экспорт)?


Этим вопросом пока не успел заняться, но постепенно раздумываю над ним. Моя практика показывает, что Excell приводит к большим проблемам. Народ любит менять его структуру и это рушит обработку. Поэтому перспективнее видится использование некого текстового формата для импорта.

3. Еще интересная вещь — разделение покупателей на группы (розничные, оптовые, крупнооптовые и т.п.) + возможность предоставления скидок.


Тоже пока не занимался. У меня фактически сейчас реализована покупка без регистрации. Все покупатели сохраняются в специальную таблицу. Я предполагал затем сделать автоматическую регистрацию веб-пользователя для тех, кто указал email и таким образом полностью совместить управление правами в MODx и магазине. То есть в теории можно будет предоставлять какие-то материалы закрытые в том числе для конкретной группы (оптовиков).

Скидка тоже пока не реализована, но стоит в ToDo.

Работа действительно проделана огромная, но всяких замыслов еще больше. Сейчас я делаю экшен для вывода в YML.

Очень рад буду если кто-то начнет всем этим пользоваться и посильно помогать.

PS: А у тебя как с каталогом файлов? Заморозил? :)
avatar

Carw

  • 25 июня 2010, 16:26
0
PS: А у тебя как с каталогом файлов? Заморозил? :)

Эх… Учеба, сессия, работа… В общем, я думаю, ясно :)
Там уже реализована некоторая базовая функциональность, но все же пока очень сыро все. Однако, даже в таком виде архив нашел свое применение :)
avatar

burik

  • 25 июня 2010, 16:52
0
Ясно. Но я не теряю надежд )
avatar

Carw

  • 25 июня 2010, 18:12
0
Добавим немного полей. Было:



Стало:

avatar

Carw

  • 25 июня 2010, 19:11
0
Скриншот добавил заодно в топик.
avatar

Carw

  • 25 июня 2010, 19:19
0
Зачем? По-моему «Производитель» и «Страна» — это лишнее.
avatar

burik

  • 25 июня 2010, 22:58
0
YML просит и в принципе часто эти поля нужны в магазинах с разнообразным ассортиментом. Пока сделаю их обычными текстовыми, а позже в справочник выделю.
avatar

Carw

  • 25 июня 2010, 23:04
0
Почему это YML просит?
avatar

burik

  • 25 июня 2010, 23:20
0
Этот вопрос нужно обратить Яндексу. Вполне возможно это поле не является обязательным, но у них в помощи не указано такой информации. А я пока не знаю на что влияет наличие / отсутствие этих полей.

В любом случае Страна — точно лишнее поле, так как оно относится к производителю и должно указываться один раз для него. Хотя… вспоминая магазин ecco, можно вспомнить, что там обувь производится в куче стран. И на ценниках соответственно написаны разные страны.
avatar

Carw

  • 25 июня 2010, 23:28
0
Просто если поле нужно, а его нет — его можно добавить как параметр. Если же оно есть, но не нужно, то его не уберешь, будет вечно глаза мозолить и путать новичков.
avatar

burik

  • 25 июня 2010, 23:30
0
Ты прав, не стоит торопиться ставить статичные поля. Так можно и перестараться.

Упраздню страну производителя и группу товаров.
avatar

Carw

  • 25 июня 2010, 23:53
0
Deprecated: Function ereg_replace() is deprecated in D:\wamp\www\shop\assets\libs\treebuilder\treebuilder.frame.php  on line 18
$button) { $i++; $url = $siteURL.$button['image']; ?>


Запускаю модуль — и вижу эту ошибку:(
avatar

kollad

  • 30 июня 2010, 12:05
0
PHP5.3?
avatar

Carw

  • 30 июня 2010, 12:18
0
Изменив функцию

$sitePath = ereg_replace('.assets.libs.treebuilder', '', dirname(__file__));
на
<b>$sitePath = preg_replace('/.assets.libs.treebuilder/', '', dirname(__file__));</b>


Вроде этой ошибки нету. Теперь в дереве появилось следующее

$button) { $i++; $url = $siteURL.$button['image']; ?>


avatar

kollad

  • 30 июня 2010, 12:23
0
Yes:)

WampServer php 5.3.0
avatar

kollad

  • 30 июня 2010, 12:25
0
Тогда не удивительно, подобных ошибок должно быть очень много по идее. Поэтому php5.3 пока не пользуется особой популярностью.
avatar

Carw

  • 30 июня 2010, 12:31
0
Ясно, я как-то не обратил внимание, что в Wamp входит php 5.3.0, установлю еще 5.2.11 и буду тестить
avatar

kollad

  • 30 июня 2010, 12:38
0
На версии 5.2.11 тоже ошибка

Notice: Undefined variable: modx in D:\wamp\www\shop\assets\libs\treebuilder\treebuilder.frame.php  on line 25

Notice: Trying to get property of non-object in D:\wamp\www\shop\assets\libs\treebuilder\treebuilder.frame.php on line 25

Fatal error: Call to a member function connect() on a non-object in D:\wamp\www\shop\assets\libs\treebuilder\treebuilder.frame.php on line 25
avatar

kollad

  • 30 июня 2010, 12:41
0
Код исправленный? Или тот, который был изначально?
avatar

Carw

  • 30 июня 2010, 12:43
0
Тот который был изначально. Обновил его еще раз из архива…

$button) { $i++; $url = $siteURL.$button['image']; ?>
avatar

kollad

  • 30 июня 2010, 12:47
0
Может краткая запись: "<?" не поддерживается и поэтому вставки php выводятся?
avatar

Carw

  • 30 июня 2010, 12:55
0
действительно:) заменил все <? на <?php, теперь работает. но все-равно, не так, как хотелось бы…

В дереве не работает не одна ссылка, нету картинок.
При нажатии на ссылку в дереве — firebug:modid is not defined
Так же firebug выдает ошибку top.tree.treeRebuild is not a function

1. $siteURL = 'http://'. $_SERVER['HTTP_HOST']. '/shop/'; — жесткая привязка к тому, что сайт будет находится в корне веб-сервера… пришлось мне добавить /shop/
2. $modid — почему-то подставляет автоматом 2, хотя ID = 13. Поменял через базу на id=2 — заработало
avatar

kollad

  • 30 июня 2010, 13:16
0
Видимо архив старый. В том, который сейчас находится на code.google.com/p/sbshop/ идентификатор модуля не должен быть привязан к 2.

$siteURL = 'http://'. $_SERVER['HTTP_HOST']. '/shop/';


Это где?
avatar

Carw

  • 30 июня 2010, 13:35
0
treebuilder.frame.php строка 17
avatar

kollad

  • 30 июня 2010, 13:40
0
А, ясно. Это по сути отдельный продукт, который я просто использую, поэтому эти нюансы я даже не предполагал. Нужно будет отписать автору об этом. У меня все работает на домене второго уровня, поэтому другие ситуации я не тестировал даже.
avatar

Carw

  • 30 июня 2010, 13:46
0
Вообщем получилось установить, добавил тестовую категорию и товар. А как мне теперь увидеть это на сайте?:))
avatar

kollad

  • 30 июня 2010, 13:55
0
Отлично! Если привязка сниппета и плагина выполнена, как указано в топике, то необходимо создать свой документ для магазина (только не главную — известный баг) и записать его ID в настройку модуля.

Далее в шаблон добавляем:

[+sb.breadcrumbs+]
[+sb.innercat+]
[+sb.productlist+]
[+sb.product+]
[!SBShop? &mode=`breadcrumbs,cart`!]
avatar

Carw

  • 30 июня 2010, 14:07
0
В сниппете SBShop «Импортировать общие параметры модуля» — список пустой:(
avatar

kollad

  • 30 июня 2010, 15:50
0
Правильно, потому, что сначала надо в модуле привязку сделать, тогда его можно будет выбрать в плагине / сниппете.
avatar

Carw

  • 30 июня 2010, 15:55
0
Прежде всего спасибо за огромную работу!

Подскажите, что я делаю не так. Процесс установки. Вызов снипета [[SBShop &mode=`breadcrumbs,cart,categories,product`]]
[!SBShop &mode=`breadcrumbs,cart,categories,product`!]
происходит в документе id=48 Псевдоним catalog

Тут скрины health.tmweb.ru/index.php?id=49
avatar

biopsihoz

  • 30 июня 2010, 13:57
+1
Вроде по скринам все нормально, кроме того, что «Документ магазина» — просто заголовок и там нужно было поменять только сам ID. )

Если на сайте ничего не показывается, то советую попробовать то, что я написал немного выше.
avatar

Carw

  • 30 июня 2010, 14:11
0
Спасибо, этот совет мне помог.
avatar

biopsihoz

  • 30 июня 2010, 14:30
0
categories, product — режимы базовые, они работают по умолчанию всегда, поэтому их указывать не требуется.
avatar

Carw

  • 30 июня 2010, 14:13
0
Насчет ЧПУ. Я до конца не разобрался.
Категории и товары нужно дублировать? Привязываем весь магазин к документу(например, id=49). Создаем Категорию в SBShop, создаем товар в SBShop. Потом дублируем их в основной ветке:
id=49->дочерний документ — это будет категория,
id=49->дочерний документ->дочерний документ — это будет товар.

И все это так сказать «синхронизируется» псевдонимами?
avatar

biopsihoz

  • 30 июня 2010, 14:59
0
Нет, дублировать ничего не нужно разумеется.
avatar

Carw

  • 30 июня 2010, 15:07
0
Очень полезная и интересная вещь, решил реализовать один каталог-магазин
но есть несколько вопросов:
— в дереве товаров не отображается иконка. Показывает что не хватает файла ~/assets/modules/3b-modules/fileorganizer/images/tree/package.png, но где добыть :)
— не нашел тот арзив в котором добавили поля в описании товара, или какой файл нужно редактировать.
— не показывает картинки ни в списке товаров ни в самом просмотре товара, хотя картинки на сервер в каталог загрузились.
По ходу реализации думаю будут еще вопросы, но хотелось бы решить хотя бы эти, перед тем начать использовать и настраивать магазин

avatar

MrBobaH

  • 8 июля 2010, 02:07
0
У иконки неверно указан путь. Сейчас исправленный файл есть на SVN. Путь указывается в файле assets/modules/sbshop/tree.inc.php. Можно исправить самостоятельно.

Поля также в SVN еще только.

С картинками не знаю с чем связана проблема. Возможно она с тем, что нужно вручную создать папку assets/images/sbshop
avatar

Carw

  • 8 июля 2010, 14:24
0
С картинками не знаю с чем связана проблема. Возможно она с тем, что нужно вручную создать папку assets/images/sbshop

Папка такая была и картинки туду же и загрузились в папку с именем 1 (наверное id товара)
avatar

MrBobaH

  • 8 июля 2010, 15:58
0
А… был еще такой глюк — при сохранении повторном картинки удалялись. Исправлено в SVN :)
avatar

Carw

  • 8 июля 2010, 16:08
0
ок Спасибки за ответы
Вечерком потестю :)
Из SVN брать последние релизы?
avatar

MrBobaH

  • 8 июля 2010, 17:11
0
Там не релизы, я туда забрасываю все доработки по мере их появления и исправления ошибок. До релиза дело еще не дошло пока.
avatar

Carw

  • 8 июля 2010, 17:14
0
Я уже понял
Тан написано что в и каких файлах править
avatar

MrBobaH

  • 8 июля 2010, 17:42
+1
Что если добавить немного графики?



Так следить за деятельностью магазина гораздо проще.
avatar

Carw

  • 9 июля 2010, 01:08
0
Carw, респект за работу. Очень симпатичная разработка. Но, к сожалению, я не смог настроить модуль на локалхосте. Вроде бы все сделал по инструкции. Не понял момент:
&doc_start=Документ магазина;string;15

Здесь 15 — это id корневого документа магазина, а «Документ магазина» это заголовок страницы?
И ещё у меня в дереве товаров почему-то ломается кодировка…
avatar

optimismous

  • 15 июля 2010, 11:43
+1
В будущем это все будет более удобно настраиваться надеюсь ).

Приведу на примере сайта 7plusov.ru — в корне лежит документ (а правильнее его называть «ресурс») с ID = 15. Он доступен по ссылке 7plusov.ru/magazin.html и там сразу видно разделы каталога и товары. Этот самый документ становится стартовым (корневым) для самого раздела электронного магазина. И прочие ссылки выглядят на подобии 7plusov.ru/magazin/uglovye-vanny/respekt.html

Так как магазин не обязан иметь привязку именно к 15 ресурсу, то нам нужно указать к какому ресурсу будет привязан магазин.

&doc_start=Документ магазина;string;15


Это запись конфигурации. Здесь doc_start — переменная в PHP, Документ магазина — текстовый заголовок, который отображается в конфигурации, string — тип поля, а 15 — само значение переменной. Менять нужно только значение.
avatar

Carw

  • 15 июля 2010, 11:59
0
Я вроде все сделала как описано… добавила зависимости, указала id корня каталога… Добавила все плейсхолдеры в корень каталога…
заработала только одна штука — ramie.ru/shop1/checkout.html

Как сделать чтобы можно было увидеть поля «Артикул», «Описание товара» и прочие на страницах товара?
avatar

chuvachon

  • 15 июля 2010, 23:02
0
в менеджере имеется ввиду… скриншот менеджера ramie.ru/1.gif
Помогите разобраться плз…
avatar

chuvachon

  • 15 июля 2010, 23:05
+1
судя по скриншоту вы добавляете товары в стандартном дереве материалов. А нужно запустить модуль SBShop (из верхнего горизонтального меню или нажав на шестеренку в списке модулей) и там появится дерево товаров.
avatar

optimismous

  • 16 июля 2010, 12:34
0
а в модуле только три ссылки на заказы и фраза «здесь пока ничего нет», а слева в дереве две строчки со сбитой кодировкой…
это и есть дерево товаров?
avatar

chuvachon

  • 16 июля 2010, 19:01
0
Да, там доступно контекстное меню по правому клику — img594.imageshack.us/img594/4444/scro.png.
С кодировкой у меня такая же проблема на локалхосте.
avatar

optimismous

  • 17 июля 2010, 12:49
0
спасибо большое, разобралась!.. с кодировкой засада конечно, и ничего не помогает
avatar

chuvachon

  • 17 июля 2010, 20:01
0
При
$modx->config['base_path'] != $_SERVER['DOCUMENT_ROOT']
т.е. если Modx стоит не в корне, модуль перестает работать
avatar

kvs

  • 17 июля 2010, 21:30
0
Да, известная бага.
avatar

Carw

  • 2 августа 2010, 20:29
0
все зависит от настроек treebuilder'a
/assets/libs/treebuilder/treebuilder.frame.php
и в
treebuilder.nodes.php

$siteURL = 'http://'. $_SERVER['HTTP_HOST']. '/';

получается, что и будет работать только в корне ;)
avatar

kvs

  • 3 августа 2010, 18:28
0
Все верно. Именно в этом причина. Но TreeBuilder — не моя разработка, поэтому я пока стараюсь в него не лезть.
avatar

Carw

  • 3 августа 2010, 18:34
0
Боже упоси, я Вас не обвиняю ;) попросту показал иде трабл находится
avatar

kvs

  • 3 августа 2010, 18:44
0
Я просто для справки, чтобы ситуация была понятна ;)
avatar

Carw

  • 3 августа 2010, 18:52
0
)
avatar

kvs

  • 3 августа 2010, 18:59
0
Надеюсь подобное решение скоро появится и для Революшина.
avatar

Spirit412

  • 2 августа 2010, 20:28
0
К сожалению, на эту тему я не думал еще. Пока не понятно, имеет ли это смысл.
avatar

Carw

  • 2 августа 2010, 20:32
0
как раз недавно наткнулся на этот сайт 7plusov.ru и было жутко интересно, что за такой модуль интернет-магазина используется на этом сайте)
avatar

Int

  • 13 августа 2010, 10:08
0
Именно этот и используется. :)
avatar

Carw

  • 13 августа 2010, 12:00
0
Полезный труд, автору много +++ов, а не планируется ли делать порт на Revo?
avatar

spfuture

  • 13 августа 2010, 12:24
0
На Revo пока не планируется.
avatar

Carw

  • 13 августа 2010, 13:06
0
Автору спасибо, все настроил как надо, но есть один вопрос. Как я понял картинки предусмотрены только на товары. Как сделать подгрузку изображений на категории?
avatar

IZE

  • 25 августа 2010, 03:30
0
точнее даже не на категорию, а на подкатегорию
avatar

IZE

  • 25 августа 2010, 03:31
0
Хороший вопрос. Добавить изображения для категории, в целом не сложно, но пока я этого не делал действительно. Возможно скоро появится такая необходимость, так как в нашем эталонном магазине намечается расширение ассортимента.
avatar

Carw

  • 15 сентября 2010, 00:52
0
Добрый день, у видел ваш модуль и затанцевал от радости, в нем есть почти все что мне необходимо реализовать.
но у меня есть один вопрос, как я понимаю магазин\каталог привязан к определенному ресурсу в древе документов. А можно ли обойтись без привязки ну или иметь возможность ее смены… объясню в чем дело…

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

подскажите по данному вопросу.
спасибо.
avatar

ilya_ib

  • 16 сентября 2010, 16:06
0
Интересный вопрос… Скажем так, изначально предполагалось, что магазин все же будет иметь некий общий каталог, к которому все привязано. Внутри самого каталога формируются ссылки для связки всех страниц каталога и они привязаны как к домену, так и самому корневому ресурсу. Вам же видимо необходимо, чтобы можно было привязывать какой-то раздел магазина к ресурсу, что может значительно усложнить систему и требует серьезной доработки.
avatar

Carw

  • 16 сентября 2010, 20:15
0
В какую сторону мне смотреть=), для добавления данной возможности?

просто необходимо реализовать данный функционал, и не хочется писать с 0, тем более что есть такой замечательный модуль…

кстати думаю данная система будет полезна не только мне, но и другим пользователям например для создания мультиязычного ресурса (ru, com)

avatar

ilya_ib

  • 17 сентября 2010, 10:38
0
В целом я могу подсказать куда копать, но нужно понять задачу более точно. Предлагаю отписать мне в личку и порешать все вопросы.
avatar

Carw

  • 17 сентября 2010, 15:43
0
Реализовал новую возможность, которая называется «Комплектации». Суть ее очень проста. Если есть товар с возможностью выбрать для него некие опции, то появляются типовые варианты, которые чаще всего выбирают покупатели. Это и есть комплектация, которую можно сразу предложить клиенту. К тому же, для комплектации можно назначить свою собственную цену, если готовая сборка стоит дешевле, чем самостоятельно выбранные опции.

Как это примерно выглядит:



А вот и небольшой скриншот с управлением:



Как можно увидеть, здесь уже дело начинает доходить до более удобного интерфейса. И эта тенденция скоро обязательно захватит параметры, опции и т.д.
avatar

Carw

  • 25 сентября 2010, 20:52
0
Впрочем настройки здесь задаются до сих пор вручную в виде перечисления идентификаторов. Но, после изменения интерфейса опций планируется это исправить и сделать возможность выбирать имеющиеся опции.
avatar

Carw

  • 25 сентября 2010, 20:55
0
Опции переработаны в последнем коммите. Если кто-то их использует, то необходимо будет произвести конвертацию данных. Также для опций сделан интерфейс для управления.
avatar

Carw

  • 5 октября 2010, 22:20
0
Начал делать на SBShop магазин. Еще очень всего много надо делать, но уже что то есть. Брал еще старую ревизию.
Немного заполнен только раздел Спецодежда
www.mobisnab.ru/
avatar

sasas

  • 29 октября 2010, 17:03
0
Интересно получается. Кстати, советую не только основную ветку смотреть в SVN (хотя там много интересного еще появилось), но и обратить внимание на ветку, которой занимается Tonatos. Там например управление картинками доработано. Еще не факт, что его решения в таком именно виде войдут в основную ветку, но для конкретного проекта может пригодиться.
avatar

Carw

  • 29 октября 2010, 21:21
0
Здравствуйте,
подскажите пожалуйста, на текущий момент удалось ли реализовать:
— личный кабинет
— скидки
— онлайн оплата
Или пока еще нет?
avatar

Int

  • 17 января 2011, 19:37
0
Нет, на данный момент эти решения не реализованы.
avatar

Carw

  • 17 января 2011, 19:54
0
Добрый день глянул демку магазина очень понравилось, но возникло пару вопросов:

хочу реализовать каталог в данный момент он весь в дереве документов 11 000 тыс, на что уже начинает ругаться хостер, что мол нагрузка очень большая.

Частично решил вопрос уменьшением вывода товаров на страничке с 100 до 20 и установкой в дитто &depth=1, но все же думаю что пора искать альтернативное решение размещение товаров.

+ немного изменил кеширования modx предлагаемое в комьюнити

количество товаров планируется +- 20 000 тестили ли с таким обьемом?

На данный момент посещения ресурса +- 700 посещений в день

avatar

Dmi3y

  • 11 августа 2011, 00:03
0
Совсем забыл? нет ли решения по переносу из дерева документов
товаров в SBShop?
avatar

Dmi3y

  • 11 августа 2011, 00:06
0
Сорри не в той ветке написал :) есть же отдельный блог по sbshop
avatar

Dmi3y

  • 11 августа 2011, 00:37
0
Увы…
avatar

Carw

  • 11 августа 2011, 00:37
0
Приветствую!

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

И, хотя я изначально думал о производительности, SBShop стоит применять пока только в случае желания (и возможности) его допиливать. При объеме 20 тыс надо будет позаботиться о кешировании, как минимум. Потенциал хороший, но работы еще куча. Поэтому еще альфа.
avatar

Carw

  • 11 августа 2011, 00:36

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.