Доклад с конференции 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С, у которого заполнены поля имя, фамилия, отчество, адрес, email, т.е. вся та информация, которую заполнил покупатель на сайте.
Слайд 11. Загрузка заказов в 1С
Когда мы загружаем заказ, мы указываем необходимые данные, т.е. с какими реквизитами будет создаваться по умолчанию заказ. Почему – не все данные есть на сайте. (см. рисунок справа)
Слева отображаются загруженные заказы. Красиво и аккуратно: у заказа все есть, наименование, цена и т.д. Есть клиент, в карточке этого клиента можно вычитать адрес, индекс, все!
Т.е. достаточно нажать «ок», после чего проверить и обработать заказ.
Слайд 12. Обработка заказ покупателя
Проверяем наличие. Почему я не стал рисовать ничего, потому, что эта вся работа производится уже на стороне 1С, и она вообще не касается того, что мы рассматриваем, а именно, обмена данными. Обычно все происходит примерно так: производится проверка наличия, если надо, товар резервируется, далее проводится установка статуса и отгрузка.
Слайд 13. Доставка
Здесь говорить особо не о чем. Товар доставляется покупателю.
Слайд 14. Оформление документов
Все необходимые документы и бланки формируются автоматически. Всю работу по заполнению уже выполнил сам покупатель. Он ввел адрес, ввел фамилию, ввел имя, сформировал заказ. Нам остается только нажать на кнопку «сформировать печатные бланки» и все. Даже проверять индекс не нужно. Весь пакет документов формируется полностью автоматически на основе данных, введенных покупателем.
Это очень и очень удобно.
Я считаю, что это один из краеугольных камней этого обмена. Потому что после ввода покупателем данных с помощью КЛАДР, мы можем быть уверены, что не ошиблись в индексе. Нет необходимости его проверять, так как его вычислила КЛАДР автоматически на основании данных, которые ввел покупатель.
Цена товара, стоимость покупки, все налоги также уже имеются в 1С. Это все рассчитывается автоматически.
Весь пакет документов, в том числе Р-113, Ф-7 ,формируется в 1С с помощью обработки.
Слайд 15. Получение оплаты
Оплата может производиться двумя способами: безналичный расчет или наличный. Рассмотрим оба варианта.
Безналичный расчет. Оплата в 1С формируется автоматически из клиент-банка. Т.е. еще один плюс для пользователя: не нужно совершать лишних действий. Приходит выписка из банка. По назначению платежа автоматически вычисляется, за какой заказ произведена оплата. И подставляется в виде аналитики (расшифровка платежа)
С наличной оплатой – почти также. Правда, с приходным ордером совсем ничего не делать не получится. Придется его внести вручную, указав, откуда пришли деньги.
Слайд 16. Закрытие заказа
Товар отгрузили, клиент все получил, деньги также получены. Заказ закрыт.
Я надеюсь, что сумел наглядно показать и донести до вас главную идею:
Работать с таким интернет-магазином очень просто! Все действия по работе с магазином производятся в 1С, и только заказы и данные покупателя считываются с сайта. Но и они автоматически распределяются по нужным справочникам и документам. Сотруднику достаточно просто в обычном режиме работы обработать заказ. Это – удобно, это – просто, и это работает!












