Форум → Сборка интернет магазина для продажи товара, который приобретается несколькими единицами сразу (запчасти, мелкие комплетующие).

В моём случае хотелось бы реализовать интернете магазин для продажи радиодеталей. Пройдясь по магазинам подобного профиля и сравнив его с существующей сборкой интернет магазина, выложенной здесь хотелось бы отметить некоторые главные задачи, которые нужно изменить и добавить:

1. Возможность выводить на главную страницу сайта «свежее поступление товара» — должно быть разделено на категории, а отображение товара по идее должно включаться через админку, как, к примеру «хит продаж».

2. Реализовать информацию об остатках товара, а также " нет в наличии".

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

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

5. При оформлении заказа клиенту должно приходить письмо на эл.почту с номером заказа и текстом, который можно написать в админке. 

6. При оформлении заказа клиент должен выбрать из списка службу доставки груза, а также должен указать город и номер отделения для доставки.

7. Ну и конечно же реализовать смену валюты.

В принципе перечислил вроде бы все главные аспекты.

На данный момент пока что собран только билд репозитория из github. На сервер в дебиан его ещё не ставил, по этому поводу немного почитают google, как это правильно сделать… И, возможно, вечером продолжу работу в этом направлении.

Открыто
sandro
30 Ноября 2014, 16:20
343 sandro:

В общем запустил билд под дебиан, правда не получается войти в управление сайтом используя имя admin и пароль admin.

344 sandro:

После этого был переименован def.htaccess в .htaccess, был включен mod_rewrite (хотя до этого включал). Все также не получается авторизоваться, выскакивает сообщение «NOT FOUND». Ссылки /about, /news и прочее не работают. В браузере видно обновленный интерфейс сайта, новости, поздравление с успешной установкой платформы...

345 roosit:

Если ссылки /about не работают, однозначно не работает mod_rewrite или .htaccess

346 sandro:

Только что решил проблему gedit /etc/apache2/sites-available/default в начальном разделе править с “AllowOverride none” на “AllowOverride all”. В разделе Directory править на "AllowOverride FileInfo"

347 sandro:

Да, заметны изменения в новой версии, прям «небо и земля».

348 roosit:

Касательно интернет-магазина:

1. Доступно в текущей реализации, настройка осуществляется через включение флага «Новинка»

2. Информация об остатках товара должна быть доступна всем пользователям на сайте или только админу в админке?

3. Не проблема, задача есть в планах, будет реализована в приоритете

4. Файлы можно вставлять в описание товара, а можно реализовать в виде отдельного поля при заполнении товара. В любом случае реализация не проблема, необходимые инструменты для этого разработаны

5. Есть в планах, реализацию можно ставить на приоритет

6. Задача тоже общего характера, так что тоже можно ставить на приоритет

7. Не проблема, задача общая, выбор валюты будет вынесена в настройки

 

349 sandro:

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

350 roosit:

ага, нечего конкурентам знать положение дел.

351 roosit:

Следующим шагом необходимо создать свою собственную сборку, можно на базе этой и залить ее в закрытый репозиторий, например на bitbucket.org

Далее в этой сборке создать свой шаблон и уже все изменения фиксировать в репозиторий

352 sandro:

Можете пролить свет как именно создать свою сборку на базе Вашей (которая пока что еще у меня без изменений)? 

353 sandro:

Просто архивировать весь получившийся по ридми билд и залить его на bitbucket? 

354 roosit:

Нет, не в коем случае. Создать свою на базе этой можно следующим образом:

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

355 sandro:

Готово. Спасибо.

356 sandro:

Нашёл один нюанс в сборке интернет-магазина — не работают подразделы в каталоге продукции (до этого в каталоге создан раздел и в нем подраздел), т.е. перейдя в каталог видим разделы продукции выбираем один из разделов и следом загружается страница раздела, но пустая, без подразделов.

357 sandro:

Нюанс 2: При добавлении товара в корзину ничего не происходит (постоянно крутится анимация ожидания), корзина также не открывается. 

358 roosit:

Следующий шаг — добавление шаблона в сборку.

Если сохранился оригинал первоначальной сборки с abricos/abricos, то перейдите в ее папку и выполните команду:

git pull

это команда примет появившиеся изменения в сборке, а именно — я добавил сейчас в нее шаблон для примера. 

После получения новой версии сборки, скопируйте папку templates в свою локальную сборку. Эта папка сейчас содержит шаблон example (в templates можно создавать сколько угодно шаблонов сайта).

Теперь можно повторно собрать рабочую версию сайта командой

mk-grunt build

Как мы видим, в рабочей версии, в папке tt появился шаблон example.

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

mk update

Это команда позволяет держать локальную сборку в актуальном состоянии. 

Рекомендую вызывать эту команду каждый раз, когда планируете поработать со сборкой или просто обновить ядро и все модули до актуальных.

359 roosit:

добавление товара починил, обновляйте сборку:

mk update

По поводу разделов и подразделов — завтра посмотрю

360 sandro:

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

В моем случае имеется папка /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 с заменой старых? 

361 roosit:

Прежде, чтобы снять путаницу, отныне Сборку будем называть Проект или Редакция.

 

Удобная организация работы с несколькими локальными проектами (для разработчика):

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/

362 sandro:

Все понятно расписали, спасибо. И все получилось сделать. Корзина работает.

363 roosit:

Следующий шаг — оптимизация процесса разработки.

Перед тем, как приступить к внесению изменений, например шаблона в проекте сайта, необходимо выполнить команду:

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/)

364 sandro:

Сделано.

365 roosit:

В предыдущих версиях подразумевалось, что необходимо обязательно добавлять в структуре сайта раздел меню с именем eshop, даже инструкция по установке есть http://abricos.org/mods/eshop/

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

