All Activity

This stream auto-updates     

  1. Past hour
  2. Да можно просто "Задать вопрос о товаре" поменято на "Купить в 1 клик". Это как самое простой вариант.
  3. Today
  4. Согласен Саша, пока сайт работает четко, с Вашей помощью допилили его как мне хотелось, я очень доволен. Даже своего кореша с сайта fenox.com.ua я направлял к Вам на обновление, а фактически потом получился перенос сайта со старой версии Вамшоп 1, которая была без базы. Говорил ему пусть Саша перенесет сразу на Вамшоп 2, не захотел, а теперь жалеет что нет покупки в 1 клик
  5. А зачем переключитьая на 7.2 или 7.3 ?! 7.1 это ведь свежая довольно версия, быстрая. т.е. принципиальной разницы не будет на 7.1, 7.2, 7.3 - по сути, одно и тоже. Вот переключаться с php 5.6 на php 7 есть смысл, а раз у Вас уже 7.1 - оставайтесь на ней. Обновиться можно патчами, скачав их в разделе Файлы. Но опять же, php 7.1 - хорошая версия, оставайтесь на ней. Если чистая страница, то можно ещё попробовать кроме debug 2 поменять в /app/config/core.php Configure::write('Error', array( 'handler' => 'ErrorHandler::handleError', //'level' => E_ALL, 'level' => 0, 'trace' => false )); на: Configure::write('Error', array( 'handler' => 'ErrorHandler::handleError', 'level' => E_ALL, //'level' => 0, 'trace' => true )); Что б текст ошибки виден был. Только назад не забудьте все потом вернуть. Да и всё-таки, я б на 7.1 оставался.
  6. стоит версия Вам 2.50 с версия РНР 7.1, но на хостинге уже есть версии и 7.2, и 7.3. Если на них перехожу то тухнет и сайт и админ панель. Включил отражение ошибок, внешний вид ничего не дал - чистая страница, а может записалось в лог файл, но не знаю где он
  7. Здравствуйте! А на какую версию обновили?! Я на php 7.2 сижу, всё работает. Для начала конечно лучше выяснить, что за ошибка, можно включить отладку -
  8. Здравствуйте, изменил версию РНР на более новую, сайт перестал работать. Я так понимаю надо будет обновлять мою версию с 2.50 на более свежую, подскажите пожалуйста как это сделать
  9. Yesterday
  10. ок, тогда нужен похожий адоптивный шаблон
  11. Про простое, быстрое и удобное оформление заказа в онлайн магазине. В интернет магазине VamShop PWA сделано максимально простое и удобное оформление заказа, управляемое из админки. Какие задачи были решены: 1. Максимально не напрягать посетителя при оформлении заказа. 2. Привязать поля с данными о доставке не к общей форме, а к модулям доставки. 3. Всё работает на react + api, без перезагрузок страницы в браузере. Например, я доставляю только по городу. Зачем мне заставлять покупателя указывать почтовый индекс, страну, регион. Я просто в форме оформления заказа отключаю все поля (через Админку — Настройки — Оформление заказа), оставляю только 2 поля — Имя и Телефон. Всё. Дальше уже на выбор покупателя. Если выбирает доставку по городу, то при выборе доставки появляются поле Адрес, Метро и т.д. Вот выбрал доставку курьером, появилось поле Адрес При выборе доставки почтой — появляются поля Адрес,Индекс. У Вас есть возможность быстро и удобно выводить поля формы в зависимости от выбранной доставки. Всё это настраивается в Админке — Настройки — Доставка. В разделе Поля оформления заказа. Вот пример для модуля курьерская доставка: Вот пример для модуля доставки почтой: Кроме того, Вы можете ограничивать модули доставки в зависимости от указанной страны, города, региона. В зависимости от суммы заказа, либо от веса заказа. В итоге, оформления заказа получается простым и удобным, у покупателя запрашивается только необходимая информация и только тогда когда это нужно. А не так как обычно, что нужно заполнить кучу форм с десятками полей, условий. Всё быстро, просто и удобно. Живой пример можно посмотреть в онлайн-демке: https://vamhost.ru https://admin.vamhost.ru Читать заметку полностью
  12. Про простое, быстрое и удобное оформление заказа в онлайн магазине. В интернет магазине cezerin сделано максимально простое и удобное оформление заказа, управляемое из админки. Какие задачи были решены: 1. Максимально не напрягать посетителя при оформлении заказа. 2. Привязать поля с данными о доставке не к общей форме, а к модулям доставки. 3. Всё работает на react + api, без перезагрузок страницы в браузере. Например, я доставляю только по городу. Зачем мне заставлять покупателя указывать почтовый индекс, страну, регион. Я просто в форме оформления заказа отключаю все поля (через Админку - Настройки - Оформление заказа), оставляю только 2 поля - Имя и Телефон. Всё. Дальше уже на выбор покупателя. Если выбирает доставку по городу, то при выборе доставки появляются поле Адрес, Метро и т.д. Вот выбрал доставку курьером, появилось поле Адрес При выборе доставки почтой - появляются поля Адрес,Индекс. У Вас есть возможность быстро и удобно выводить поля формы в зависимости от выбранной доставки. Всё это настраивается в Админке - Настройки - Доставка. В разделе Поля оформления заказа. Вот пример для модуля курьерская доставка: Вот пример для модуля доставки почтой: Кроме того, Вы можете ограничивать модули доставки в зависимости от указанной страны, города, региона. В зависимости от суммы заказа, либо от веса заказа. В итоге, оформления заказа получается простым и удобным, у покупателя запрашивается только необходимая информация и только тогда когда это нужно. А не так как обычно, что нужно заполнить кучу форм с десятками полей, условий. Всё быстро, просто и удобно. Онлайн-демка доступна по адресу: https://vamhost.ru https://admin.vamhost.ru
  13. Это не адаптивный шаблон. На смартфонах будет выглядеть плохо. Сейчас время только адаптивных шаблонов, и не просто адаптивных, а так называемых mobile first. Т.е. прежде всего шаблон должен быть удобен на смартфонах, и только затем на компах. Даже гугл перешёл к модели mobile first индексации, проверяет прежде всего как выглядят сайты на смартфонах, а не на компах. Потому что сейчас в основном с мобилок в инет выходят.
  14. Нужно установить вот такой дизайн http://pizza.xiit.ru/ на версию 1,63 или что-то похожее, простое(доставка еды), без лишних разделов, но в темных тонах(фон заменить на черный)
  15. Спасибо большое! Платные тоже подойдут. А то все, что не находил через поисковик, все мертвые сайты
  16. Да, наверное надо шапку добавить с логотипом. Кстати, если посмотреть на все сайты популярные сейчас, сейчас везде такая навигация. Примеры: яндекс почта google почта яндекс дирекст twitch youtube
  17. Порты не должны повторяться. Если магазин по умолчанию работает на портах: 3000 - магазин, http://localhost:3000 3001 - api, http://localhost:3001/api/v1/settings 3002 - admin, http://localhost:3002 Что б запустить несколько копий магазина на одном сервер, надо что б порты не конфликтовали. т.е. заменить просто порты. У второй копии например использовать 4000, 4001, 4002 порты. У третьей копии например использовать 5000, 5001, 5002 порты. Что б каждое приложение сидело на своём порту и не конфликтовало с запущенными ранее приложениями. Для этого просто достаточно поправить конфиги в папке /config Заменив порты. и поменяйте название приложений в process.json Просто для того что б при запуске pm2 start process.json легко отличить было, где что запущено. При промотре запущенных приложений pm2 list all будет видно по названию, где что. Последний шаг - настройка веб-сервера nginx. Надо создать свои настройки для каждого магазина (сайта). Берётся стандатный конфиг и правится под каждый домен, так же с заменой путей, с заменой портов. Кроме того, надо поменять 8888 в thumbnail настройках сервера. Для второго приложения например 7777 Для третьего 6666 Встречается порт два раза в конфиге ngnix, меняйте два раза 8888 Иначе будет ошибка 415 unsupported media type при добавлении картинок к товару, при попытке нарезки thumbnail. А так же уникальное значение в опции keys_zone: proxy_cache_path /tmp/nginx-images-cache2/ levels=1:2 keys_zone=images:10m inactive=30d max_size=5g use_temp_path=off; Вот подробная статья про настройку ngnix для разных сайтов: https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-server-blocks-virtual-hosts-on-ubuntu-16-04 Вот примеры настройки cezerin + настройки веб-сервера для запуска сразу 3 копий на одном сервере. cezerin2-multiple-configs.tar.gz
  18. Обычный конфиг ngnix: server { # Dynamic image resizing server listen 127.0.0.1:8888; server_tokens off; location ~ "^/resize/(?<entity>\w+)/(?<id>\w+)/(?<width>[1-9][0-9][0-9]{1}|[1][0-9][0-9][0-9]{1})/(?<file>.+)$" { alias /var/www/cezerin/public/content/images/$entity/$id/$file; image_filter_buffer 20M; image_filter_jpeg_quality 85; image_filter_interlace on; image_filter resize $width -; } } # Cache rule for resized images proxy_cache_path /tmp/nginx-images-cache2/ levels=1:2 keys_zone=images:10m inactive=30d max_size=5g use_temp_path=off; server { listen 80 default_server; server_name _; gzip on; gzip_comp_level 2; gzip_min_length 1024; gzip_vary on; gzip_proxied expired no-cache no-store private auth; gzip_types application/x-javascript application/javascript application/xml application/json text/xml text/css text$ client_body_timeout 12; client_header_timeout 12; reset_timedout_connection on; send_timeout 10; server_tokens off; client_max_body_size 50m; expires 1y; access_log off; log_not_found off; root /var/www/cezerin/public/content; location ~ "^/images/(?<entity>\w+)/(?<id>\w+)/(?<width>[1-9][0-9][0-9]{1}|[1][0-9][0-9][0-9]{1})/(?<file>.+)$" { # /images/products/id/100/file.jpg >>> Proxy to internal image resizing server proxy_pass http://127.0.0.1:8888/resize/$entity/$id/$width/$file; proxy_cache images; proxy_cache_valid 200 30d; } location /admin { alias /var/www/cezerin/public/admin/; try_files /index.html /index.html; } location /admin-assets/ { alias /var/www/cezerin/public/admin-assets/; } location /assets/ { alias /var/www/cezerin/theme/assets/; } location /sw.js { root /var/www/cezerin/theme/assets/; } location ~ ^/(api|ajax|ws)/ { # Proxy to NodeJS expires off; proxy_pass http://127.0.0.1:3001; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } location / { try_files $uri @proxy; } location @proxy { # Proxy to NodeJS expires off; proxy_pass http://127.0.0.1:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } С поддержкой SSL: Nginx with SSL routing config file Please confirm first your domain directory on Nginx Usually is it /home/admin/web/yourdomain/ but in some cases it could be /var/www/ Replace it along the code locate the yourdomain.nginx.ssl.conf file in /home/admin/conf/web/ open it and edit server { # Dynamic image resizing server listen 127.0.0.1:8443; server_tokens off; location ~ "^/resize/(?<entity>\w+)/(?<id>\w+)/(?<width>[1-9][0-9][0-9]{1}|[1][0-9][0-9][0-9]{1})/(?<file>.+)$" { alias /home/admin/web/yourdomain/public_html/public/content/images/$entity/$id/$file; image_filter_buffer 20M; image_filter_jpeg_quality 85; image_filter_interlace on; image_filter resize $width 100; proxy_pass https://127.0.0.1:8443/resize/$entity/$id/$width/$file; proxy_redirect https://127.0.0.1:8443/resize/$entity/$id/$width/$file https://yourIp:3000/resize/$entity/$id/$width/$file; } } # Cache rule for resized images proxy_cache_path /tmp/nginx-images-cache2/ levels=1:2 keys_zone=images:10m inactive=30d max_size=5g use_temp_path=off; server { listen yourIp:443; server_name yourdomain www.yourdomain; ssl on; ssl_certificate /etc/letsencrypt/live/yourdomain-0001/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/yourdomain-0001/privkey.pem; error_log /var/log/apache2/domains/yourdomain.error.log error; gzip on; gzip_comp_level 2; gzip_min_length 1024; gzip_vary on; gzip_proxied expired no-cache no-store private auth; gzip_types application/x-javascript application/javascript application/xml application/json text/xml text/css text$ client_body_timeout 12; client_header_timeout 12; reset_timedout_connection on; send_timeout 10; server_tokens off; client_max_body_size 50m; expires 1y; access_log off; log_not_found off; root /home/admin/web/yourdomain/public_html/public/content; location ~ "^/images/products/(?<entity>\w+)/(?<id>\w+)/(?<width>[1-9][0-9][0-9]{1}|[1][0-9][0-9][0-9]{1})/(?<file>.+)$" { # /images/products/id/100/file.jpg >>> Proxy to internal image resizing server proxy_pass http://yourIp:8888/resize/$entity/$id/$width/$file; proxy_redirect http://yourIp:8888/resize/$entity/$id/$width/$file https://yourIp:8443/resize/$entity/$id/$width/$file; proxy_cache images; proxy_cache_valid 200 30d; } location /admin { alias /home/admin/web/yourdomain/public_html/public/admin/; try_files /index.html /index.html; } location /admin-assets/ { alias /home/admin/web/yourdomain/public_html/public/admin-assets/; } location /assets/ { alias /home/admin/web/yourdomain/public_html/theme/assets/; } location /sw.js { root /home/admin/web/yourdomain/public_html/theme/assets/; } location ~ ^/(api|ajax|ws)/ { # Proxy to NodeJS expires off; proxy_pass http://yourIp:3001; proxy_redirect http://yourIp:3001 https://yourIp:3001; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } location / { try_files $uri @proxy; } location @proxy { # Proxy to NodeJS expires off; proxy_pass http://yourIp:3000; proxy_redirect http://yourIp:3000 https://yourIp:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } location ~ /\.ht {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} location ~ /\.bzr/ {return 404;} include /home/admin/conf/web/snginx.yourdomain.conf*; }
  19. Last week
  20. В VamShop PWA есть модуль импорта в магазин данных из Google Sheets (Google Таблиц). В данной заметке информация по настройке. Вы можете массово загружать данные из таблиц + привязывать картинки к товарам. Вот пример таблицы - https://docs.google.com/spreadsheets/d/1kbw0WTgWkiN87MXEOVxd3iU7JKJwKKc0WN6WXAU8-Fg/edit#gid=0 т.е. структура таблицы должна быть именно такой, с таким коилчеством колонок и названием колонок. Вам нужно сначала настроить модуль. В Админке - Настройки - Импорт товара надо указать: Google Таблицы API Ключ. Google Таблицы ID код таблицы. Google Таблицы Название листа таблицы. Где взять эти данные?! Google Таблицы API Ключ. Получить ключ можно в консоли гугла, вот подробная информация на странице https://developers.google.com/sheets/api/guides/authorizing#APIKey Внизу, в разделе Acquiring and using an API key Вот здесь подробная по-шаговая информация как и где получить ключ - https://cloud.google.com/docs/authentication/api-keys?visit_id=637155850809587877-1024611303&rd=1 Допустим, Вы уже зарегистрировали свой ключ, либо можете воспользоваться тестовым ключом, просто для проверки работы модуля. Ключ: AIzaSyCQKTOdwi_PGjUaElGpTbMTihFdAi6D3p8 Укажите его в опции Google Таблицы API Ключ в Админке - Настройки - Импорт товара надо указать. Теперь где взять Google Таблицы ID код таблицы ID номер таблицы виден в URL адресе, например наша тестовая таблица https://docs.google.com/spreadsheets/d/1kbw0WTgWkiN87MXEOVxd3iU7JKJwKKc0WN6WXAU8-Fg/edit#gid=0 ID таблицы 1kbw0WTgWkiN87MXEOVxd3iU7JKJwKKc0WN6WXAU8-Fg Указывайте этот ключ таблицы в опции Google Таблицы ID код таблицы в Админке - Настройки - Импорт товара надо указать. Теперь надо указать название листа таблицы. Названия листа отображается внизу https://docs.google.com/spreadsheets/d/1kbw0WTgWkiN87MXEOVxd3iU7JKJwKKc0WN6WXAU8-Fg/edit#gid=0 Видно, что название Sheet1 Указываем Sheet1 в опции Google Таблицы Название листа таблицы в Админке - Настройки - Импорт товара надо указать. Всё, настройки все указали. т.е. мы указываем движку, где взять взять данные для импорта в магазин. Движок подключается по API к гугл таблице и выгружает всю таблицу. Теперь переходим в Админку - Товары - Импорт товаров Если Вы указали данные таблицы правильно, скрипт выгрузит Вашу таблицу, например вот эту - https://docs.google.com/spreadsheets/d/1kbw0WTgWkiN87MXEOVxd3iU7JKJwKKc0WN6WXAU8-Fg/edit#gid=0 И Вы увидите данные таблицы. Теперь нажимаем Импорт и данные из таблицы загрузятся в магазин. Что с картинками. У Вас есть возможность добавлять и картинку к товарам при импорте. Вот в тестовой таблице видно, что заполнены картинки - https://docs.google.com/spreadsheets/d/1kbw0WTgWkiN87MXEOVxd3iU7JKJwKKc0WN6WXAU8-Fg/edit#gid=0 В колонке images Название файлов: image.jpg image1.jpg Что б скрипт взял и добавил к импортируемым товара сразу и картинки, Вам для этого надо зайти в Админку - Файлы и загрузить в список доступных файлов картинки с точно такими же названиями как в таблице с данными. т.е. добавьте в раздел Файлы картинки image.jpg image1.jpg Затем вернитесь в Админку - Каталог - Импорт товаров и и нажмите импорт. Импортируются и данные о товарах, категориях, а так же будут скопированы картинки из раздела Файлы в соответствующие папки для картинок товара, т.е. у товара появятся и картинки, а не только текстовые данные. Вот что у нас получилось в итоге Виден наш товар с картинкой. И вот на странице карточки товара видно, что загрузились 2 картинки, т.е. можно добавлять сколько угодно картинок к товару, галерею картинок.
  21. support

    Скидка

    Понятно
  22. SHKEd

    Скидка

    Ну только при добавлении товара в корзину =) Этакая приятная неожиданность для покупателя) Опять же, накрутить можно всякого - к примеру, поздравить пользователя с получением 3% скидки при достижении определенной суммы корзины) Пока владелец его не ввел в эксплуатацию, там дальше посмотрим - потому что действительно на мобильной версии сайта - надо будет делать попап поздравлялку (корзины же не видно)
  23. support

    Скидка

    Скидка от суммы корзины?! Нормально. Если ещё и в каталоге выводится где-то, что б видно было, что есть скидка, вообще неплохо.
  24. Ну да, это как раз подготовка к обновлению админки.
  25. SHKEd

    Скидка

    Есть такое, правда для оригинального вамшопа 2 надо переделывать чуть логику расчета.Я просто далеко ушел от функционала движка - у нас версия смотрит выдана ли какой либо дисконт - акция, купон, и т.д. (разделил дисконт цену и начальную цену в БД), если нет - срабатывает. Мне на поддерживаемом сайте надо было именно две цены - например, для формирования ТОРГ12 и др.документов для юриков, да и так мне кажется удобнее)))) . Чет я отвлекся, прошу прощения. Такое нужно? https://www.dropbox.com/s/x9bc6of5cpu5r7g/Peek 2020-01-25 13-32.mp4?dl=0 Также имеется настройка в админке вамшоп2 https://www.dropbox.com/s/70v7sxc2aowlhez/20200125_003.jpg?dl=0 Но опять же говорю, если его переделывать под оригинал - то будет считать просто скажем пять процентов от текущей цены товара. Модуль срабатывает при событии общего перерасчета
  26. Так должно быть в админке, давно уже пора там сделать в современном ключе. На морде - нет.
  27. Интересно, всегда здорово когда есть выбор и что доработать под свои нужды, в целом расширяется область main_content и все что ниже, а вот шапку я бы добавил для красоты без шапки как то пусто.
  28. По идее, основна ссылка - это Каталог товаров + форма поиска. Всё остальное - второстепенно.
  1. Load more activity