Как я уже писал, на данный момент в C1 нет своего модуля для создания интернет-магазина. Однако можно интегрировать сторонние решения. На сайте C1, есть статья о том, как интегрировать nopCommerce в C1.
По мотивам этой статьи и будет описана интеграция nopCommerce и C1.
Для интеграции мы воспользуемся сборкой nopCommerce 1.80 (no source), которая используется в статье-оригинале.
Условимся, что физически наш сайт C1 находится в папке C:\C1WebSite\CompositeC1.
Подготовим файлы nopCommerce
Файл Handlers.xml будет нужен дальше.
Копируем файлы
Открываем web.config из дистрибутива nopCommerce и копируем такие разделы и ключи в web.config нашего сайта:
Создаем базу данных для nopCommerce
Регистрируем функции
Запускаем магазин на сайте
Все. Теперь открываем сайт в браузере и заходим на страницу Shop.
Чтобы доступиться в админку самого nopCommerce'а на сайте, нужно к имени сайта добавить /Administration, например, http://www.contoso.com/Administration.
Проблема с кнопкой Confirm
Если не будет работать кнопка Confirm, при “покупке” товара, делаем следующее:
Послесловие
Понятно, что это решение - не самое лучшее. Но на данный момент это единственно мне известное.
Думаю, что в ближайшее время, по мере распространения C1, будут созданы как и более дружественные пользователю интеграции с известными решениями для интернет-магазинов, так и конкретные решения под С1.
По мотивам этой статьи и будет описана интеграция nopCommerce и C1.
Для интеграции мы воспользуемся сборкой nopCommerce 1.80 (no source), которая используется в статье-оригинале.
Условимся, что физически наш сайт C1 находится в папке C:\C1WebSite\CompositeC1.
Подготовим файлы nopCommerce
- Загружаем, распаковываем и собираем программу конвертации веб-форм в элементы управления ASP.NET с сайта C1.
- Распаковываем дистрибутив nopCommerce по такому пути: C:\nopFiles\nopCommerce\Original.
- Перемещаем exe-шник программы конвертации в C:\nopFiles и запускаем ее из командной строки с выведением результата в файл - вот так:
Файл Handlers.xml будет нужен дальше.
Копируем файлы
- В корне нашего C1-сайта, создаем папку nopCommerce и перемещаем все *.ascx и and *.ascx.cs файлы из C:\nopFiles\nopCommerce\Original в C:\C1WebSite\CompositeC1\nopCommerce. (Важно! Файлы *.aspx.cs перемещать не нужно.)
- Перемещаем остальные файлы, кроме указанных ниже, из C:\nopFiles\nopCommerce\Original в корневую папку сайта C:\C1WebSite\CompositeC1. (Важно! Эти 4 файла перемещать не нужно: Global.asax, NopCommerceStore.csproj, NopCommerceStore.csproj.user, web.config)
- Также перемещаем такие папки в корневую папку сайта C:\C1WebSite\CompositeC1:
- Administration
- App_Themes
- Bin
- editors
- files
- images
- nopCommerce
Открываем web.config из дистрибутива nopCommerce и копируем такие разделы и ключи в web.config нашего сайта:
- configuration/ConfigSections
- configuration/appSettings
- configuration/connectionStrings
- configuration/urlrewritingnet
- configuration/compiltaion
- configuration/authentication
- configuration/anonymousIdentification
- configuration/authorization
- configuration/membership
- configuration/roleManager
- configuration/sessionState
- configuration/siteMap
- configuration/pages/namespaces
- configuration/pages/controls
- configuration/system.webServer/modules/remove[@name=«UrlRewriteModule»]
- configuration/system.webServer/modules/add[@name=«MembershipHttpModule»]
- configuration/system.webServer/modules/add[@name=«UrlRewriteModule»]
- configuration/system.webServer/handlers
- configuration/NopConfig
Создаем базу данных для nopCommerce
- Создаем базу данных на Microsoft SQL Server (бесплатная Express версия вполне подойдет).
- Запускаем установочные скрипты из дистрибутива nopCommerce в таком порядке:
- nopCommerce_createDatabase.sql
- nopCommerce_createData.sql
- Для ознакомления можно заполнить базу демо-данными, также запустив nopCommerce_createSampleData.sql
- Загружаем с сайта С1 и запускаем еще один скрипт: UpdateTemplatePath.sql.
- Открываем ConnectionStrings.config в корневой папке нашего сайта и добавляем туда строку соединения с базой данных. Например:
<add name="NopSqlConnection" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=nopCommerce;Integrated Security=False;Persist Security Info=False;User ID=user;Password=pass;Connect Timeout=120" />
Регистрируем функции
- Загружаем и распаковываем C1FunctionsForNopCommerce.zip.
- Копируем папки App_Code и nopCommerce в корневую папку нашего сайта.
- Заходим в админку нашего сайта в раздел Functions и добавляем внешние C# функции - для начала самый важный метод Shop - (в мастере Type: NopCommerce.Functions, Method name: Shop).
Добавляем другие функции только уже из типа NopCommerce.Modules.Functions. Для навигация по онлайн-магазину нужно добавить хотя бы метод Header.
Запускаем магазин на сайте
- Заходим в админку сайта в раздел Content, выбираем Websites и добавляем новый веб-сайт (Add Website).
- В мастере указываем Shop в качестве названия страницы (Page title) и жмем Finish.
Важно! Название должно быть именно такое - Shop. - Когда страница открывается в редакторе, на вкладке Content добавляем функции NopCommerce.Modules.Header и NopCommerce.Shop (через Insert | Functions).
- Важно! Для версии 3.0 и выше - вставляем на страницу функцию Composite.Web.Request.RegisterPathInfoUsage (в режиме редактора кода страницы).<f:function name="Composite.Web.Request.RegisterPathInfoUsage" xmlns:f="http://www.composite.net/ns/function/1.0" />
- Если нужно (при ошибках, например), размещаем разметку страницы в теги <asp:form></asp:form>. (См. "Using asp:form".)
- Сохраняем и публикуем страницу.
Еще один Важный! момент. Страницы на сайте, который интегрирует nopCommerce должны иметь расширение '.aspx'. Если у вас Composite C1 версии 3.0 и выше, вам нужно включить использование '.aspx' в качестве суффикса URL, так как он отключен по умолчанию в этих версиях:
- В разделе System, выбираем URL Configuration.
- Нажимаем Edit URL Configuration на панели инструментов.
- Указываем '.aspx' в поле Page URL Suffix.
- Нажимаем Save.
К сожалению (?), все страницы на вашем сайте теперь будут иметь расширение '.aspx'.
Все. Теперь открываем сайт в браузере и заходим на страницу Shop.
Чтобы доступиться в админку самого nopCommerce'а на сайте, нужно к имени сайта добавить /Administration, например, http://www.contoso.com/Administration.
Проблема с кнопкой Confirm
Если не будет работать кнопка Confirm, при “покупке” товара, делаем следующее:
- В папке сайта C:\C1WebSite\CompositeC1\nopCommerce\Modules\ открываем файл CheckoutConfirm.ascx и заменяем CodeBehind на CodeFile.
- Там же открываем файл CheckoutConfirm.ascx.cs, находим метод OnPreRender и комментируем такую строку:
this.btnNextStep.Attributes.Add("onclick" , "this.disabled = true;" + Page.Clientscript.GetPostBackEventReference(this .btnNextStep, ""));
Послесловие
Понятно, что это решение - не самое лучшее. Но на данный момент это единственно мне известное.
Думаю, что в ближайшее время, по мере распространения C1, будут созданы как и более дружественные пользователю интеграции с известными решениями для интернет-магазинов, так и конкретные решения под С1.
Комментариев нет:
Отправить комментарий