Но пока добавлять пункт меню все же придется, так как без него не формируются хлебные крошки.

Обновляйте проекта:

mk update && mk-grunt build

366 sandro:

Да, сделано, всё работает. Есть вопрос: хотелось бы добавить состояние корзины на главную страницу, размещённую под авторизацией (как это было в сборке на старой версии 0.5.4.4), какие файлы отвечают за это? В принципе с элементами модулей разобрался, видимо править придется main.html и main.css в шаблоне example. 

367 roosit:

Чтобы добавить поиск по товарам и корзину на страницу, необходимо в заголовках шаблона добавить:

[mod=eshop]searchline|extfilter=brand: выбор по производителю[/mod]

[mod=eshopcart]cartsm[/mod]

и в теле шаблона соответственно:

p.s. начал разрабатывать возможность настраивать валюту для товаров и даже планировал сегодня выпустить обновление, но все планы попутал роскомнадзор, который заблокировал в России Girhub. В итоге время потерял на поиск решений этих проблем. В ближайшее время выйдет новая функция в настройках проекта сайта указывать зеркала репозиториев.

368 sandro:

Извините, что в теле шаблона добавить? 

369 roosit:

Парсер съел теги. Добавить необходимо результаты запроса компонентов:

370 sandro:

парсер...

371 sandro:

может картинкой покажете? 

372 roosit:

Добавил в проект abricos/abricos. Обновляйте официальную редакцию. Внесенные изменения так же можно посмотреть в коммите: github.com/abricos/abricos/commit/60a79404b67c3367dc58666fc3dec15e1cd0aa69

373 sandro:

Из всех изменений в своем проекте применил только корзину, а то поиск и корзина вместе «слиплись». Как можно добавленную корзину выставить по левому краю блока?

374 sandro:

Извиняюсь, по правому краю, сейчас и так по левому получается.

375 sajjad:

fjsdj sfkdfkjdfkjfkjsdklasjklf slsfdfjsskldssrie efodfeo edfdlfdlfdkfl; dlkf dl;fkeopi  ksdcl;kdlsfkeopfi dfkd l;k dldgjsddslf ksldfkeo

______________________________________________________

asad

376 roosit:

Разработка дизайна сайта стало значительно проще, так как эта версия платформы базируется на популярном CSS фреймворке Bootstrap 3. 

К этому фреймворку на текущий момент в интернет полно как платных, так и бесплатных шаблонов сайта.

Официальный сайт: http://getbootstrap.com/

Сайт на русском http://bootstrap-3.ru/index.php

377 sandro:

Да, я вчера, копаясь в исходниках проекта, обнаружил, что за стили отвечает bootstrap. Нашёл необходимый файл css в папке boodstrap, но отредактировать не удалось — gedit виснет при открытии этого файла. Сейчас займусь поиском другого инструмента для редактирования стилей.

378 roosit:

CSS Bootstap-а править нет необходимости, использовать CSS файл, который дополнительно подключается. Гляньте исходники шаблона example, в папке less как раз и лежит исходник будущего css файла. 

Кстати, в новой версии как раз и применяются исходные CSS файлы в формате LESS. Очень удобный формат.

379 roosit:

Обновил проект сайта abricos, в частности настроил более приемлемую шапку с поиском и корзиной. Обновляйте проект:

git pull && mk update && mk-grunt build

Кстати, можно просмотреть вносимые изменения в проект: https://github.com/abricos/abricos/commits/master

380 roosit:

Любые части шаблона можно вынести в отдельные элементы. Это особенно полезно, когда на сайте применяются разные шаблоны для определенных страниц. Т.е. очень часто бывает, что шаблон главной страницы отличается от всех остальных страниц. Например на главной может не быть сайдбара. И когда при этом части шаблона вынесены в отдельные элементы, нет необходимости потом в случае внесения изменений править одно и тоже в нескольких места.

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

Например, необходимо вынести часть шаблона шапки в отдельный элемент шаблона. 

Для этого, в папке шаблона создается файл в override/sitemap/brick/header.html и описывается как элемент шаблона модуля. А вызывается этот элемент, как стандартный элемент шаблона модуля: [mod=sitemap]header[/mod]

Вынесенная шапка шаблона в отдельный элемент: override/sitemap/brick/header.html

Вызов этого элемента в main.html строка 20 и применение его строка 50

 

381 sandro:

Здравствуйте, обновил сборку. Благодаря источнику, ссылку на который Вы дали в предыдущем посте понял что и как было сделано, очень удобно. По последнему Вашему посту стало еще понятней). Большое спасибо. Такой метод (создание элементов модулей) куда лучше.

382 roosit:

Реализована система настройки валют в интернет-магазине.

Настройка доступна в Панель управления -> Интернет-магазин -> Настройка каталога -> Справочник валют

Версия свежая, возможны недочеты, если таковые вылезут, сообщайте

383 sandro:

Работает и довольно хорошо реализовано, есть один нюанс, конечно, каждую валюту можно сделать «по умолчанию», при этом та валюта, что раньше была по умолчанию так и остается быть по умолчанию, поэтому галочку «по умолчанию» на других валютах надо снимать,  Но этот нюанс никак абсолютно не мешает. 

В существующей сборке нашел другой нюанс — если на главной странице в поле «doc» (там где пишется поздравление об успешной установке), да и не только в «doc» установить элемент модуля «новинки» на экране отображаются несколько тех самых новинок и ссылка на открытие всех новинок, так вот при открытии всех новинок — пустая станица. По сути то же, что и было с подкаталогами.  

384 roosit:

Валюту «по умолчанию» исправил, вчера на скоростях пропустил добавление этого метода.

