Интеграция Ecwid в InstantCMS

кто-нибудь сможет сделать такую интеграцию?

#1 4 мая 2021 в 22:20
Есть интересная платформа по созданию интернет-магазинов Ecwid. Так вот, в свои сайты на InstantCMS вставил код (виджет) от этого Ecwid и получил достаточно функциональный интернет-магазин.
Спросите: почему на Ecwid, если для InstantCMS есть свой бесплатный компонент интернет магазина?
Преимущество Ecwid в том, что он мультиканальный… Из одного аккаунта можно вставить коды/виджеты во множество разных сайтов, то есть по сути на каждый товар можно сделать отдельный лендинг, а также загрузка товаров вКонтакте, Фэйсбук, в Яндекс Маркет и прочие… + интеграция с 1С + онлайн-касса и так далее...

Но! Для большинства популярных CMS (Wordpress, Drupal и др.) у Ecwid есть полная интеграция…, в которых уже решены некоторые проблемы…
Например, у меня из-за вставки виджета Ecwid в InstantCMS ссылки на товар через #!, а хотелось бы получить чистые ссылки без хэшбэнга...

В общем, кто нибудь из форумчан сможет такое дополнение для полной интеграции двух систем: Ecwid @ InstantCMS написать?

У Ecwid есть свой маркетплейс, где сторонние разработчики могут разместить свои доработки для продажи…
#2 4 мая 2021 в 22:29

то есть по сути на каждый товар можно сделать отдельный лендинг

GoldenLion
Зачем вам в случае лендинга InstantCMS?
#3 4 мая 2021 в 22:39

Например, у меня из-за вставки виджета Ecwid в InstantCMS ссылки на товар через #!, а хотелось бы получить чистые ссылки без хэшбэнга...

GoldenLion
Ныряйте в личку
#4 5 мая 2021 в 04:13

Зачем вам в случае лендинга InstantCMS?

@IamB
Сайт не обязательно ограничивается целевой страницей. Например это может быть закрытое сообщество, с доступом по инвайтам или служба поддержки с клиентским кабинетом, вариантов много. Часто к таким сайтам подрубают форумы, но зачем если есть функциональный движок?..
#5 5 мая 2021 в 04:19

Есть интересная платформа по созданию интернет-магазинов Ecwid.

GoldenLion
Кстати, а что там у них с продажей услуг, есть варианты реализации?
#6 5 мая 2021 в 09:09


то есть по сути на каждый товар можно сделать отдельный лендинг

GoldenLion
Зачем вам в случае лендинга InstantCMS?

@IamB
Я не говорил, что лендинг делал на InstantCMS.
Я объяснял возможности Ecwid, что можно вставить карточку отдельного товара как на лендинг, так и интернет-магазин целиком в сторонние сайты можно встроить
#7 5 мая 2021 в 09:10


Есть интересная платформа по созданию интернет-магазинов Ecwid.

GoldenLion
Кстати, а что там у них с продажей услуг, есть варианты реализации?

DzurDzuk
Честно скажу, не вникал касательно продажи услуг…
Но цифровые товары можно продавать.
#8 25 мая 2021 в 21:13
В общем, долго разбирался, но самостоятельно решил проблему:
— как сделать чистые ссылки в 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>

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

Насколько грамотно сделал, не могу судить… Сделано чисто методом тыка, без понимания значений того или иного кода…
#9 26 мая 2021 в 10:15



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

GoldenLion
Увы, оказывается не так то все просто… Чистая ссылка, сформированная вышеуказанным способом, на сайте отображается...
Но если ее скопировать и вставить в другой браузер или в новую вкладку, то не открывается...
Подскажите, что можно сделать?

Какой файл (и по какой ссылке) InstantCMS отвечает за вывод информации на главную? Или это зависит от конкретного шаблона InstantCMS и виджета?
#10 28 мая 2021 в 07:44

Какой файл (и по какой ссылке) InstantCMS отвечает за вывод информации на главную?

GoldenLion
За вывод отвечает файл /templates/ваш_шаблон/main.tpl.php. В нем генерируется основной вывод всех страниц. Далее подключаются виджеты со своим html кодом. Если речь идет о типе контента, то это файл /templates/ваш_шаблон/content/default_list.tpl.php, /templates/ваш_шаблон/content/default_item.tpl.php и им подобные.
У вас я так понимаю, ссылка формируется на страницы типа контента ваш_сайт.ком/shop/My-Product-p123, но контента такого нет (как вероятно и самого типа контента), поэтому выдается ошибка. Плюс ко всему в данной cms все записи по умолчанию идут с окончанием ".html", а категории без окончания. При клике по вашей ссылке система пытается найти раздел, которого не существует и выдает 404.
Вам, вероятно, надо вносить ещё правки в файле /system/controllers/content/routes.php, где указать куда отправлять пользователя при обнаружении таких ссылок: example.com/shop/My-Product-p123 или example.com/shop/My-Category-c123 и там надо выводить соответствующий код для отображения раздела или карточки товара.
#11 28 мая 2021 в 12:56


Вам, вероятно, надо вносить ещё правки в файле /system/controllers/content/routes.php, где указать куда отправлять пользователя при обнаружении таких ссылок: example.com/shop/My-Product-p123 или example.com/shop/My-Category-c123 и там надо выводить соответствующий код для отображения раздела или карточки товара.

Loadырь
Возможностей mod_rewrite недостаточны получается?

У меня всю информацию о товарах, категориях и фотографии, картинки товара на мой сайт подгружает же 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 без хэшбэнг: #! находится именно этот контент…
#12 28 мая 2021 в 13:07
Вот такой пример показывают:

Удаляем «category» из URL
Для изменения ссылки мой.сайт/category/blue на мой.сайт/blue, просто добавьте следующий код в конце вашего .htaccess файла.
RewriteRule ^category/(.+)$ мой.сайт/$1 [R=301,L]


Так вот, аналогичная такая команда, к примеру:

RewriteRule ^(#!)/(.+)$ мой.сайт/$1 [R=301,L] — не будет работать?

То есть в примере убрали category, а я хочу убрать этот: #! — конечно, в реальном сайте команду посложнее надо, наверно, прописать… чтоб не только хэшбэнг убрал, но и остальную часть ссылки оптимизировал.
#13 28 мая 2021 в 15:11

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

GoldenLion

Вам Loadырь, ответил

Плюс ко всему в данной cms все записи по умолчанию идут с окончанием ".html", а категории без окончания. При клике по вашей ссылке система пытается найти раздел, которого не существует и выдает 404.

Loadырь

То есть не всё можно решить редиректом в .htaccess
Потому, что в самой системе есть свои правила формирования ссылок.

Проблема с видами ссылок разбиралась например здесь:
/forum/thread30562-1.html

Решить её как будто возможно (только вопрос насколько действительно возможно ли, конкретно для вашего случая) так:
/forum/thread34529-1.html
#14 28 мая 2021 в 19:34
Что то мне подсказывает, что Вы усложняете все...

Видимо, я неправильно объясняю Вам исходные данные и неправильно описываю то, что хочу сделать…

Хорошо, специально запускаю простейший сайт: 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!
#15 28 мая 2021 в 19:54
В файле .htaccess отключаю: #RewriteEngine On

Результат: на сайте 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.
Правда, бесплатно не хотят раскрыть свои секреты, денежки просят, а мне охота докопаться до истины😊, опыта набраться и сэкономить денежки.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.