Вернуться назад
21 Дек

Доклад с конференции DrupalConf 2011 состоявшейся 3 декабря 2011 г. в Москве.

Доклад Рамиля Кинзябулатова «Разработка интернет магазина на Drupal 7 и 1С»

Для начала представлюсь. Меня зовут Рамиль, я занимаюсь разработкой интернет-магазинов на базе Drupal и последующей интеграцией их с 1С, т.е. я отлично знаю 1С и Drupal. А также немного разбираюсь в дизайне.

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

Итак, при создании автоматизированного интернет-магазина мы интегрируем Drupal и 1С Управление Торговлей 11. В этом докладе я решил сделать акцент именно на обмене данными, и вся работа магазина будет рассмотрена в этом разрезе. А потому, например, вопросы доставки раскрываться не будут, вопросы оплаты – частично и т.д.

С какой точки зрения это все будет показано?

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

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

И, конечно, я дам подробные пояснения по каждому этапу. А начнем мы с информации о товаре.

Слайд 1. Общая схема

Общая схема

Здесь я обрисовал общую схему работы с товарами:

1. Вводится вся нужная информация о товаре, причем вводится она в 1С.

2. Назначение цены (обратите внимание на специальную картинку) Это действие также производится в 1С.

3. Фиксируются изменения – тоже в 1С.

4. Производится выгрузка изменений на сайт.

5. Покупатель, точнее, на данном этапе посетитель сайта, т.к. он еще ничего не покупает, видит на сайте информацию о товаре.

6. Посетитель оформляет заказ.

Далее возможны два сценария:

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

2. Покупатель не регистрируется, он указывает, например, свою станцию метро, если он в Москве, и телефон. Здесь у каждого интернет-магазина могут быть свои особенности, это зависит от места расположения и принципов работы магазина.

Так для магазина «Дефолт-сити» мы решили указывать только станцию метро и телефон. А дальше оператор магазина по телефону уточняет, куда подъехать, чтобы доставить товар.

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

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

Остается только закрыть заказ и начислить баллы для скидки покупателю.

Теперь, когда общая схема ясна, рассмотрим все шаги подробнее. И начнем с ввода информации.

Слайд 2. Ввод данных о товаре

Ввод данных о товаре

На слайде – форма ввода данных в 1С. Для наглядности я выбрал скриншот работающей формы магазина, выполненного для наших клиентов.

Фотография

В 1С существует специальный справочник под названием «Прикрепленный файл». Туда можно поместить фотографии, описания товаров, инструкции, все, что угодно, т.е. там хранятся различные файлы, в том числе и графические.

На слайде фотография уже загружена. Сразу после загрузки она отобразилась в виде перевью. Как ее загружали рассмотрим немного позже.

Описание товара.

Обратите внимание, сколько полей описания видно на примере, здесь это: и страна-производитель, и длина и т.д. и т.п. В версии 1С 8.2 существует такое понятие, как «управляемые формы», их мы и применили для описания товара. Главная особенность заключается в том, что добавление новых реквизитов происходит в режиме пользователя. Т.е. пользователь 1С по собственному желанию может добавить новые поля для различных вариантов описания.

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

Чуть позже вы увидите, как эти данные выгружаются на сайт. Это почти тоже самое, что и таксономия для Drupal, но при этом в Drupal новые поля не отображаются, необходимо писать дополнительные модули и т.п. А в нашем случае: пользователь добавил поле описания для товара – и оно появилось. Все.

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

Например, пользователю для одного вида товаров нужно 5 свойств, а для другого только 3 свойства. Так это и будет отображаться, сколько свойств добавили – столько и видны. Это очень важно.

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

Слайд 3. Ввод информации о цене

Ввод информации о цене

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

Т.е. в карточке товара имеются поля: текущая цена и новая цена. Разница между этими ценами и составляет сумму скидки.

Эти вычисления производит 1С.

Далее данные выгружаются на сайт, и здесь уже Drupal анализирует:

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

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

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

Далее большая часть информации предназначается, в первую очередь, для Drupal –программистов, правда, и 1С-программисты не все достаточной степени знакомы с 1С:Управление Торговлей. Стоить внимательнее отнестись к этому продукту. Я лично считаю, что 1С:Управление Торговлей – реально флагманский программный продукт, он очень удобен, его активно развивают, появляются новые интересные возможности и т.д.

Слайд 4 Фиксирование изменений

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

Таким образом, мы получаем огромную экономию времени и ресурсов, например, если у нас в магазине 3000 товаров (а в магазине, взятом для примера 3500 товаров), выгрузка занимает порядка 2 секунд.

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

Слайд 5. Выгрузка на сайт.

Выгрузка на сайтНа этом слайде специально указано «magic button», рядом с кнопкой «Выполнить обмен».

И ниже я расшифровал, к чему эта пометка: Это ТА САМАЯ КОНПКА РЕШЕНИЯ ВСЕХ ЗАДАЧ.

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

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