По поводу новинок/хитов планирую существенную переработку, потому как на разных сайтах новинки отображаются по разному. На одних сайтах новинки в виде скролинга, а на каких то в виде списка, а на каких вообще смешано. Допустим товар является хитом и является новинкой, в итоге получается два разных списка в которых присутствует один и тот же товар. 

В общем нужно искать универсальное решение, которое подойдет под разные вариации. Как решение будет найдено, будет реализован более грамотный механизм отображения. Но на текущий момент я пока склоняюсь к мысли вообще убрать понятие новинок/хитов, а сделать отдельный конструктор, где админ сам будет формировать критерий выделения товара и соответственно его настраивать. Надо думать...

Кстати, обновил официальную сборку. В нее добавил простой шаблон интернет магазина eshoptp и данные для демонстрации интернет-магазина eshopportal

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

В этой версии рекомендую обратить внимание:

1. Отдельно для главной страницы устанавливается персональный шаблон eshop:home

2. Шаблон можно хранить в отдельном репозитории, что дает массу дополнительных возможностей (использовать один шаблон на множество проектов, возможность перегружать CSS стили в другом шаблоне)

Касательно багов, недочетов и предложений, по возможности кидайте в багтрекер официальной сборки: https://github.com/abricos/abricos/issues, там удобнее работать с этим. Хотя на форум тоже не возбраняется. Все средства хороши, лишь бы побольше выявить этих багов, пора уже платформу выводить в свет.

385 sandro:

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

После новой версии 0.5.6, официальная уже что-то не то (ИМХО). 

386 roosit:

Необходимо в корзине изменять количество и/или текстовое поле ± рядом с кнопкой купить?

387 sandro:

Вообще, в идеале изменение количества должно быть и в корзине, и возле кнопки купить...

388 sandro:

Вот, как по мне, идеально организованный сайт. http://www.e-voron.dp.ua/

389 roosit:

Согласен, изменения должны быть и там и там. 

Кстати, на сайте применяются скидки от количества товаров. Задача тоже первостепенная, часто запрашивают, думаю в ближайшее время реализую.

390 sandro:

В их случае присутствуют скидки из-за оптово-розничной торговли, также они и остаток по товару публикуют.  

391 roosit: ...удален...
392 sandro:

По поводу остатка окончательно передумал, т.к. если я не планируют его публикацию, то остаток по товару и прочие вещи по торговле гораздо удобнее организовывать в специальных программах вроде 1с.

393 roosit:

Кстати, очень часто запрашивают интеграцию с 1С, можно будет кому нибудь разработать этот модуль и выставить его в магазине Абрикос (запланирован уже скоро).

394 roosit:

Реализовал возможность изменения количества товара в корзине

395 sandro:

Потестил возможность изменения количества товара. Реализовано довольно хорошо, даже не видно особой необходимости в выборе количества возле кнопки «Купить». Но есть один нюанс. При покупке товара, находясь в каталоге с разными товарами происходит следующее:

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

В принципе неплохая затея с автоматическим открытием корзины, осталось исправить описанный недостаток и интернет-магазин вполне получается удачным. 

396 sandro:

Еще нюанс — если добавлены товары в корзину, а корзина либо была закрыта, либо нажата «продолжить покупки», то при последующем открытии корзины и изменении в ней количества товара сумма «итого» не меняется и при закрытии корзины сделанные изменения с количеством сбрасываются.

397 roosit:

баги исправил, проверяйте

398 sandro:

Здравствуйте, старые баги ушли, но обнаружил еще один, описываю:

