кто-нибудь сможет сделать такую интеграцию?
Спросите: почему на Ecwid, если для InstantCMS есть свой бесплатный компонент интернет магазина?
Преимущество Ecwid в том, что он мультиканальный… Из одного аккаунта можно вставить коды/виджеты во множество разных сайтов, то есть по сути на каждый товар можно сделать отдельный лендинг, а также загрузка товаров вКонтакте, Фэйсбук, в Яндекс Маркет и прочие… + интеграция с 1С + онлайн-касса и так далее...
Но! Для большинства популярных CMS (Wordpress, Drupal и др.) у Ecwid есть полная интеграция…, в которых уже решены некоторые проблемы…
Например, у меня из-за вставки виджета Ecwid в InstantCMS ссылки на товар через #!, а хотелось бы получить чистые ссылки без хэшбэнга...
В общем, кто нибудь из форумчан сможет такое дополнение для полной интеграции двух систем: Ecwid @ InstantCMS написать?
У Ecwid есть свой маркетплейс, где сторонние разработчики могут разместить свои доработки для продажи…
Зачем вам в случае лендинга InstantCMS?то есть по сути на каждый товар можно сделать отдельный лендинг
Ныряйте в личкуНапример, у меня из-за вставки виджета Ecwid в InstantCMS ссылки на товар через #!, а хотелось бы получить чистые ссылки без хэшбэнга...
Сайт не обязательно ограничивается целевой страницей. Например это может быть закрытое сообщество, с доступом по инвайтам или служба поддержки с клиентским кабинетом, вариантов много. Часто к таким сайтам подрубают форумы, но зачем если есть функциональный движок?..Зачем вам в случае лендинга InstantCMS?
Кстати, а что там у них с продажей услуг, есть варианты реализации?Есть интересная платформа по созданию интернет-магазинов Ecwid.
Я не говорил, что лендинг делал на InstantCMS.
Зачем вам в случае лендинга InstantCMS?то есть по сути на каждый товар можно сделать отдельный лендинг
Я объяснял возможности Ecwid, что можно вставить карточку отдельного товара как на лендинг, так и интернет-магазин целиком в сторонние сайты можно встроить
Честно скажу, не вникал касательно продажи услуг…
Кстати, а что там у них с продажей услуг, есть варианты реализации?Есть интересная платформа по созданию интернет-магазинов Ecwid.
Но цифровые товары можно продавать.
— как сделать чистые ссылки в InstantCMS для магазина, реализованного с помощью Ecwid.
Исходные данные таковы:
1) На vds сервере для Апач техподдержка хостера по моей просьбе активизировала mod_rewrite
2) Теперь в файле .htaccess, что в корне сайта, правило перезаписи надо указать.
Есть образцы этих кодов, вот они:
вот: gist.github.com/makfruit/00e1c298f11bf12392f67c240e35e927
То есть такой код вписал в файл .htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^shop/.*$ shop.html
</IfModule>
3) Далее, в готовый html — блок виджета шаблона InstantCMS вставил код от Ecwid-a c ajax + следующий код:
<script>
window.ec = window.ec || {};
window.ec.config = window.ec.config || {};
window.ec.config.storefrontUrls = window.ec.config.storefrontUrls || {};
window.ec.config.storefrontUrls.cleanUrls = true;
window.ec.config.baseUrl = '/shop';
</script>
В результате каталоги товаров и карточки товара на главной странице сайта стали отображаться без хэшбэнга....
Насколько грамотно сделал, не могу судить… Сделано чисто методом тыка, без понимания значений того или иного кода…
Увы, оказывается не так то все просто… Чистая ссылка, сформированная вышеуказанным способом, на сайте отображается...
…
В результате каталоги товаров и карточки товара на главной странице сайта стали отображаться без хэшбэнга....
Насколько грамотно сделал, не могу судить… Сделано чисто методом тыка, без понимания значений того или иного кода...
Но если ее скопировать и вставить в другой браузер или в новую вкладку, то не открывается...
Подскажите, что можно сделать?
Какой файл (и по какой ссылке) InstantCMS отвечает за вывод информации на главную? Или это зависит от конкретного шаблона InstantCMS и виджета?
За вывод отвечает файл /templates/ваш_шаблон/main.tpl.php. В нем генерируется основной вывод всех страниц. Далее подключаются виджеты со своим html кодом. Если речь идет о типе контента, то это файл /templates/ваш_шаблон/content/default_list.tpl.php, /templates/ваш_шаблон/content/default_item.tpl.php и им подобные.Какой файл (и по какой ссылке) InstantCMS отвечает за вывод информации на главную?
У вас я так понимаю, ссылка формируется на страницы типа контента ваш_сайт.ком/shop/My-Product-p123, но контента такого нет (как вероятно и самого типа контента), поэтому выдается ошибка. Плюс ко всему в данной cms все записи по умолчанию идут с окончанием ".html", а категории без окончания. При клике по вашей ссылке система пытается найти раздел, которого не существует и выдает 404.
Вам, вероятно, надо вносить ещё правки в файле /system/controllers/content/routes.php, где указать куда отправлять пользователя при обнаружении таких ссылок: example.com/shop/My-Product-p123 или example.com/shop/My-Category-c123 и там надо выводить соответствующий код для отображения раздела или карточки товара.
Возможностей mod_rewrite недостаточны получается?
Вам, вероятно, надо вносить ещё правки в файле /system/controllers/content/routes.php, где указать куда отправлять пользователя при обнаружении таких ссылок: example.com/shop/My-Product-p123 или example.com/shop/My-Category-c123 и там надо выводить соответствующий код для отображения раздела или карточки товара.
У меня всю информацию о товарах, категориях и фотографии, картинки товара на мой сайт подгружает же ajax код со стороны интернет сервиса Ecwid, никакой информации в БД моих сайтов о товарах не содержится и в БД моих сайтов не записывает. Мои сайты — всего лишь Витрина, вся обработка заказа полностью происходит на стороне Ecwid.
Задача то по сути, для знающего возможности mod_rewrite, очень простая должна быть.
Ссылку вида: agro-practice.ru/#!/Зоостим/p/358292443/category=108277812 надо преобразовывать в вид:
agro-practice.ru/products/Зоостим-p358292443 или agro-practice.ru/Зоостим-p358292443,
то есть надо избавиться при выдаче и отображении в адресной строке браузера от этого хэшбэнга: #!, то есть заполучить SEF URL = "чистые ссылки" = "человекопонятные урлы".
А это нужно для того, чтоб поисковый робот Яндекса "схавал" сгенерированный с помощью mod_rewrite этот SEF URL и проиндексировал карточки товаров, каталоги и прочее интернет-магазина.
Я логику команд mod_rewrite не понимаю. Не программист я, а всего лишь аграрий ;)
То ли mod_rewrite должен исключать при каждом обращении из ссылки хэшбэнг: #! и "скармливать" роботу Яндекса SEF URL без него, то ли наоборот:
Например, роботу Яндекса вручную "скормили" SEF URL без хэшбэнг: #! и при перепроверке Яндексом этой ссылки mod_rewrite должен сгенерировать изначальную ссылку и подтянуть необходимый контент, показать Яндексу этот контент и опять "обмануть" Яндекс, убедив его, что по данному SEF URL без хэшбэнг: #! находится именно этот контент…
Удаляем «category» из URL
Для изменения ссылки мой.сайт/category/blue на мой.сайт/blue, просто добавьте следующий код в конце вашего .htaccess файла.
RewriteRule ^category/(.+)$ мой.сайт/$1 [R=301,L]
Так вот, аналогичная такая команда, к примеру:
RewriteRule ^(#!)/(.+)$ мой.сайт/$1 [R=301,L] — не будет работать?
То есть в примере убрали category, а я хочу убрать этот: #! — конечно, в реальном сайте команду посложнее надо, наверно, прописать… чтоб не только хэшбэнг убрал, но и остальную часть ссылки оптимизировал.
чтоб не только хэшбэнг убрал, но и остальную часть ссылки оптимизировал.
Вам Loadырь, ответил
Плюс ко всему в данной cms все записи по умолчанию идут с окончанием ".html", а категории без окончания. При клике по вашей ссылке система пытается найти раздел, которого не существует и выдает 404.
То есть не всё можно решить редиректом в .htaccess
Потому, что в самой системе есть свои правила формирования ссылок.
Проблема с видами ссылок разбиралась например здесь:
/forum/thread30562-1.html
Решить её как будто возможно (только вопрос насколько действительно возможно ли, конкретно для вашего случая) так:
/forum/thread34529-1.html
Видимо, я неправильно объясняю Вам исходные данные и неправильно описываю то, что хочу сделать…
Хорошо, специально запускаю простейший сайт: sibay.su,
в котором всего лишь 3 файла: index.html, robots.txt и .htaccess. И никаких баз данных!
Показываю последовательность действий и полученный результат.
В файл .htaccess прописал рекомендуемый код от Ecwid:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^.*-p[\d]+$ index.html
RewriteRule ^.*-c[\d]+$ index.html
RewriteRule ^cart$ index.html
RewriteRule ^search.*$ index.html
RewriteRule ^checkout/.+$ index.html
RewriteRule ^account/.+$ index.html
RewriteRule ^pages/.+$ index.html
RewriteRule ^signIn.*$ index.html
RewriteRule ^resetPassword.*$ index.html
RewriteRule ^checkoutAB.*$ index.html
RewriteRule ^downloadError.*$ index.html
RewriteRule ^checkoutResult.*$ index.html
RewriteRule ^checkoutWait.*$ index.html
RewriteRule ^orderFailure.*$ index.html
RewriteRule ^checkoutCC.*$ index.html
RewriteRule ^checkoutEC.*$ index.html
RewriteRule ^checkoutAC.*$ index.html
RewriteRule ^FBAutofillCheckout.*$ index.html
</IfModule>
а в index.html — код ajax, что подтягивает каталоги товаров, а также дополнительно вот этот код:
<script>
window.ec = window.ec || {};
window.ec.config = window.ec.config || {};
window.ec.config.storefrontUrls = window.ec.config.storefrontUrls || {};
window.ec.config.storefrontUrls.cleanUrls = true;
</script>
Так вот, если я закомментирую в index.html вышеуказанный код вот так:
<!-- script>
window.ec = window.ec || {};
window.ec.config = window.ec.config || {};
window.ec.config.storefrontUrls = window.ec.config.storefrontUrls || {};
window.ec.config.storefrontUrls.cleanUrls = true;
</script --!>
то товары показываются с хэшбэнгом: #!
Если активизировать вышеуказанный код, то все нормально: SEF URL!
Результат: на сайте sibay.su сохраняются SEF URL! Но если скопировать эти ссылки и поставить в другие окна браузера, то результат:
Not Found The requested URL was not found on this server., то есть Ошибка 404 (как InstantCMS выдает).
Из вышеуказанного я делаю вывод, что вся проблема только в правилах перезаписи, записываемого в файл: .htaccess
Нужно правильно указать полный путь к файлу InstantCMS, который, как в данном примере, выполняет роль index.html и в который я записал
вот этот код:
<script>
window.ec = window.ec || {};
window.ec.config = window.ec.config || {};
window.ec.config.storefrontUrls = window.ec.config.storefrontUrls || {};
window.ec.config.storefrontUrls.cleanUrls = true;
</script>
А записал его, этот код, в HTML — блок, выводимый как виджет на главную страницу своих сайтов:
Панель управления=>Настройки=>"Виджеты и страницы"=>"Главная страница".
ВОПРОС: какой путь к файлу, который вытягивает информацию, записанную в HTML блок, выводимый как виджет на главную страницу?
Вернее вот так наверно: Какие полные пути:
— к файлу InstantCMS, сформированного в результате записи кодов Ecwid в HTML — блок (виджет-?), выводимого как виджет на главную страницу сайта: Панель управления=>Настройки=>"Виджеты и страницы"=>"Главная страница" — ?.
— к html файлу, генерируемого в результате обработки кодов Ecwid (вставленных в HTML — блок (виджет-?), выводимый как виджет на главную страницу сайта: Панель управления=>Настройки=>"Виджеты и страницы"=>"Главная страница") — ?
Я, конечно, не уверен, что правильно сформулировал свои просьбы ;)
Просто я полагаю, что раз коды от Ecwid записал в html блоки/виджеты InstantCMS, то инструкции/правила, записанные в файл .htaccess, должны их, то есть эти коды, "увидеть/прочитать"… и в совокупности вместе исполнить поставленные перед ними задачи.
Я не думаю, что при наличии вышеуказанного кода и кода ajax, "вытягивающего" контент по товарам, какие то правила InstantCMS по формированию ссылок, будут мешать корректному формированию SEF URL.
Да и сами разработчики Ecwid утверждают, что на любых CMS в помощью корректного .htaccess и их кодов вставки можно заполучить SEF URL.
Правда, бесплатно не хотят раскрыть свои секреты, денежки просят, а мне охота докопаться до истины😊, опыта набраться и сэкономить денежки.