При этом сама выгрузка на слайде показана намерено, для большей ясности. А для пользователя она происходит в фоновом режиме, он вообще не замечает процесса выгрузки и не отвлекается от работы. Просто один раз устанавливается интервал, например, каждые 2 минуты мы выгружаем данные и загружаем заказы с сайта. И это все происходит незаметно для пользователя. Он вообще может не знать о существовании сайта. У него просто появляются заказы.

Слайд 6. Отображение товара на сайте

Отображение товара на сайте

Слева на слайде вы видите табличный вид списка товаров на сайте, справа – вид одного товара с описанием.

Очень важно: обратите внимание, что все реквизиты товара взяты из 1С: картинка, цена, скидка…. Пользователю нужно выполнить всего два шага и получить результат. Причем, если к уже существующему товару пользователь в 1С добавит – он появится на сайте в описании товара.

Это огромный плюс: вашему клиенту вообще ничего не нужно знать. Нет нужды осваивать работу с CMS, нет нужды в дополнительном обслуживании сайта, он просто работает в привычной программе 1С.

Слайд 7. Оформление заказа посетителем

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

Здесь действия производятся уже в Drupal, так что информация больше заинтересует программистов 1С.

Итак, покупатель оформляет заказ: он выбирает товары, вводит количество позиций, добавляет их в Заказ. К слову, само меню заказа формируется из 1С, это один из словарей.

Далее, он подтверждает свой заказ. Все.

А что происходит дальше?

Слайд 8. Ввод личных данных покупателем

Ввод личных данных покупателем

Обязательная процедура при регистрации или простом оформлении заказа: ввод личных данных покупателя. Это могут быть email, логин, имя, фамилия – все, что угодно.

Почему я заостряю на этом этапе внимание? Потому что ниже я покажу все это в 1С.

 

Слайд 9. Ввод адреса доставки с помощью КЛАДР

Ввод адреса доставки с помощью КЛАДР

Что такое КЛАДР? Это классификатор адресов Российской федерации.

Что он дает? Он не дает ошибиться пользователю.

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

Т.е. достаточно набрать одну букву, и появляется список, например:

Б: Башкортостан, Бурятия и т.д.

Все это делает КЛАДР.

Более того, он автоматически вычисляет индекс.

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

Слайд 10. Загрузка данных покупателя в 1С

Загрузка данных покупателя в 1С

Итак, покупатель на сайте ввел личные данные. Пользователь в 1С при очередной загрузке/выгрузке информации с сайта получил информацию. В каком виде она пришла?

Он сразу видит нового контрагента в 1С, у которого заполнены поля имя, фамилия, отчество, адрес, email, т.е. вся та информация, которую заполнил покупатель на сайте.

Слайд 11. Загрузка заказов в 1С

Загрузка заказов в 1С

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

Слева отображаются загруженные заказы. Красиво и аккуратно: у заказа все есть, наименование, цена и т.д. Есть клиент, в карточке этого клиента можно вычитать адрес, индекс, все!

Т.е. достаточно нажать «ок», после чего проверить и обработать заказ.

Слайд 12. Обработка заказ покупателя

Обработка заказ покупателя

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

 

Слайд 13. Доставка

Доставка

 

 

 

 

Здесь говорить особо не о чем. Товар доставляется покупателю.

Слайд 14. Оформление документов

Оформление документов

Все необходимые документы и бланки формируются автоматически. Всю работу по заполнению уже выполнил сам покупатель. Он ввел адрес, ввел фамилию, ввел имя, сформировал заказ. Нам остается только нажать на кнопку «сформировать печатные бланки» и все. Даже проверять индекс не нужно. Весь пакет документов формируется полностью автоматически на основе данных, введенных покупателем.

Это очень и очень удобно.

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

Цена товара, стоимость покупки, все налоги также уже имеются в 1С. Это все рассчитывается автоматически.

Весь пакет документов, в том числе Р-113, Ф-7 ,формируется в 1С с помощью обработки.

Слайд 15. Получение оплаты

Получение оплаты

Оплата может производиться двумя способами: безналичный расчет или наличный. Рассмотрим оба варианта.

Безналичный расчет. Оплата в 1С формируется автоматически из клиент-банка. Т.е. еще один плюс для пользователя: не нужно совершать лишних действий. Приходит выписка из банка. По назначению платежа автоматически вычисляется, за какой заказ произведена оплата. И подставляется в виде аналитики (расшифровка платежа)

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

Слайд 16. Закрытие заказа

Закрытие заказа

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

 

 

 

Я надеюсь, что сумел наглядно показать и донести до вас главную идею:

Работать с таким интернет-магазином очень просто! Все действия по работе с магазином производятся в 1С, и только заказы и данные покупателя считываются с сайта. Но и они автоматически распределяются по нужным справочникам и документам. Сотруднику достаточно просто в обычном режиме работы обработать заказ. Это – удобно, это – просто, и это работает!

0 Комментариев