Если добавить товар в корзину (пусть его стоимость будет 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, т.е. все нормально. В общем проблема с итого при открытой корзине, если корзину закрыть, то все становится верно.

399 roosit:

интересный был баг — идеологический.

Так же пришлось временно закрыть возможность авторизации/регистрации в корзине для гостей, так как появились несовместимые механизмы, над которыми нужно думать. В ближайшее время буду искать решение по этому поводу.

400 sandro:

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

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

401 sandro:

Да, ещё заметил — в настройках магазина, там где нужно указать почтовый ящик на кот. будут приходить уведомления о заказах, при вводе ящика и сохранении его ничего не сохраняется (долго крутится анимация ожидания). Может это связано с тем, что на виртуальном сервере нет почтового сервиса? Т.к. не пробовал билд ещё закидывать на хостинг.

402 roosit:

С сохранением настроек исправлено. Причина была в новой версии хранения глобальных настроек модулей.

Кстати, эта новая версия хранения настроек позволяет все глобальные настройки модулей перегружать в config.php. Если будет интересно, распишу отдельно эту возможность.

Касательно «нет в наличии» — не совсем понял где и при каких обстоятельствах это вылезает?

403 roosit:

Кстати, на локальной машине можно включить возможность сохранять в файл все отправляемые сообщения на емайл платформой. Подробнее на этой странице - http://abricos.org/mods/notify/

404 sandro:

Имеется ввиду пункт 2 основных задач, а именно реализация «нет в наличии». Если товара сейчас нет в наличии, кончился, но должен быть скоро в наличии, обычно такому товару вешают «нет в наличии» и помечается он либо полупрозрачностью изображения товара и надписью «нет в наличии» или просто «нет в наличии» вместо цены или возле. Вот, к примеру http://aliot.com.ua/?item=30700&cat=4517

Вот, кстати еще несколько примеров, по-моему удачного магазина: http://aliot.com.ua/?cat=4517 Обратите внимание — выше цены указывается наличие товара.

Также на главной, на мой взгляд, идеальное расположение товаров «новинки», http://aliot.com.ua но это так, к примеру, по поводу вопроса новинок.

405 roosit:

По поводу «нет в наличие», можно реализовать текущим способом, но пока не стоит. Есть тут у меня кое-какая задумка на этот счет, а именно стандартизировать этот процесс с учетом различных опций товара.

406 roosit:

Реализована возможность гибкой настройки шаблона отображения товара. Стало доступно реализация пункта №2 -«Нет в наличие».

Подробности описал в блоге в теме Гибкий шаблон интернет-магазина. Внешний вид исходя из значений опций товара

407 sandro:

Здравствуйте, хорошая новость, но сегодня проверить нет возможности. Завтра, надеюсь, получится.

410 sandro:

Здравствуйте, созрели вопросы:

1. В каком файле содержаться «в наличии» и «под заказ» хочу внести свою индивидуальную правку.

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

411 sandro:

По поводу простейшего (но пока для меня непонятного — использование less): Для примера хочу изменить общий фон — поиски указали на строку

.table td,.table th{
background-color:#fff!important
}

в файле bootstrap.min.css

Что необходимо добавить в папку templates/example/src/less? Что бы изменить, к примеру цвет фона на #000000?

  

412 sandro:

Извиняюсь, не то написал, строка - 

body{
font-family:«Helvetica Neue»,Helvetica,Arial,sans-serif;
font-size:14px;
line-height:1.42857143;
color:#333;
background-color:#fff

413 sandro:

Извиняюсь, все, разобрался.

414 roosit:

День добрый.

1. Набросал инструкцию по перегрузке шаблонов: Персональный шаблон отображения товара в интернет-магазине

2. В данном случае можно в ближайшей версией обойтись добавлением поля e-mail при оформлении заказа. А на будущее запланировать отправку автоматических уведомлений при обязательном указании e-mail

415 sandro:

По большому счёту автоматическое уведомление особо и не нужно. Для дополнительного ввода электронной почты, я так понимаю, нужно ковырять модуль eshopcart? 

416 roosit:

Модуль EShopCart отвечает за корзину.

Можно уже не ковырять его, поле e-mail добавил, проверяйте.

417 sandro:

Я считал, что заказ происходит из модуля корзины eshopcart, хорошо, какой модуль формирует заказ? Просто на будущее...

418 roosit:

Совершенно верно, модуль EShopCart это и корзина и менеджер заказов. Модуль EShop — это надстройка продуктов над модулем Catalog.

Например, модуль Mods (Каталог расширений) тоже работает на базе модуля Catalog и в будущем к этому модулю можно будет так же прикрутить модуль EShopCart.

419 sandro:

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

420 roosit:

Решение вопроса с поеданием некоторых тегов в парсере со всеми вытекающими...

Баг исправил, спасибо.

P.S. походу настала пора уводить разработку в отдельные бранчи и уже после теста выливать их в master.

423 sandro:

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

424 roosit:

С новым годом!

Я думаю можно создать валюту и назвать ее УЕ. В систему я заложил возможность автоматического пересчета курса, а так же возможность в будущем устанавливать валюту отдельно как на сам товар, так и на группу товаров по типу или по каталогу.

Но. Сейчас я активно переключился на создании новой версии 0.6.0 исходя из того, что уже оттягивать ее разработку не возможно. Планирую версию 0.6.0 выпустить уже в январе. 

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

1. документировать шаблон и его элементы,

2. увеличит скорость сборки движка в разы, так как не будет сложного процесса парсинга

3. положит начало разработки системы кеширования

и многое многое другое...

А так же, платформа плавно перейдет к следующему этапу своего развития — окончательного разделения сервера и клиента, с подробным API. Кстати, эта возможность позволит разрабатывать свои приложения для чего угодно (мобильные приложения и пр.), использую API. 

В общем, версия 0.5.6 — как оказалось промежуточная, так и не получившая официального выхода.

425 sandro:

Извините, возможно вопрос глупый, но я так и не понял как и где реализован автоматический пересчет валюты.

PS: наконец-то продолжил работу, 0.5.6 меня вполне устраивает, уже довольно много подпилил под свои нужды, единственное чего не пойму — как вернуть на главную страницу каталог товаров, как это было реализовано в предыдущей версии абрикос.

426 roosit:

Пересчет валюты не реализован, но заложен в систему. Т.е. чтобы это работало, нужно добавить несколько функций к уже имеющемся функционалу. В ближайшее время попробую найти время и добавить эти функции.

Желательно свои изменения, если они касаются модулей или ядра, т.е. идет правка исходного кода, отправлять их на запрос внесения изменений в исходный репозиторий (так называемый pull request). Это необходимо для того, чтобы при очередном обновлении проекта не затереть свои правки.

Чтобы установить каталог товар на главную, необходимо добавить в шаблон главной страницы следующее:

в параметры шаблона:

<span>[ mod = eshop ] catalog_list [ / mod ]<br /></span>

в тело шаблона:

 [ mod ] eshop:catalog_list [ / mod ]

(без пробелов конечно же)

427 roosit:

[ mod = eshop ] catalog_list [ / mod ]

428 sandro:

Ничего не выходит...

Правку вносил в файл 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]

429 sandro:

Или вот:

hkar.ru/yiFf

и вот:

hkar.ru/yiFd

430 roosit:

в теле шаблона, вставка списка разделов содержит ошибку:

 eshop:catalog_list|[/mod

символ "|" лишний

431 sandro:

… это, наверное, мигал курсор, извиняюсь). Написал все по-новой — результат тот-же.

432 roosit:

А на скриншоте hkar.ru/yiFd разве не каталог товаров выходит (диоды, конденсаторы и т.д.)? 

433 roosit:

ааа, понял. нужен не каталог разделов, а каталог товаров. заработался...

434 sandro:

Да, каталог, но интересует его отображение. В предыдущей версии сборки каталог был в столбик и подкаталоги товаров (насколько я помню) открывались вниз

435 sandro:

Да нет, это видимо я заработался интересуют именно разделы...

436 roosit:

Для этого нужно создать в структуре сайта раздел с любым названием (например, Каталог товаров) и именем eshop, если нужно, можно его скрыть, поставив галку.

Далее в шаблоне вызвать элемент шаблона hmenublock модуля sitemap:

[ mod=sitemap ]hmenublock|fromMenu=eshop|lineLimit=4[ / mod ]

и в теле шаблона

[ mod ]sitemap:hmenublock[ / mod ]

437 sandro:

По поводу eshop — все было сделано уже давно, оттуда же и добавленные разделы через админку в интернет магазин «диоды, конденсаторы и т.д.».

Приведённый Вами код также не работает — появляется беспорядочно разбросанные названия разделов «диоды, конденсаторы и т.д.» при этом даже не в виде ссылок, т.е. никаких реакций на курсор и кнопки мыши не оказывают...

Пробовал вставлять строки из старого шаблона интернет-магазина, а именно:

[ mod=sitemap ]vmenu |not=eshop,vmenuf| from=eshop,breadcrumb[ /mod ]

и

[ mod ]sitemap:vmenu [ /mod ]
[ mod ]sitemap:vmenuf[ /mod ]

Как видно речь идет о тех самых хлебных крошках, которые создаются при добавлении раздела с адресом eshop.

Но и после этих строк вообще ничего подобного на странице сайта не отображается.

438 roosit:

Вот этот блок будет правильный. На этом сайте используется: http://shkafkupekazan.ru/eshop/furnitura/

[ mod=sitemap ]vmenuaccord|fromMenu=eshop[ / mod]

и

[ mod ]sitemap:vmenuaccord[/ mod ]

P.S. Это все последствия отсутствия документации. Пора поскорее выпускать версию 0.6.0, в ней я реализовал возможность документирования этих блоков и их параметров

439 sandro:

Да, работает, пока применил этот вариант. 

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

440 sandro:

Т.е. делал так: в шаблоне в начале прописывал

[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>

441 roosit:

Для определения карусели, необходимо указать ее имя. Т.к. в новой версии их может быть несколько.

[mod=carousel]carousel|name=myname[/mod]

соответственно в админке, в созданной карусели необходимо в созданной карусели указать имя myname

442 sandro:

Есть еще вопрос, на данный момент он не актуален, но может быть в будущем понадобится: Как с со своего репозиотория битбакет восстановить файлы своего проекта?

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

443 roosit:

git reset --hard восстанавливает файлы в локальном репозитории. Процесс необратим. 

444 sandro:

Ну вот, собственно и первый неожиданный глюк после заливки содержимого папки build и предварительного редактирования файла config.php — не работает кнопка «вход», вот сайт.

445 roosit:

Проблемы с сжатием JS. С подобным уже встречался, но как починить не помню. Где то тут на форуме решение было. Сервер случайно не nginx?

446 roosit:

Чувствую это распространенная проблема. Надо будет по умолчанию отключить сжатие в новой версии.

447 sandro:
  • ЗАГРУЖЕННОСТЬ СЕРВЕРА7.32
  • ЗАГРУЖЕННОСТЬ MYSQL СЕРВЕРА0.33
  • ВЕРСИЯ APACHEApache/2.4.10
  • РНР ВЕРСИЯ5.3 
  • ВЕРСИЯ MYSQL5.1.6

и еще кое-что — вот и вся информация о сервере.

448 roosit:

Скорее всего нужно включить модуль gzip для сжатия.

Или проверить — отключить сжатие в файле движка gzip.php, параметр $compress поставить в false

449 sandro:

Да, уже на форуме нашёл, поставил false — заработало, но как отмечалось в той теме — грузится страница долго.

Скорее всего нужно включить модуль gzip для сжатия.  — каким образом это делается?

450 sandro:

По совету одной из тем на этом форуме также были отключены заголовки Content-Length. Да, вроде бы работает быстрее... 

Ну а по сути для правильной работы сборки требуется сервер без nginx?

451 sandro:

… для правильной работы сжатия...

452 roosit:

Нет, достаточно включить сжатие и все работает нормально, что на nginx, что на apache

453 sandro:

Извините, но посредством чего это делается? — добавлением строк в .htaccess или же требуется дополнительная установка в сборку модуля gzip?

454 roosit:

Это уже делается настройками самого сервера. Думаю в зависимости от сервера настройки немного отличаются.

Я для теста ставил на виртуальной машине ubuntu и стандартными настройками поднимал nginx, движок завелся в пол-оборота. Сам работаю на debian, сложностей и проблем ни когда не испытывал, все нужное ставится по умолчанию. На других операционках нужно смотреть отдельно.

Ваш хостер на какой операционке?

455 sandro:

Нашёл таки информацию по поводу операционки хоста - Centos 6.2. Есть возможность перейти на CloudLinux 6.2 — за деньги, сейчас использую пока бесплатный хостинг. Кстати, в инфе про nginx ни слова... 

456 sandro:

По большей степени хостинг можно и сменить, правда на какой?

457 roosit:

Наверняка в настройках хостинга включено сжатие, тем более, когда я смотрел первоначальный файл, выдаваемый gzip.php он был сжатый. Сдается мне что тут вся проблема в неправельной отдачи заголовка.

А вообще, самый лучший способ — это поставить на virtualbox centos и посмотреть как работает движок. Хотя у меня множества сайтов работают под CenOS, проблем не наблюдал.

Вывод: CentOS отдает сжатые файлы, только браузер не понимает их. На форуме это уже было, помню. Нужно найти решение.

458 sandro:

При том решение этой задачи может быть двух вариантов:

1. Прочитать тонну статей по этому поводу. — мне не помогло, учитывая свой очень малый опыт в этих вещах, узнал много нового, но вот свою проблему решить не удалось.

2. Просить поддержку хостера отключить сжатие. — находил эти сообщения в архиве хостера, ответ — «нет, в данный момент это невозможно».

3. Найти хостинг с возможностью отключения сжатия. — Пройдясь по многим крупным в своей стране хостерам, сделал вывод, что там везде включено сжатие, но есть хостеры, где можно его через админку отключить. 

В ближайшее время третий вариант и проверю, когда обновятся НС домена. Благо сейчас есть тестовый бесплатный период на хостинг.

459 roosit:

Дайте мне доступ к вашему хостингу (roosit@abricos.org) я посмотрю что можно сделать

460 sandro:

Смотрите почту

461 sandro:

правда dns уже обновился в домене. можете потестить другой хост — forel.dp.ua, могу туда залить абрикос.

462 roosit:

ответил в почте

463 roosit:

Кстати, совет. При смене DNS, нет необходимости ждать, когда он обновится на серваках. Можно быстро получить доступ к сайту на новом хостере с компьютера простым способом:

Редактируете файл hosts указывая в нем IP адрес хостера и адрес сайта. После этого, на компьютере сайт будет открываться на этом хостере.

464 sandro:

Сайт снова припаркован и уже работает. Остальное отправил вчера по почте. 

465 roosit:

Проблема была в том, что хостинг уже выдает сжатый контент. Т.е. в данном случае было двойное сжатие, движком, а потом еще и хостингом. Установил флаг, запрещающий сжимать файлы движком, если включено сжатие на уровне сервера. 

466 sandro:

В файле gzip.php? Нужно знать, т.к. буду заливать другой билд.

467 roosit:

Да, в файле gzip.php. Баг так же исправлен и в репозитории. Для сборки, просто обновите ее по команде

mk update

468 sandro:

Спасибо. Ну а все-же, что посоветуете хостинг со включенным сжатием или с отключенным?

469 roosit:

Лично мое мнение — сжатие должно быть выполнено однократно и движком, сложив все в папке кеша. А так получается, что каждый раз при отдаче контента, сервак тратит дополнительные ресурсы на сжатие.

С другой стороны, механизм сжатия серваком на сегодня на столько оптимизированы, что наверняка ресурсы не так сильно и расходуются. 

Так же к плюсам сжатия серваком еще и то, что сжимается не только CSS, JS, а еще и сами страницы сайта.

В общем, думаю это не принципиальный вопрос при выборе хостинга.

Главное, чтобы хостинг был надежный с адекватной и реактивной тех.поддержкой. Ну и лично для меня, главное что бы у него был доступ по SSH, с возможностью выполнения типовых команд. Иначе обновление сайта превращается в сущий ад.

 

470 sandro:

Здравствуйте, не работает смена пароля, постоянно крутится анимация, одинаково, что на виртуальной машине, что на хостинге.

471 sandro:

И не работает именно если менять через профиль пользователя. Из самой админки через раздел пользователи, пароль меняется.

472 sandro:

Обнаружил в модуле eshop наличие своей карусели. Вставил её — карусель начала ругаться, что отсутствует файл brick_product_list.php, я его нашел в папке includes/brick, положил чисто в includes, теперь не ругается, но появились только стрелки карусели. Вопрос: что нужно указать ей для её работы?

473 roosit:

По ошибкам и предложениям лучше кидать сюда https://github.com/abricos/abricos/issues/1, тогда точно не потеряется

474 roosit:

Правильная ссылка: https://github.com/abricos/abricos/issues. Но еще лучше и удобнее кидать ошибки и предложения по конкретному модулю, если модуль известен. Например, модуль «Профиль пользователя» имеет репозиторий по этому адресу: https://github.com/abricos/abricos-mod-uprofile

475 roosit:

«своей карусели» — имеется ввиду перегруженный компонент шаблона модуля eshop в своем шаблоне?

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

А вообще, если ваша сборка находится в закрытом репозитории, дайте мне доступ к этому репозиторию (на Битбакет моя учетка roosit), мне будет проще понять, что там не работает и как это исправить.

P.S. Сайт платформы Абрикос сейчас переезжает на другой сервер, возможно перебои в работе сайта

476 sandro:

Тогда есть встречный вопрос по поводу репозиториев: в корне проекта, да и в других папках, имеется файл .gitignore, который, как я понимаю, не дает определенному контенту проекта загружаться в репозиторий. Все параметры нужно оставлять так, как есть, или же .gitignore нужно исключить дабы выгрузить все содержимое проекта?

477 roosit:

Все содержимое выгружать не нужно. Нужно чтобы .gitignore минимум был как в официальной сборке. Это позволяет исключать приватные файлы. Например, файл конфигурации вашего сервака. 

В итоге, сборка может быть одна, а использоваться многими людьми для своих сайтов. А без .gitignore, допустим, я добавил конфиг файл своего сервака, другой уже не сможет пользоваться сборкой, потому как каждый раз при обновлении ее, будет затираться и его файлы конфигурации

478 roosit:

Проще говоря, благодря .gitignore, вы размещаете в репозитарии только те данные, которые доступны другим людям, даже если это приватный репозиторий.

479 sandro:

Наверное старею, никак не могу найти на bitbucket как Вам дать доступ к момему репозиторию...

480 sandro:

все, вроде разобрался, делается через settings

481 sandro:

Хотел уже воспользоваться  https://github.com/abricos/abricos/issues, а именно модулем eshop, что бы написать, что не открывается весь список новинок, но вовремя вспомнил, что в этой теме уже это обсуждалось… Но вот к проблеме вернулся и пока не совсем соображаю почему они не отображаются. Кстати для моих потребностей и так нормально реализовано… осталось «подкрутить».

482 sandro:

С новинками все получилось, вопрос отпал.

483 sandro:

Еще есть вопрос: в папке build содержится папка .git с содержимым… её на хостинг следует заливать или же нет? И если следует, то как она может потом пригодится?

484 roosit:

.git  в build ни как не должно быть и уж тем более нельзя заливать эту папку на сервак

485 roosit:

кстати, на bitbucket есть возможность включения русского интерфейса в настройках

486 sandro:

Я имел ввиду компонент product_carousel в модуле eshop. Второй вечер поиска причины по которой не работает карусель результата пока не дал, со знаниями php у меня не так все хорошо… поэтому и куча мучений. По-моему, я начинаю догадываться, что gedit'ом тут уже не помочь… А вообще в дальнейшем идея такая — отдельно карусель для новинок и отдельно карусель для хитов. 

487 sandro:

Есть вопрос: как поступать, если происходит правка файлов php в папках includes модулей и в дальнейшем их перегружать в своем шаблоне невозможно (или возможно?). Убирать «гитигнор» и заливать их на битбакет?

488 roosit:

Править файлы в папке 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/

489 sandro:

Спасибо. Есть один мелкий вопрос — в записи "[mod ] eshop:product_list:3 [ /mod]", что означает ":3" ?

490 roosit:

Это идентификатор вставляемого компонента. Используется, если предполагается использовать несколько одних и тех же компонентов. В данном случае, идет возможно определение трех компонентов eshop:product_list с разными параметрами и указанием, какой именно компонент и куда будет вставлен.

491 sandro:

Нет, все же завести карусель в модуле eshop так и не удалось и, самое главное, так и непонятна мне причина того, почему же она не работает,… знать бы причину. С php все впорядке, как я понял используется product_list.php, который в свою очередь успешно используется «кирпичами» new, hit и т.д.

492 roosit:

чет я уже сам запутался. Давайте попорядку. Какую карусель и куда нужно завести?

1. Вертикальная карусель — прокрутка новинок, хитов и т.п. в горизонтальной линейки.

2. Вертикальная карусель — прокрутка того же, но только в колонке sidebar

3. Иная карусель?

493 sandro:

В 0.5.6 В модуле eshop имеется в brick/product_carousel.html — стандартная карусель с горизонтальной прокруткой товара, только от самой карусели отображаются только кнопки прокрутки, сам контент не отображается

494 sandro:

Я имел ввиду «завести», т.е. починить.

495 sandro:

В общем, в модуле eshop решил создать свою карусель новинок, долго мучался, решил пойти по другому пути. В папке bricks модуля eshop создал carousel-new. (все изменения происходят в моем шаблоне) Вот html-код: html-код

Далее получил такой результат:

результат

Понятное дело результат не такой, какой хотелось бы… Вопрос к раз в следующем — как «уложить» все полученные новинки в ряд, в общем сделать мой результат каруселью?

Как я понимаю — не работают переменные { v # brickid }, буду думать дальше...

496 sandro:

Здравствуйте, какие-то высшие силы заставили меня переписывать этот текст сообщения, после набора очень много букв мой пост куда-то улетел, но здесь он не появился.

В общем тогда вкратце: предыдущий пост, где про карусель, что я создал — написал, конечно, глупости и в результате вернулся опять к product_carousel, но пока дело застряло.

Также интересует пересчет валюты, Вы сообщали, что эта функция частично реализована, хотелось бы уточнить где именно, возможно у меня получится довести это дело, т.к. некоторые функции ядра уже получилось перенастроить под свои нужды, правда карусель сопротивляется...

И хотел бы узнать как продвигается проект 0.6.0 и стоит ли его дожидаться? Т.к., в принципе, почти все, что я хотел, реализовано уже и в 0.5.6, остались только два перечисленных вопроса. 

497 sandro:

И да, пользуясь случаем хотел бы показать вообще то, что на данный момент удалось сделать, возможно по дизайну уже финал — мой сайт

498 roosit:

Начну с вашего сайта.

Самое главное — начало положено! Дальше дело техники. Практика показывает, что нужно как можно скорее начать извлекать прибыль с сайта, а уже потом наращивать его плюшками и фишками.

На мой взгляд, на главную бы добавил продающую страницу на которой описал бы преимущества работы с магазином, выгода и т.п. (например как здесь: 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 уже в марте, но слишком частые отвлечения на текущие разработки текущих сервисов — сильно отвлекают. Особенно сейчас — срочный заказ на один сервис, который будет завершен на этой недели. После него, планирую вернуться к вашим вопросам по поводу карусели, валюты и других и порешать их.

499 sandro:

Здравствуйте, спасибо за советы. Вчера сразу хотел написать ответ, но после длинного текста он при отправке опять куда-то исчез. Впредь буду текст копировать).

Ну а сейчас ограничусь коротким текстом: идея с меню второго уровня интересная, но вызвать ее не получается. Меню первого уровня sitemap:hmenu, как я понял за меню второго уровня — это sitemap:hmenublock, но не работает, может ошибаюсь?

500 sandro:

Извиняюсь, поторопился с текстом. 

501 sandro:

И снова здравствуйте, на днях немного поработал, поставил меню второго уровня, все нормально. С подкаталогами (подразделами) пока спешить не буду, т.к. ассортимент товара, который сейчас в наличии, небольшой. По Вашему совету также товары разбил на категории и каждой назначил свои поля для заполнения, теперь заполняются характеристики товара. Эти же данные подкинул в product_list_item, по-моему так товар выглядит привлекательнее. И созрел очередной вопрос — касается поиска, как сделать, что-бы поиск был не только по имени, а и по характеристикам? Вопрос с валютой также еще в приоритете, с такими колебаниями курса тяжело следить за ценами.

Касательно продающей страницы — так как все страницы сайта базируются на main.html, что находится в шаблоне, по всей видимости для продающей страницы нужно создавать отдельный блок, который нужно разместить в main.html и который должен скрываться при переходе на другую страницу… Но как реализовать такой блок пока не догадываюсь.   

502 roosit:

С характеристиками получилось хорошо, гораздо информативнее.

Поиск по характеристикам запланировано реализовать блок на подобии яндекс маркета: 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. К сожалению, до сих пор по прежнему очень занят одним срочным проектом. В четверг я планирую закончить вопросы по по нему и переключиться на модули интернет-магазина. Думаю, там и порешаем наши с вами горячие вопросы.

503 sandro:

Спасибо. Упустил еще один вопрос: если в сортировке товаров везде стоят нули, каким образом происходит сортировка? В моем случае, конечно, хотелось бы по алфавиту, но вижу, что это не так.

504 roosit:

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

505 sandro:

Идея сделать по имени. Сам процесс сортировки (по цене от малой к большей) в php так и не обнаружил, условие выставления нулевых и не нулевых нашел в product_list.php, но нулевые сортируются не по алфавиту, а, скорее по уникальному идентификатору или по адресу.

506 sandro:

Здравствуйте, немного собравшись с мыслями подведу итог задач (конечно не знаю совпадают ли они с общей идеологией развития модуля 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 при собирании страниц с новинками, разделами товара и т.д.?   

507 roosit:

1. Добавил в список предложений

2. Добавил в список предложений

3. Реализовал сегодня, проверяйте. Подробности здесь: http://abricos.org/blog/commits/73/

4. Вызов product_list_item сейчас жестко зашит в скрипт product_list.php. Но, вынести его имя в параметры не проблема. Только сейчас нужно подумать про условия, как эти параметры лучше реализовать. Приведите несколько жизненных примеров, я подумаю как сделать.

508 sandro:

Здравствуйте, после моих предыдущих манипуляций с php модулей в настоящий момент команда mk update не обновляет эти модули, в ответ получаю:

«abricos.src/modules/eshopcart [ master ]: There are local changes». И подсвечивает красным.

Я понимаю, что обновление затрет все изменения, но (все, что я правил сохранил отдельно) хотелось, что бы все-таки затерло... 

509 roosit:

Система определяет, что есть изменения, и что бы их не затереть, не обновляет модуль. Можно просто удалить (перенести в другую папку) ваш модуль и повторно вызвать mk install

Есть так же и другой вариант — это сохранить свои изменения в другой бранч, если нужно.

510 sandro:

Да, уже разобрался. Первое, что заметил — происходит округление вводимой розничной цены товара уже в у.е., к примеру я ввожу цену 0,0184 у.е. за единицу, при сохранении получаю 0,02 у.е.)) Как бы не сильно округляет, но на результат влияет)). С выводимой суммой на экране все впорядке, округляет до второго знака после запятой.  

