Форум → Сборка интернет магазина для продажи товара, который приобретается несколькими единицами сразу (запчасти, мелкие комплетующие).
В моём случае хотелось бы реализовать интернете магазин для продажи радиодеталей. Пройдясь по магазинам подобного профиля и сравнив его с существующей сборкой интернет магазина, выложенной здесь хотелось бы отметить некоторые главные задачи, которые нужно изменить и добавить:
1. Возможность выводить на главную страницу сайта «свежее поступление товара» — должно быть разделено на категории, а отображение товара по идее должно включаться через админку, как, к примеру «хит продаж».
2. Реализовать информацию об остатках товара, а также " нет в наличии".
3. Когда открыт сам товар — возможность покупки сразу нескольких единиц, при этом покупатель сам должен вводить количество покураемого товара и изменять его количество непосредственно в корзине.
4. Также, когда открыт товар, должна присутствовать ссылка на техническую документацию (так назыааемый даташит в pdf, который должен храниться на сайте).
5. При оформлении заказа клиенту должно приходить письмо на эл.почту с номером заказа и текстом, который можно написать в админке.
6. При оформлении заказа клиент должен выбрать из списка службу доставки груза, а также должен указать город и номер отделения для доставки.
7. Ну и конечно же реализовать смену валюты.
В принципе перечислил вроде бы все главные аспекты.
На данный момент пока что собран только билд репозитория из github. На сервер в дебиан его ещё не ставил, по этому поводу немного почитают google, как это правильно сделать… И, возможно, вечером продолжу работу в этом направлении.
sandro | |
30 Ноября 2014, 16:20 |
В общем запустил билд под дебиан, правда не получается войти в управление сайтом используя имя admin и пароль admin.
После этого был переименован def.htaccess в .htaccess, был включен mod_rewrite (хотя до этого включал). Все также не получается авторизоваться, выскакивает сообщение «NOT FOUND». Ссылки /about, /news и прочее не работают. В браузере видно обновленный интерфейс сайта, новости, поздравление с успешной установкой платформы...
Если ссылки /about не работают, однозначно не работает mod_rewrite или .htaccess
Только что решил проблему gedit /etc/apache2/sites-available/default в начальном разделе править с “AllowOverride none” на “AllowOverride all”. В разделе Directory править на "AllowOverride FileInfo"
Да, заметны изменения в новой версии, прям «небо и земля».
Касательно интернет-магазина:
1. Доступно в текущей реализации, настройка осуществляется через включение флага «Новинка»
2. Информация об остатках товара должна быть доступна всем пользователям на сайте или только админу в админке?
3. Не проблема, задача есть в планах, будет реализована в приоритете
4. Файлы можно вставлять в описание товара, а можно реализовать в виде отдельного поля при заполнении товара. В любом случае реализация не проблема, необходимые инструменты для этого разработаны
5. Есть в планах, реализацию можно ставить на приоритет
6. Задача тоже общего характера, так что тоже можно ставить на приоритет
7. Не проблема, задача общая, выбор валюты будет вынесена в настройки
По п.2: Немного подумав, всё-таки об остатках лучше знать только админу. По крайней мере, т.к. я являюсь частым гостем на подобных сайтах, то информацию об остатке видел только у тех, кто занимается оптовыми продажами, в рознице же — остаток нигде не видел. (Я планирую розничную продажу).
ага, нечего конкурентам знать положение дел.
Следующим шагом необходимо создать свою собственную сборку, можно на базе этой и залить ее в закрытый репозиторий, например на bitbucket.org
Далее в этой сборке создать свой шаблон и уже все изменения фиксировать в репозиторий
Можете пролить свет как именно создать свою сборку на базе Вашей (которая пока что еще у меня без изменений)?
Просто архивировать весь получившийся по ридми билд и залить его на bitbucket?
Нет, не в коем случае. Создать свою на базе этой можно следующим образом:
1. Регистрируемся на bitbucket.org, в настройках переключаемся на русский язык
2. Создаем новый репозиторий, указываем его тип как закрытый. Допустим репозиторий будет myeshop.
3. После создания репозитория Битбакет выкидывает подсказку, как залить новый репозиторий. А именно, в папке проекта выполняем команды:
удаляем папку .git
git init
git remote add origin git@bitbucket.org:[имя_учетки]/myeshop.git
git add .
git commit -am «Мой первый коммит»
git push -u origin master
После этого проект будет выгружен в ваш репозиторий.
Если внесли изменения и хотите их зафиксировать в репозитории, то выполняете команды:
git add .
git commit -am «Поправил стили в картинках сайта»
git push
Готово. Спасибо.
Нашёл один нюанс в сборке интернет-магазина — не работают подразделы в каталоге продукции (до этого в каталоге создан раздел и в нем подраздел), т.е. перейдя в каталог видим разделы продукции выбираем один из разделов и следом загружается страница раздела, но пустая, без подразделов.
Нюанс 2: При добавлении товара в корзину ничего не происходит (постоянно крутится анимация ожидания), корзина также не открывается.
Следующий шаг — добавление шаблона в сборку.
Если сохранился оригинал первоначальной сборки с abricos/abricos, то перейдите в ее папку и выполните команду:
git pull
это команда примет появившиеся изменения в сборке, а именно — я добавил сейчас в нее шаблон для примера.
После получения новой версии сборки, скопируйте папку templates в свою локальную сборку. Эта папка сейчас содержит шаблон example (в templates можно создавать сколько угодно шаблонов сайта).
Теперь можно повторно собрать рабочую версию сайта командой
mk-grunt build
Как мы видим, в рабочей версии, в папке tt появился шаблон example.
Так же, недавно были обновлены некоторые модули (исправлены ошибки, добавлены возможности и т.п.). Так вот, нет необходимости заходить в каждый модуль своей локальной сборки и вызывать процесс получения актуальных версий с репозитория. Чтобы все изменения появились в локальной версии, достаточно выполнить команду
mk update
Это команда позволяет держать локальную сборку в актуальном состоянии.
Рекомендую вызывать эту команду каждый раз, когда планируете поработать со сборкой или просто обновить ядро и все модули до актуальных.
добавление товара починил, обновляйте сборку:
mk update
По поводу разделов и подразделов — завтра посмотрю
Пока есть время до вечера (именно тогда продолжу работу над сборкой) хотелось бы уточнить, а может и упростить для меня некоторые нюансы по работе с обновлениями сборки:
В моем случае имеется папка /abricos с файлами, полученными при разворачивании с abricos/abricos, также в той папке находится папка рабочего билда — build, полученная командой терминала mk-grunt build. Файлы папки build помещены в /var/www — папку сервера для работы самого сайта. Исходя из этого и написанного Вами:
1. Команду git pull нужно выполнять находясь в папке abricos?
2. Извините, но несовсем понятно откуда копировать саму папку templates… И поместить её нужно опять таки в abricos или abricos/build?
3. mk update производить находясь в папке abricos?
4. После всех манипуляций файлы из abricos/build помещаются в /var/www с заменой старых?
Прежде, чтобы снять путаницу, отныне Сборку будем называть Проект или Редакция.
Удобная организация работы с несколькими локальными проектами (для разработчика):
1. В домашней папке /home/[username]/work располагаются проекты различных сайтов (далее проект обозначается как [project])
2. Виртуальные хосты apache настроены на папки /home/[username]/work/[project]/build
3. Обращение к локальным сайтам происходит по запросу http://[project].local (настройка через /etc/hosts)
Все команды (mk-grunt ...; git… и т.п.) всегда выполняются в папке проекта
В итоге, если следовать такой структуре, то в вашем случае на локальном серваке в папке /home/[username]/work/ будут две папки проектов: abricos и [myeshop] и в каждой из них будут папки build, на которые будут настроены виртуальные хосты апач. Или, чтобы не заморачиваться, настроить хост апач default на /home/[username]/work/[myeshop]/build
Теперь по поводу добавления шаблона из проекта abricos в [myeshop]:
1. Зайдите в папку проекта abricos и выполните команду
git pull
В этот момент git выгрузит обновленные файлы проекта, в данном случае, появится новая папка templates
2. Скопируйте папку templates из проекта abricos в папку проекта [myeshop]
3. Перейдите в проект [myeshop] и выполните команду:
mk update
mk-grunt build
Примечание: mk update — загружает обновления по модулям и ядру в проекте, mk-grunt build — собирает рабочие файлы движка в папку проекта build
После выполнения этих команд будет собран движок для сайта с новым шаблоном example (/home/[username]/work/[project]/build/tt/example)
Чтобы не путаться, достаточно понять структуру файлов проекта:
[project]/
abricos.src/ — исходники движка (ядро, модули и прочие сторонние библиотеки)
build/ — собранный рабочий движок из исходников
src/ — дополнительные файлы, которые копируются в папку build при сборки движка командой mk-grunt build
templates/ — исходники шаблонов, которые компилируются в готовые шаблоны при сборке движка в папку build/tt/
Все понятно расписали, спасибо. И все получилось сделать. Корзина работает.
Следующий шаг — оптимизация процесса разработки.
Перед тем, как приступить к внесению изменений, например шаблона в проекте сайта, необходимо выполнить команду:
grunt watch
будет запущен своего рода демон, который следит за изменениями в файлах проекта и если замечает эти изменения тут же запускает процесс сборки рабочей версии. Это удобно тем, что уже нет необходимости после каждых изменений запускать команду mk-grunt build.
Если необходимо следить за изменениями в модуле или ядре, необходимо выполнить команду в корне проекта:
mk-grunt watch --filter=[имя_модуля|имя_шаблона|core]
Например,
mk-grunt watch --filter=eshop
будет следить за изменениями в модуле eshop ([project]/abricos.src/modules/eshop/)
mk-grunt watch --filter=core
будет следить за изменениями в ядре ([project]/abricos.src/core/)
Сделано.
В предыдущих версиях подразумевалось, что необходимо обязательно добавлять в структуре сайта раздел меню с именем eshop, даже инструкция по установке есть http://abricos.org/mods/eshop/
Но, как правило инструкции у нас стараются не читать, да и самих инструкций не так достаточно, как хотелось бы, поэтому исправил отображение каталога и товаров с отсутствующим элементом меню.
Но пока добавлять пункт меню все же придется, так как без него не формируются хлебные крошки.
Обновляйте проекта:
mk update && mk-grunt build
Да, сделано, всё работает. Есть вопрос: хотелось бы добавить состояние корзины на главную страницу, размещённую под авторизацией (как это было в сборке на старой версии 0.5.4.4), какие файлы отвечают за это? В принципе с элементами модулей разобрался, видимо править придется main.html и main.css в шаблоне example.
Чтобы добавить поиск по товарам и корзину на страницу, необходимо в заголовках шаблона добавить:
[mod=eshop]searchline|extfilter=brand: выбор по производителю[/mod]
[mod=eshopcart]cartsm[/mod]
и в теле шаблона соответственно:
p.s. начал разрабатывать возможность настраивать валюту для товаров и даже планировал сегодня выпустить обновление, но все планы попутал роскомнадзор, который заблокировал в России Girhub. В итоге время потерял на поиск решений этих проблем. В ближайшее время выйдет новая функция в настройках проекта сайта указывать зеркала репозиториев.
Извините, что в теле шаблона добавить?
Парсер съел теги. Добавить необходимо результаты запроса компонентов:
парсер...
может картинкой покажете?
Добавил в проект abricos/abricos. Обновляйте официальную редакцию. Внесенные изменения так же можно посмотреть в коммите: github.com/abricos/abricos/commit/60a79404b67c3367dc58666fc3dec15e1cd0aa69
Из всех изменений в своем проекте применил только корзину, а то поиск и корзина вместе «слиплись». Как можно добавленную корзину выставить по левому краю блока?
Извиняюсь, по правому краю, сейчас и так по левому получается.
fjsdj sfkdfkjdfkjfkjsdklasjklf slsfdfjsskldssrie efodfeo edfdlfdlfdkfl; dlkf dl;fkeopi ksdcl;kdlsfkeopfi dfkd l;k dldgjsddslf ksldfkeo
______________________________________________________
asad
Разработка дизайна сайта стало значительно проще, так как эта версия платформы базируется на популярном CSS фреймворке Bootstrap 3.
К этому фреймворку на текущий момент в интернет полно как платных, так и бесплатных шаблонов сайта.
Официальный сайт: http://getbootstrap.com/
Сайт на русском http://bootstrap-3.ru/index.php
Да, я вчера, копаясь в исходниках проекта, обнаружил, что за стили отвечает bootstrap. Нашёл необходимый файл css в папке boodstrap, но отредактировать не удалось — gedit виснет при открытии этого файла. Сейчас займусь поиском другого инструмента для редактирования стилей.
CSS Bootstap-а править нет необходимости, использовать CSS файл, который дополнительно подключается. Гляньте исходники шаблона example, в папке less как раз и лежит исходник будущего css файла.
Кстати, в новой версии как раз и применяются исходные CSS файлы в формате LESS. Очень удобный формат.
Обновил проект сайта abricos, в частности настроил более приемлемую шапку с поиском и корзиной. Обновляйте проект:
git pull && mk update && mk-grunt build
Кстати, можно просмотреть вносимые изменения в проект: https://github.com/abricos/abricos/commits/master
Любые части шаблона можно вынести в отдельные элементы. Это особенно полезно, когда на сайте применяются разные шаблоны для определенных страниц. Т.е. очень часто бывает, что шаблон главной страницы отличается от всех остальных страниц. Например на главной может не быть сайдбара. И когда при этом части шаблона вынесены в отдельные элементы, нет необходимости потом в случае внесения изменений править одно и тоже в нескольких места.
Вынесение частей шаблона в отдельные элементы схожи с методом перегрузки элементов шаблона модуля.
Например, необходимо вынести часть шаблона шапки в отдельный элемент шаблона.
Для этого, в папке шаблона создается файл в override/sitemap/brick/header.html и описывается как элемент шаблона модуля. А вызывается этот элемент, как стандартный элемент шаблона модуля: [mod=sitemap]header[/mod]
Вынесенная шапка шаблона в отдельный элемент: override/sitemap/brick/header.html
Вызов этого элемента в main.html строка 20 и применение его строка 50
Здравствуйте, обновил сборку. Благодаря источнику, ссылку на который Вы дали в предыдущем посте понял что и как было сделано, очень удобно. По последнему Вашему посту стало еще понятней). Большое спасибо. Такой метод (создание элементов модулей) куда лучше.
Реализована система настройки валют в интернет-магазине.
Настройка доступна в Панель управления -> Интернет-магазин -> Настройка каталога -> Справочник валют
Версия свежая, возможны недочеты, если таковые вылезут, сообщайте
Работает и довольно хорошо реализовано, есть один нюанс, конечно, каждую валюту можно сделать «по умолчанию», при этом та валюта, что раньше была по умолчанию так и остается быть по умолчанию, поэтому галочку «по умолчанию» на других валютах надо снимать, Но этот нюанс никак абсолютно не мешает.
В существующей сборке нашел другой нюанс — если на главной странице в поле «doc» (там где пишется поздравление об успешной установке), да и не только в «doc» установить элемент модуля «новинки» на экране отображаются несколько тех самых новинок и ссылка на открытие всех новинок, так вот при открытии всех новинок — пустая станица. По сути то же, что и было с подкаталогами.
Валюту «по умолчанию» исправил, вчера на скоростях пропустил добавление этого метода.
По поводу новинок/хитов планирую существенную переработку, потому как на разных сайтах новинки отображаются по разному. На одних сайтах новинки в виде скролинга, а на каких то в виде списка, а на каких вообще смешано. Допустим товар является хитом и является новинкой, в итоге получается два разных списка в которых присутствует один и тот же товар.
В общем нужно искать универсальное решение, которое подойдет под разные вариации. Как решение будет найдено, будет реализован более грамотный механизм отображения. Но на текущий момент я пока склоняюсь к мысли вообще убрать понятие новинок/хитов, а сделать отдельный конструктор, где админ сам будет формировать критерий выделения товара и соответственно его настраивать. Надо думать...
Кстати, обновил официальную сборку. В нее добавил простой шаблон интернет магазина eshoptp и данные для демонстрации интернет-магазина eshopportal
Теперь при установки этой сборки разворачивается демонстрационный интернет-магазин с некоторым заполненным товаром (не на весь товар заполнены картинки, руки не доходят, но для теста нормально).
В этой версии рекомендую обратить внимание:
1. Отдельно для главной страницы устанавливается персональный шаблон eshop:home
2. Шаблон можно хранить в отдельном репозитории, что дает массу дополнительных возможностей (использовать один шаблон на множество проектов, возможность перегружать CSS стили в другом шаблоне)
Касательно багов, недочетов и предложений, по возможности кидайте в багтрекер официальной сборки: https://github.com/abricos/abricos/issues, там удобнее работать с этим. Хотя на форум тоже не возбраняется. Все средства хороши, лишь бы побольше выявить этих багов, пора уже платформу выводить в свет.
Думаю новинки мне самому под силу будет изменить, по крайней мере, если будут вопросы, то я обязательно обращусь. Но это на данном этапе не главное (для меня), все же актуальнее вопрос стоит о реализации пункта 3, а именно возможность покупки сразу нескольких единиц одной позиции.
После новой версии 0.5.6, официальная уже что-то не то (ИМХО).
Необходимо в корзине изменять количество и/или текстовое поле ± рядом с кнопкой купить?
Вообще, в идеале изменение количества должно быть и в корзине, и возле кнопки купить...
Вот, как по мне, идеально организованный сайт. http://www.e-voron.dp.ua/
Согласен, изменения должны быть и там и там.
Кстати, на сайте применяются скидки от количества товаров. Задача тоже первостепенная, часто запрашивают, думаю в ближайшее время реализую.
В их случае присутствуют скидки из-за оптово-розничной торговли, также они и остаток по товару публикуют.
По поводу остатка окончательно передумал, т.к. если я не планируют его публикацию, то остаток по товару и прочие вещи по торговле гораздо удобнее организовывать в специальных программах вроде 1с.
Кстати, очень часто запрашивают интеграцию с 1С, можно будет кому нибудь разработать этот модуль и выставить его в магазине Абрикос (запланирован уже скоро).
Реализовал возможность изменения количества товара в корзине
Потестил возможность изменения количества товара. Реализовано довольно хорошо, даже не видно особой необходимости в выборе количества возле кнопки «Купить». Но есть один нюанс. При покупке товара, находясь в каталоге с разными товарами происходит следующее:
На одном из товаров нажимаю купить сразу открывается корзина, там я выбираю необходимое количество и нажимаю внизу «продолжить покупки», нажимаю «купить» у соседнего товара, опять открывается корзина, но там только предыдущий товар, что бы добавить другой товар нужно обновить страницу в браузере, потом кликнуть на «купить» и только после этого он окажется в корзине.
В принципе неплохая затея с автоматическим открытием корзины, осталось исправить описанный недостаток и интернет-магазин вполне получается удачным.
Еще нюанс — если добавлены товары в корзину, а корзина либо была закрыта, либо нажата «продолжить покупки», то при последующем открытии корзины и изменении в ней количества товара сумма «итого» не меняется и при закрытии корзины сделанные изменения с количеством сбрасываются.
баги исправил, проверяйте
Здравствуйте, старые баги ушли, но обнаружил еще один, описываю:
Если добавить товар в корзину (пусть его стоимость будет 2,50), в корзине он появляется в одном экземпляре, напротив товара 2,50 и «итого» тоже 2,50. Далее жму "+" возле количества — возле товара становится 5,00 и «итого» 5,00. Но если нажать "+" еще раз, то напротив товара уже 7,50, а «итого» как и прежде 5,00, нажимаю "+" еще раз — напротив товара 10,00, а итого — 7,50 и дальше считает нормально, но разница остается 2,50. Далее нажимаю "-" (было напротив товара 10,00, итого 7,50) становится напротив товара 7,50, а «итого» — 10,00 и дальше, нажимая на минус возвращаясь к одной единице товара — напротив становится 2,50, а итого — 5,00. Если закрыть корзину. То вверху страницы, там где информируется состояние корзины, написано, что в корзине 2,50. Открываю корзину снова — напротив товара 2,50 и итого стало 2,50, т.е. все нормально. В общем проблема с итого при открытой корзине, если корзину закрыть, то все становится верно.
интересный был баг — идеологический.
Так же пришлось временно закрыть возможность авторизации/регистрации в корзине для гостей, так как появились несовместимые механизмы, над которыми нужно думать. В ближайшее время буду искать решение по этому поводу.
До этого не обращал внимание на авторизацию/регистрацию в корзине. Но в своих целях я не считаю нужным иметь регистрацию на сайте для покупок. Достаточно при заказе указать свою почту и все остальное (что уже предусмотрено) в полях заказа и покупателю просто должны прийти на почту подробности своего заказа, после чего продавец с ним свяжется или по почте или по телефону.
Интересует также реализация «нет в наличии». В моём понимании эта надпись должна вписаться вместо цены с валютой, конечно можно это написать в поле цены через админку, но в таком случае к этой надписи прибавился постфикс валюты, что не очень-то приятно будет смотреться.
Да, ещё заметил — в настройках магазина, там где нужно указать почтовый ящик на кот. будут приходить уведомления о заказах, при вводе ящика и сохранении его ничего не сохраняется (долго крутится анимация ожидания). Может это связано с тем, что на виртуальном сервере нет почтового сервиса? Т.к. не пробовал билд ещё закидывать на хостинг.
С сохранением настроек исправлено. Причина была в новой версии хранения глобальных настроек модулей.
Кстати, эта новая версия хранения настроек позволяет все глобальные настройки модулей перегружать в config.php. Если будет интересно, распишу отдельно эту возможность.
Касательно «нет в наличии» — не совсем понял где и при каких обстоятельствах это вылезает?
Кстати, на локальной машине можно включить возможность сохранять в файл все отправляемые сообщения на емайл платформой. Подробнее на этой странице - http://abricos.org/mods/notify/
Имеется ввиду пункт 2 основных задач, а именно реализация «нет в наличии». Если товара сейчас нет в наличии, кончился, но должен быть скоро в наличии, обычно такому товару вешают «нет в наличии» и помечается он либо полупрозрачностью изображения товара и надписью «нет в наличии» или просто «нет в наличии» вместо цены или возле. Вот, к примеру http://aliot.com.ua/?item=30700&cat=4517
Вот, кстати еще несколько примеров, по-моему удачного магазина: http://aliot.com.ua/?cat=4517 Обратите внимание — выше цены указывается наличие товара.
Также на главной, на мой взгляд, идеальное расположение товаров «новинки», http://aliot.com.ua но это так, к примеру, по поводу вопроса новинок.
По поводу «нет в наличие», можно реализовать текущим способом, но пока не стоит. Есть тут у меня кое-какая задумка на этот счет, а именно стандартизировать этот процесс с учетом различных опций товара.
Реализована возможность гибкой настройки шаблона отображения товара. Стало доступно реализация пункта №2 -«Нет в наличие».
Подробности описал в блоге в теме Гибкий шаблон интернет-магазина. Внешний вид исходя из значений опций товара
Здравствуйте, хорошая новость, но сегодня проверить нет возможности. Завтра, надеюсь, получится.
Здравствуйте, созрели вопросы:
1. В каком файле содержаться «в наличии» и «под заказ» хочу внести свою индивидуальную правку.
2. Реально ли при заказе через корзину реализовать то, что я писал в одном из предыдущих постов, а именно "Достаточно при заказе указать свою почту и все остальное (что уже предусмотрено) в полях заказа и покупателю просто должны прийти на почту подробности своего заказа, после чего продавец с ним свяжется или по почте или по телефону."
По поводу простейшего (но пока для меня непонятного — использование less): Для примера хочу изменить общий фон — поиски указали на строку
.table td,.table th{
background-color:#fff!important
}
в файле bootstrap.min.css
Что необходимо добавить в папку templates/example/src/less? Что бы изменить, к примеру цвет фона на #000000?
Извиняюсь, не то написал, строка -
body{
font-family:«Helvetica Neue»,Helvetica,Arial,sans-serif;
font-size:14px;
line-height:1.42857143;
color:#333;
background-color:#fff
Извиняюсь, все, разобрался.
День добрый.
1. Набросал инструкцию по перегрузке шаблонов: Персональный шаблон отображения товара в интернет-магазине
2. В данном случае можно в ближайшей версией обойтись добавлением поля e-mail при оформлении заказа. А на будущее запланировать отправку автоматических уведомлений при обязательном указании e-mail
По большому счёту автоматическое уведомление особо и не нужно. Для дополнительного ввода электронной почты, я так понимаю, нужно ковырять модуль eshopcart?
Модуль EShopCart отвечает за корзину.
Можно уже не ковырять его, поле e-mail добавил, проверяйте.
Я считал, что заказ происходит из модуля корзины eshopcart, хорошо, какой модуль формирует заказ? Просто на будущее...
Совершенно верно, модуль EShopCart это и корзина и менеджер заказов. Модуль EShop — это надстройка продуктов над модулем Catalog.
Например, модуль Mods (Каталог расширений) тоже работает на базе модуля Catalog и в будущем к этому модулю можно будет так же прикрутить модуль EShopCart.
Нашёл баг, которого раньше не было. И содержится он в визуальном редакторе, который позволяет писать и редактироваьт текст, вставлять различные модули, к примеру на главной странице, где написано поздравление об успешной установке платформы. Так вот после последнего обновления, если отредактировать текст, то при сохранении весь текст становится одного размера, стиля, без абзацев и т.д. и т.п. И подключаемые через него элементы модулей не отображаются.
Решение вопроса с поеданием некоторых тегов в парсере со всеми вытекающими...
Баг исправил, спасибо.
P.S. походу настала пора уводить разработку в отдельные бранчи и уже после теста выливать их в master.
С Новым Годом Вас. Есть еще некоторая мысль по поводу развития интернет-магазина… Не знаю как это реализовано у других, может с помощью интеграции с 1С… В общем мысль в следующем, т.к. почти вся торговля связана с долларом, а сами продажи идут в национальной валюте, то было бы целесообразно товарам назначать цену в условных единицах. При этом реализовать возможность внесения текущего курса, после чего все цены в у.е. будут автоматически пересчитаны в национальную валюту, это очень удобно. Но, это необходимо не для каждого товара, скорее это должно быть опцией, например для товаров старой закупки (2-ух летней давности) все-же желательно вносить фиксированную цену в национальной валюте.
С новым годом!
Я думаю можно создать валюту и назвать ее УЕ. В систему я заложил возможность автоматического пересчета курса, а так же возможность в будущем устанавливать валюту отдельно как на сам товар, так и на группу товаров по типу или по каталогу.
Но. Сейчас я активно переключился на создании новой версии 0.6.0 исходя из того, что уже оттягивать ее разработку не возможно. Планирую версию 0.6.0 выпустить уже в январе.
Основная причина разработки этой версии — покрытие автоматическими тестами ядра и модулей, дабы избежать большую часть нелепых багов. Из второстепенных возможностей — более грамотную систему компиляции сборки (проекта) со всевозможными вытекающими фишками. Например, в новой версии, на этапе компиляции проекта, будет происходить преобразование шаблона в распарсенный формат JSON, что в свою очередь позволит:
1. документировать шаблон и его элементы,
2. увеличит скорость сборки движка в разы, так как не будет сложного процесса парсинга
3. положит начало разработки системы кеширования
и многое многое другое...
А так же, платформа плавно перейдет к следующему этапу своего развития — окончательного разделения сервера и клиента, с подробным API. Кстати, эта возможность позволит разрабатывать свои приложения для чего угодно (мобильные приложения и пр.), использую API.
В общем, версия 0.5.6 — как оказалось промежуточная, так и не получившая официального выхода.
Извините, возможно вопрос глупый, но я так и не понял как и где реализован автоматический пересчет валюты.
PS: наконец-то продолжил работу, 0.5.6 меня вполне устраивает, уже довольно много подпилил под свои нужды, единственное чего не пойму — как вернуть на главную страницу каталог товаров, как это было реализовано в предыдущей версии абрикос.
Пересчет валюты не реализован, но заложен в систему. Т.е. чтобы это работало, нужно добавить несколько функций к уже имеющемся функционалу. В ближайшее время попробую найти время и добавить эти функции.
Желательно свои изменения, если они касаются модулей или ядра, т.е. идет правка исходного кода, отправлять их на запрос внесения изменений в исходный репозиторий (так называемый pull request). Это необходимо для того, чтобы при очередном обновлении проекта не затереть свои правки.
Чтобы установить каталог товар на главную, необходимо добавить в шаблон главной страницы следующее:
в параметры шаблона:
в тело шаблона:
[ mod ] eshop:catalog_list [ / mod ]
(без пробелов конечно же)
[ mod = eshop ] catalog_list [ / mod ]
Ничего не выходит...
Правку вносил в файл sidebar.html в templates/шаблон/src/override/sitemap/brick
Получается такая песня (в картинках):
[URL=http://hostingkartinok.com/show-image.php?id=b592be523d1cac0f41baefcca6984768][IMG]http://s7.hostingkartinok.com/uploads/thumbs/2015/01/b592be523d1cac0f41baefcca6984768.png[/IMG][/URL]
[URL=http://hostingkartinok.com/show-image.php?id=e1f35bf608fd63ca5cfdab38d3700826][IMG]http://s7.hostingkartinok.com/uploads/thumbs/2015/01/e1f35bf608fd63ca5cfdab38d3700826.png[/IMG][/URL]
Или вот:
hkar.ru/yiFf
и вот:
hkar.ru/yiFd
в теле шаблона, вставка списка разделов содержит ошибку:
eshop:catalog_list|[/mod
символ "|" лишний
… это, наверное, мигал курсор, извиняюсь). Написал все по-новой — результат тот-же.
А на скриншоте hkar.ru/yiFd разве не каталог товаров выходит (диоды, конденсаторы и т.д.)?
ааа, понял. нужен не каталог разделов, а каталог товаров. заработался...
Да, каталог, но интересует его отображение. В предыдущей версии сборки каталог был в столбик и подкаталоги товаров (насколько я помню) открывались вниз
Да нет, это видимо я заработался интересуют именно разделы...
Для этого нужно создать в структуре сайта раздел с любым названием (например, Каталог товаров) и именем eshop, если нужно, можно его скрыть, поставив галку.
Далее в шаблоне вызвать элемент шаблона hmenublock модуля sitemap:
[ mod=sitemap ]hmenublock|fromMenu=eshop|lineLimit=4[ / mod ]
и в теле шаблона
[ mod ]sitemap:hmenublock[ / mod ]
По поводу eshop — все было сделано уже давно, оттуда же и добавленные разделы через админку в интернет магазин «диоды, конденсаторы и т.д.».
Приведённый Вами код также не работает — появляется беспорядочно разбросанные названия разделов «диоды, конденсаторы и т.д.» при этом даже не в виде ссылок, т.е. никаких реакций на курсор и кнопки мыши не оказывают...
Пробовал вставлять строки из старого шаблона интернет-магазина, а именно:
[ mod=sitemap ]vmenu |not=eshop,vmenuf| from=eshop,breadcrumb[ /mod ]
и
[ mod ]sitemap:vmenu [ /mod ]
[ mod ]sitemap:vmenuf[ /mod ]
Как видно речь идет о тех самых хлебных крошках, которые создаются при добавлении раздела с адресом eshop.
Но и после этих строк вообще ничего подобного на странице сайта не отображается.
Вот этот блок будет правильный. На этом сайте используется: http://shkafkupekazan.ru/eshop/furnitura/
[ mod=sitemap ]vmenuaccord|fromMenu=eshop[ / mod]
и
[ mod ]sitemap:vmenuaccord[/ mod ]
P.S. Это все последствия отсутствия документации. Пора поскорее выпускать версию 0.6.0, в ней я реализовал возможность документирования этих блоков и их параметров
Да, работает, пока применил этот вариант.
После вчерашних долгих заседаний со стилями колонок bootstrap (все закончилось благополучно) планомерно переключился на карусель и был удивлен тем, что до обновлений (очень давно) она еще как-то работала, сейчас же никак не получается её завести (сам её еще пока не ломал). Просмотр слайдов из админки работает.
Т.е. делал так: в шаблоне в начале прописывал
[mod=carousel]carousel[/mod]
и уже в теле среди прочего
<div id=«doc»>
<div class=«container»>
<div class=«content»>
<div class=«row»>
<div class=«col-md-9»>
[tt]content[/tt]
</div>
<div class=«col-md-3»>
</div>
</div>
</div>
</div>
Для определения карусели, необходимо указать ее имя. Т.к. в новой версии их может быть несколько.
[mod=carousel]carousel|name=myname[/mod]
соответственно в админке, в созданной карусели необходимо в созданной карусели указать имя myname
Есть еще вопрос, на данный момент он не актуален, но может быть в будущем понадобится: Как с со своего репозиотория битбакет восстановить файлы своего проекта?
На данный момент уже подготовил релиз-кандидат своей сборки, позже появится в сети, тогда и сообщу и может чего еще посоветуете...
git reset --hard восстанавливает файлы в локальном репозитории. Процесс необратим.
Ну вот, собственно и первый неожиданный глюк после заливки содержимого папки build и предварительного редактирования файла config.php — не работает кнопка «вход», вот сайт.
Проблемы с сжатием JS. С подобным уже встречался, но как починить не помню. Где то тут на форуме решение было. Сервер случайно не nginx?
Чувствую это распространенная проблема. Надо будет по умолчанию отключить сжатие в новой версии.
и еще кое-что — вот и вся информация о сервере.
Скорее всего нужно включить модуль gzip для сжатия.
Или проверить — отключить сжатие в файле движка gzip.php, параметр $compress поставить в false
Да, уже на форуме нашёл, поставил false — заработало, но как отмечалось в той теме — грузится страница долго.
Скорее всего нужно включить модуль gzip для сжатия. — каким образом это делается?
По совету одной из тем на этом форуме также были отключены заголовки Content-Length. Да, вроде бы работает быстрее...
Ну а по сути для правильной работы сборки требуется сервер без nginx?
… для правильной работы сжатия...
Нет, достаточно включить сжатие и все работает нормально, что на nginx, что на apache
Извините, но посредством чего это делается? — добавлением строк в .htaccess или же требуется дополнительная установка в сборку модуля gzip?
Это уже делается настройками самого сервера. Думаю в зависимости от сервера настройки немного отличаются.
Я для теста ставил на виртуальной машине ubuntu и стандартными настройками поднимал nginx, движок завелся в пол-оборота. Сам работаю на debian, сложностей и проблем ни когда не испытывал, все нужное ставится по умолчанию. На других операционках нужно смотреть отдельно.
Ваш хостер на какой операционке?
Нашёл таки информацию по поводу операционки хоста - Centos 6.2. Есть возможность перейти на CloudLinux 6.2 — за деньги, сейчас использую пока бесплатный хостинг. Кстати, в инфе про nginx ни слова...
По большей степени хостинг можно и сменить, правда на какой?
Наверняка в настройках хостинга включено сжатие, тем более, когда я смотрел первоначальный файл, выдаваемый gzip.php он был сжатый. Сдается мне что тут вся проблема в неправельной отдачи заголовка.
А вообще, самый лучший способ — это поставить на virtualbox centos и посмотреть как работает движок. Хотя у меня множества сайтов работают под CenOS, проблем не наблюдал.
Вывод: CentOS отдает сжатые файлы, только браузер не понимает их. На форуме это уже было, помню. Нужно найти решение.
При том решение этой задачи может быть двух вариантов:
1. Прочитать тонну статей по этому поводу. — мне не помогло, учитывая свой очень малый опыт в этих вещах, узнал много нового, но вот свою проблему решить не удалось.
2. Просить поддержку хостера отключить сжатие. — находил эти сообщения в архиве хостера, ответ — «нет, в данный момент это невозможно».
3. Найти хостинг с возможностью отключения сжатия. — Пройдясь по многим крупным в своей стране хостерам, сделал вывод, что там везде включено сжатие, но есть хостеры, где можно его через админку отключить.
В ближайшее время третий вариант и проверю, когда обновятся НС домена. Благо сейчас есть тестовый бесплатный период на хостинг.
Дайте мне доступ к вашему хостингу (roosit@abricos.org) я посмотрю что можно сделать
Смотрите почту
правда dns уже обновился в домене. можете потестить другой хост — forel.dp.ua, могу туда залить абрикос.
ответил в почте
Кстати, совет. При смене DNS, нет необходимости ждать, когда он обновится на серваках. Можно быстро получить доступ к сайту на новом хостере с компьютера простым способом:
Редактируете файл hosts указывая в нем IP адрес хостера и адрес сайта. После этого, на компьютере сайт будет открываться на этом хостере.
Сайт снова припаркован и уже работает. Остальное отправил вчера по почте.
Проблема была в том, что хостинг уже выдает сжатый контент. Т.е. в данном случае было двойное сжатие, движком, а потом еще и хостингом. Установил флаг, запрещающий сжимать файлы движком, если включено сжатие на уровне сервера.
В файле gzip.php? Нужно знать, т.к. буду заливать другой билд.
Да, в файле gzip.php. Баг так же исправлен и в репозитории. Для сборки, просто обновите ее по команде
mk update
Спасибо. Ну а все-же, что посоветуете хостинг со включенным сжатием или с отключенным?
Лично мое мнение — сжатие должно быть выполнено однократно и движком, сложив все в папке кеша. А так получается, что каждый раз при отдаче контента, сервак тратит дополнительные ресурсы на сжатие.
С другой стороны, механизм сжатия серваком на сегодня на столько оптимизированы, что наверняка ресурсы не так сильно и расходуются.
Так же к плюсам сжатия серваком еще и то, что сжимается не только CSS, JS, а еще и сами страницы сайта.
В общем, думаю это не принципиальный вопрос при выборе хостинга.
Главное, чтобы хостинг был надежный с адекватной и реактивной тех.поддержкой. Ну и лично для меня, главное что бы у него был доступ по SSH, с возможностью выполнения типовых команд. Иначе обновление сайта превращается в сущий ад.
Здравствуйте, не работает смена пароля, постоянно крутится анимация, одинаково, что на виртуальной машине, что на хостинге.
И не работает именно если менять через профиль пользователя. Из самой админки через раздел пользователи, пароль меняется.
Обнаружил в модуле eshop наличие своей карусели. Вставил её — карусель начала ругаться, что отсутствует файл brick_product_list.php, я его нашел в папке includes/brick, положил чисто в includes, теперь не ругается, но появились только стрелки карусели. Вопрос: что нужно указать ей для её работы?
По ошибкам и предложениям лучше кидать сюда https://github.com/abricos/abricos/issues/1, тогда точно не потеряется
Правильная ссылка: https://github.com/abricos/abricos/issues. Но еще лучше и удобнее кидать ошибки и предложения по конкретному модулю, если модуль известен. Например, модуль «Профиль пользователя» имеет репозиторий по этому адресу: https://github.com/abricos/abricos-mod-uprofile
«своей карусели» — имеется ввиду перегруженный компонент шаблона модуля eshop в своем шаблоне?
Дело в том, что в последней версии модуля были применены значительные изменения по оптимизации и удобства разработки генерируемых элементов шаблона не имеющих обратной совместимости. Возможно это и явилось причиной не работающих перегруженных ранее элементов. Рекомендую посмотреть текущий исходник карусели и адаптировать его под новую версию.
А вообще, если ваша сборка находится в закрытом репозитории, дайте мне доступ к этому репозиторию (на Битбакет моя учетка roosit), мне будет проще понять, что там не работает и как это исправить.
P.S. Сайт платформы Абрикос сейчас переезжает на другой сервер, возможно перебои в работе сайта
Тогда есть встречный вопрос по поводу репозиториев: в корне проекта, да и в других папках, имеется файл .gitignore, который, как я понимаю, не дает определенному контенту проекта загружаться в репозиторий. Все параметры нужно оставлять так, как есть, или же .gitignore нужно исключить дабы выгрузить все содержимое проекта?
Все содержимое выгружать не нужно. Нужно чтобы .gitignore минимум был как в официальной сборке. Это позволяет исключать приватные файлы. Например, файл конфигурации вашего сервака.
В итоге, сборка может быть одна, а использоваться многими людьми для своих сайтов. А без .gitignore, допустим, я добавил конфиг файл своего сервака, другой уже не сможет пользоваться сборкой, потому как каждый раз при обновлении ее, будет затираться и его файлы конфигурации
Проще говоря, благодря .gitignore, вы размещаете в репозитарии только те данные, которые доступны другим людям, даже если это приватный репозиторий.
Наверное старею, никак не могу найти на bitbucket как Вам дать доступ к момему репозиторию...
все, вроде разобрался, делается через settings
Хотел уже воспользоваться https://github.com/abricos/abricos/issues, а именно модулем eshop, что бы написать, что не открывается весь список новинок, но вовремя вспомнил, что в этой теме уже это обсуждалось… Но вот к проблеме вернулся и пока не совсем соображаю почему они не отображаются. Кстати для моих потребностей и так нормально реализовано… осталось «подкрутить».
С новинками все получилось, вопрос отпал.
Еще есть вопрос: в папке build содержится папка .git с содержимым… её на хостинг следует заливать или же нет? И если следует, то как она может потом пригодится?
.git в build ни как не должно быть и уж тем более нельзя заливать эту папку на сервак
кстати, на bitbucket есть возможность включения русского интерфейса в настройках
Я имел ввиду компонент product_carousel в модуле eshop. Второй вечер поиска причины по которой не работает карусель результата пока не дал, со знаниями php у меня не так все хорошо… поэтому и куча мучений. По-моему, я начинаю догадываться, что gedit'ом тут уже не помочь… А вообще в дальнейшем идея такая — отдельно карусель для новинок и отдельно карусель для хитов.
Есть вопрос: как поступать, если происходит правка файлов php в папках includes модулей и в дальнейшем их перегружать в своем шаблоне невозможно (или возможно?). Убирать «гитигнор» и заливать их на битбакет?
Править файлы в папке build нельзя, потому что в нее происходит компиляция исходных файлов проекта.
Проект состоит из ядра, модулей, шаблонов и т.п.
Список того, из чего состоит проект находится в файле multik.json
По сути, в этом файле список репозиторий, из которых происходит выгрузка необходимых компонентов при запуске команды mk install (или mk update). Следовательно, добавив в этот файл можно добавить свои собственные источники модулей или ядра.
Внести изменения в официальные источники напрямую нельзя. Осуществить это можно через pull request (пул реквест — запрос на внесение изменений).
Допустим, нам необходимо внести изменения в исходный код модуля eshop. Делается это следующим образом:
1. На гитхабе заходим в репозиторий проекта модуля eshop - https://github.com/abricos/abricos-mod-eshop
2. жмем в правом верхнем углу страницы кнопку fork. В этот момент, этот репозиторий клонируется в вашу учетную запись на github
3. в файле multik.json в разделе dependencies находим запись модуля eshop и меняем в нем в строке repo ссылку на свой репозиторий (https://github.com/[моя_учетка_github]/abricos-mod-eshop)
4. удаляем исходный репозиторий модуля eshop, папка [myproject]/abricos.src/modules/eshop
5. делаем выгрузку репозиторий проекта со своим модулем eshop:
mk install
так как была удалена папка репозитория модуля eshop, она будет выгружена повторна, но уже с вашего источника, который мы указали в multik.json
Если все сделано правильно, то перейдя в папку [myproject]/abricos.src/modules/eshop и выполнив команду
git remote show origin
будет показано информация об источники репозитория, в данном случае должно быть: https://github.com/[моя_учетка_github]/abricos-mod-eshop
6. с этого момента вы можете вносить изменения в исходный код модуля eshop, и все эти изменения сохранять уже в своем репозитории.
Порядок таков:
a) внесли изменения -> выполнили команду:
mk-grunt build
чтобы скомпилировать движок со своими изменениями в папке build
b) когда все изменения внесены и проверены, их можно отправить в официальный репозиторий модуля eshop. Для этого, сначала их нужно закомитеть в свой репозиторий
git commit -am «Что было изменено»
git push
и потом уже отправить эти изменения через pull request, документация здесь: https://help.github.com/articles/creating-a-pull-request/
Полезные ссылки:
http://habrahabr.ru/post/125999/
https://help.github.com/articles/syncing-a-fork/
Спасибо. Есть один мелкий вопрос — в записи "[mod ] eshop:product_list:3 [ /mod]", что означает ":3" ?
Это идентификатор вставляемого компонента. Используется, если предполагается использовать несколько одних и тех же компонентов. В данном случае, идет возможно определение трех компонентов eshop:product_list с разными параметрами и указанием, какой именно компонент и куда будет вставлен.
Нет, все же завести карусель в модуле eshop так и не удалось и, самое главное, так и непонятна мне причина того, почему же она не работает,… знать бы причину. С php все впорядке, как я понял используется product_list.php, который в свою очередь успешно используется «кирпичами» new, hit и т.д.
чет я уже сам запутался. Давайте попорядку. Какую карусель и куда нужно завести?
1. Вертикальная карусель — прокрутка новинок, хитов и т.п. в горизонтальной линейки.
2. Вертикальная карусель — прокрутка того же, но только в колонке sidebar
3. Иная карусель?
В 0.5.6 В модуле eshop имеется в brick/product_carousel.html — стандартная карусель с горизонтальной прокруткой товара, только от самой карусели отображаются только кнопки прокрутки, сам контент не отображается
Я имел ввиду «завести», т.е. починить.
В общем, в модуле eshop решил создать свою карусель новинок, долго мучался, решил пойти по другому пути. В папке bricks модуля eshop создал carousel-new. (все изменения происходят в моем шаблоне) Вот html-код:
Далее получил такой результат:
Понятное дело результат не такой, какой хотелось бы… Вопрос к раз в следующем — как «уложить» все полученные новинки в ряд, в общем сделать мой результат каруселью?
Как я понимаю — не работают переменные { v # brickid }, буду думать дальше...
Здравствуйте, какие-то высшие силы заставили меня переписывать этот текст сообщения, после набора очень много букв мой пост куда-то улетел, но здесь он не появился.
В общем тогда вкратце: предыдущий пост, где про карусель, что я создал — написал, конечно, глупости и в результате вернулся опять к product_carousel, но пока дело застряло.
Также интересует пересчет валюты, Вы сообщали, что эта функция частично реализована, хотелось бы уточнить где именно, возможно у меня получится довести это дело, т.к. некоторые функции ядра уже получилось перенастроить под свои нужды, правда карусель сопротивляется...
И хотел бы узнать как продвигается проект 0.6.0 и стоит ли его дожидаться? Т.к., в принципе, почти все, что я хотел, реализовано уже и в 0.5.6, остались только два перечисленных вопроса.
И да, пользуясь случаем хотел бы показать вообще то, что на данный момент удалось сделать, возможно по дизайну уже финал — мой сайт
Начну с вашего сайта.
Самое главное — начало положено! Дальше дело техники. Практика показывает, что нужно как можно скорее начать извлекать прибыль с сайта, а уже потом наращивать его плюшками и фишками.
На мой взгляд, на главную бы добавил продающую страницу на которой описал бы преимущества работы с магазином, выгода и т.п. (например как здесь: shkafkupekazan.ru)
Основное меню убрал бы. Оставил бы меня второго уровня (каталога). Вот как здесь: instrumentkazan.ru
Товары было бы не плохо разбить на типы и для каждого типа создать свой набор характерных полей. Эти поля потом можно будет использовать при выводе характеристик и при будущем поиске.
Касательно версии 0.6.0
Работа кипит полным ходом. Помимо самой платформы и ее модулей, очень много приходится уделять инфраструктуре платформы. Например, были выпущены два новых продукта:
SMTPeshka (https://github.com/abricos/smtpeshka) — виртуальный почтовый сервак для отладки исходящей почты, например из платформы Абрикос
TreeConfig (https://www.npmjs.com/package/tree-config) — древовидный конфигуратор. В основном разработанный для работы компилятора платформы.
Сам компилятор новой версии — grunt-abricos
Так же существенно переработано ядро самой платформы и модули.
Планировал выпустить новую версию 0.6.0 уже в марте, но слишком частые отвлечения на текущие разработки текущих сервисов — сильно отвлекают. Особенно сейчас — срочный заказ на один сервис, который будет завершен на этой недели. После него, планирую вернуться к вашим вопросам по поводу карусели, валюты и других и порешать их.
Здравствуйте, спасибо за советы. Вчера сразу хотел написать ответ, но после длинного текста он при отправке опять куда-то исчез. Впредь буду текст копировать).
Ну а сейчас ограничусь коротким текстом: идея с меню второго уровня интересная, но вызвать ее не получается. Меню первого уровня sitemap:hmenu, как я понял за меню второго уровня — это sitemap:hmenublock, но не работает, может ошибаюсь?
Извиняюсь, поторопился с текстом.
И снова здравствуйте, на днях немного поработал, поставил меню второго уровня, все нормально. С подкаталогами (подразделами) пока спешить не буду, т.к. ассортимент товара, который сейчас в наличии, небольшой. По Вашему совету также товары разбил на категории и каждой назначил свои поля для заполнения, теперь заполняются характеристики товара. Эти же данные подкинул в product_list_item, по-моему так товар выглядит привлекательнее. И созрел очередной вопрос — касается поиска, как сделать, что-бы поиск был не только по имени, а и по характеристикам? Вопрос с валютой также еще в приоритете, с такими колебаниями курса тяжело следить за ценами.
Касательно продающей страницы — так как все страницы сайта базируются на main.html, что находится в шаблоне, по всей видимости для продающей страницы нужно создавать отдельный блок, который нужно разместить в main.html и который должен скрываться при переходе на другую страницу… Но как реализовать такой блок пока не догадываюсь.
С характеристиками получилось хорошо, гораздо информативнее.
Поиск по характеристикам запланировано реализовать блок на подобии яндекс маркета: http://market.yandex.ru/catalog/294661/list?exc=1®price=9&how=dpop (блок справа). Очень нужный блок поиска.
Чтобы реализовать продающую страницу, можно просто создать отдельный шаблон-обертку не main.html, а например home.html. Вот гляньте пример: https://github.com/abricos/abricos-tpl-eshoptp/tree/master/src
А потом в дополнительных свойствах главной страницы (или любой другой страници в структуре сайта) в админке укажите для нее использовать этот шаблон обертку home.html
Или, есть другой вариант, указать в config.php для какой странице по адресу использовать определенный шаблон-обертку. Пример посмотрите в config.example.php
P.S. К сожалению, до сих пор по прежнему очень занят одним срочным проектом. В четверг я планирую закончить вопросы по по нему и переключиться на модули интернет-магазина. Думаю, там и порешаем наши с вами горячие вопросы.
Спасибо. Упустил еще один вопрос: если в сортировке товаров везде стоят нули, каким образом происходит сортировка? В моем случае, конечно, хотелось бы по алфавиту, но вижу, что это не так.
Сортировка происходит по цене. Изначально идет от малой к большей, нулевые в конце, а они уже по алфавиту.
Идея сделать по имени. Сам процесс сортировки (по цене от малой к большей) в php так и не обнаружил, условие выставления нулевых и не нулевых нашел в product_list.php, но нулевые сортируются не по алфавиту, а, скорее по уникальному идентификатору или по адресу.
Здравствуйте, немного собравшись с мыслями подведу итог задач (конечно не знаю совпадают ли они с общей идеологией развития модуля eshop… в любом случае без помощи обойтись уже не могу, возможно сказывается отсутствие необходимых мне комментариев в php):
1. Сортировка товара. В моем случае необходима сортировка по названию товара (переменная title). Понятное дело, что менять в корне сортировку не стоит, а вот опционально это реализовать было бы неплохо, при том опцию достаточно реализовать в product_list.html без вынесения в админку.
2. Поиск товара. Создание блока подобия яндекс маркета выглядит конечно привлекательным, но как мне кажется, это было бы уместно для больших магазинов, продающих технику и прочее. Все же для мелких комплектующих удобнее использовать текущий поиск. Но о поиске по характеристикам я уже речь вести не буду, ограничусь только реализацией возможности поиска артикулу — весьма необходимо, даже для администратора магазина.
3. По пересчету цен относительно курса Вы уже знаете.
4. Этот пункт скорее вопрос: при размещении на странице элемента модуля eshop будь то new, product_list, все тот-же product_carousel и т.д. как основа выведения товара на страницу используется элемент product_list_item.html, который я настроил под себя, как Вы уже могли видеть, этот элемент занимает всю плоскость блока mod-eshop. В дальнейшем хотелось бы создать еще один аналог product_list_item, но более компактных размерах и применять его в нужных местах. Сам вопрос — где именно происходит «вызов» этого самого элемента product_list_item.html при собирании страниц с новинками, разделами товара и т.д.?
1. Добавил в список предложений
2. Добавил в список предложений
3. Реализовал сегодня, проверяйте. Подробности здесь: http://abricos.org/blog/commits/73/
4. Вызов product_list_item сейчас жестко зашит в скрипт product_list.php. Но, вынести его имя в параметры не проблема. Только сейчас нужно подумать про условия, как эти параметры лучше реализовать. Приведите несколько жизненных примеров, я подумаю как сделать.
Здравствуйте, после моих предыдущих манипуляций с php модулей в настоящий момент команда mk update не обновляет эти модули, в ответ получаю:
«abricos.src/modules/eshopcart [ master ]: There are local changes». И подсвечивает красным.
Я понимаю, что обновление затрет все изменения, но (все, что я правил сохранил отдельно) хотелось, что бы все-таки затерло...
Система определяет, что есть изменения, и что бы их не затереть, не обновляет модуль. Можно просто удалить (перенести в другую папку) ваш модуль и повторно вызвать mk install
Есть так же и другой вариант — это сохранить свои изменения в другой бранч, если нужно.
Да, уже разобрался. Первое, что заметил — происходит округление вводимой розничной цены товара уже в у.е., к примеру я ввожу цену 0,0184 у.е. за единицу, при сохранении получаю 0,02 у.е.)) Как бы не сильно округляет, но на результат влияет)). С выводимой суммой на экране все впорядке, округляет до второго знака после запятой.
1. В общем, на практике в округлении вносимой розничной цены нет никакой необходимости, даже наоборот, мешает точному подсчету. И уже после посчитанной суммы (перевод из доллара в рубль) только тогда она должна округляться до второго знака после запятой.
2. По поводу жизненных примеров, то если по уму, думаю реализация будет довольно сложной, хотя может что-то и упростить:
Значит, если в идеале — существуют разные типы товаров — одни уникальные — надо показать их преимущества, подробные характеристики и прочее (приведу в пример свой товар — таковыми являются микроконтроллеры, ну и их родня). Абсолютно другое дело — сопротивления, ну и еще ко-что, для более удобного их представления лучше использовать упрощенный стиль product_list_item. Также упрощенный вид лучше использовать и, как я уже отмечал, для той же карусели, представления новинок и хитов продаж. Хотя, по большому счету достаточно реализации упрощенного стиля при показе той же карусели, представления новинок и хитов продаж… Если, к примеру, я ставлю на главной странице блок новинок , то непременно здесь должен отображаться компактный упрощенный стиль. И наоборот, если я открываю какую-либо категорию товара (будь-то транзисторы) стиль product_list_item по идее должен быть подробным.
Примеры из интернета: вот — здесь на главной в каруселях упрощенный стиль, а здесь они уже как-бы подробно представлены, с описанием.
Вот еще — здесь на главной некое подобие карусели, а уже здесь идут подробности, правда там оно в виде таблицы, но суть та же.
В общем перелопатил всю папку модулей в поисках функций округления в php и javascript нашёл только number_format, но эта функция только определяет сколько использовать знаков после запятой и то это касается только уже посчитанной суммы, которая выводится при виде товара, а как реализовано округление вводимой стоимости — так и не ясно.
По поводу округления. Можно попробовать изменить кол-во знаков после запятой в базе данных, таблица cms_ctg_eshp_element, поле fld_price.
Или изменить разрядность курса валют на десятичный знак. Тогда, например в центах нужно вместо 0.023 цента, вносить 0.23
P.S. По другим вопросам подумаю и отвечу позже
Спасибо, проблему решил отредактировав таблицу БД.
Здрауствуйте, Александр. Хотелось бы поднять тему карусели. Идея сделать отдельно карусель новинок, хитов и карусель с рандомным выбором товаров из разных категорий. Но на данный момент, думаю, будет достаточно запустить существующую карусель. Также интересует возможность создания разных product_list_item.