511 sandro:

1. В общем, на практике в округлении вносимой розничной цены нет никакой необходимости, даже наоборот, мешает точному подсчету. И уже после посчитанной суммы (перевод из доллара в рубль) только тогда она должна округляться до второго знака после запятой. 

2. По поводу жизненных примеров, то если по уму, думаю реализация будет довольно сложной, хотя может что-то и упростить:

Значит, если в идеале — существуют разные типы товаров — одни уникальные — надо показать их преимущества, подробные характеристики и прочее (приведу в пример свой товар — таковыми являются микроконтроллеры, ну и их родня). Абсолютно другое дело — сопротивления, ну и еще ко-что, для более удобного их представления лучше использовать упрощенный стиль product_list_item. Также упрощенный вид лучше использовать и, как я уже отмечал, для той же карусели, представления новинок и хитов продаж. Хотя, по большому счету достаточно реализации упрощенного стиля при показе той же карусели, представления новинок и хитов продаж… Если, к примеру, я ставлю на главной странице блок новинок , то непременно здесь должен отображаться компактный упрощенный стиль. И наоборот, если я открываю какую-либо категорию товара (будь-то транзисторы) стиль product_list_item по идее должен быть подробным. 

Примеры из интернета: вот  — здесь на главной в каруселях упрощенный стиль, а здесь они уже как-бы подробно представлены, с описанием.

Вот еще  — здесь на главной некое подобие карусели, а уже здесь идут подробности, правда там оно в виде таблицы, но суть та же. 

512 sandro:

В общем перелопатил всю папку модулей в поисках функций округления в php и javascript нашёл только number_format, но эта функция только определяет сколько использовать знаков после запятой и то это касается только уже посчитанной суммы, которая выводится при виде товара, а как реализовано округление вводимой стоимости — так и не ясно.

513 roosit:

По поводу округления. Можно попробовать изменить кол-во знаков после запятой в базе данных, таблица cms_ctg_eshp_element, поле fld_price. 

Или изменить разрядность курса валют на десятичный знак. Тогда, например в центах нужно вместо 0.023 цента, вносить 0.23

P.S. По другим вопросам подумаю и отвечу позже

514 sandro:

Спасибо, проблему решил отредактировав таблицу БД.

515 sandro:

Здрауствуйте, Александр. Хотелось бы поднять тему карусели. Идея сделать отдельно карусель новинок, хитов и карусель с рандомным выбором товаров из разных категорий.  Но на данный момент, думаю, будет достаточно запустить существующую карусель. Также интересует возможность создания разных product_list_item.