"Хочу все, как на дикой ягоде (как на wildberries.ru)" - над таким незамысловатым заданием заказчика нам недавно довелось поработать (нам - это в данном случае мне и моей помощнице Юлии Ханусяк). Уточнив, что именно заказчик хочет "как на дикой ягоде", я поняла, что он хочет такую же организацию каталога и карточки товаров, как там и чтобы каталог наполнялся на стороне 1С и уже не требовал дозаполнения на стороне сайта. Несколько разработчиков до меня благоразумно отказались от этой задачи, я же изначально не увидела в ней всех подводных камней. Мы определились, какие задачи заказчик хочет видеть решенными до запуска магазина, а какие мы оставим на будущее, и я приступила к реализации.
Тут следует упомянуть об особенностях организации каталога на wildberries.ru.
Каждый товар (предмет одежды) имеет торговые предложения, обладающие характеристиками цвета и размера. И к каждому цвету привязано свое фото, и если пользователь в карточке товара кликает по определенному цвету, то картинка этого цвета становится на место большой картинки.
Как известно, подготовить структуру инфоблоков для такой задачи на стороне сайта - не составляет большого труда. Об организации каталога с торговыми предложениями хорошо написано в учебных курсах для разработчиков, и я не буду пересказывать их. Привязать картинки к торговым предложениям в Битрикс тоже вполне возможно.
На стороне 1С (у клиента стандартная 1С УТ 11.0) - тоже, казалось бы, нет проблемы - включаем учет по характеристикам. Создаем характеристики "цвет" и "размер" для нужных номенклатурных групп, правильно заводим документы прихода на склад и документы установки цен, создаем профиль обмена с фильтром по наличию на складе и делаем выгрузку.
И вот тут и всплыл большой и жирный подводный камень: на стороне 1С Предприятия в стандартной конфигурации УТ нет никакой возможности указать, к какому цвету относится та или другая прикрепленная к номенклатурной позиции картинка.
1С программиста у заказчика не было, и заказчик искренне полагал, что, взявшись делать интеграцию, я должна делать ее с обеих сторон. "Что же, Юля, в следующий раз ты будешь тщательнее продумывать текст договора" - сказала я себе и вспомнила о замечательном 1С Франчайзи, интеграторе и внедренце, с которым я имею честь быть знакомой, а именно об Анатолии Полякове (Skype: tolpolyakov). К нему я и обратилась за консультацией по указанной проблеме. Анатолий проконсультировал меня и, кстати, отказался от денег, попросив взамен дружбу и аналогичные дружеские консультации по Битриксу, если они понадобятся. Анатолий, я не забываю добро и помню о своих обещаниях. Но я отвлеклась от темы.
Анатолий предложил мне следующий способ решения задачи привязки конкретной картинки к конкретному цвету: на стороне 1С отказаться от учета по характеристике "цвет", вести учет только по характеристике "размер", на стороне 1С считать, что разные цвета одного товара - это разные товары, но иметь некое объединяющее поле, и на стороне сайта, кастомизируя импорт, сливать несколько товаров, различающихся цветом, в один товар с торговыми предложениями, обладающими и цветом, и размером.
Этот способ мне не очень понравился... и не только из-за его трудоемкости. Мне нравится сама идея ведения учета товара в 1С Предприятии по характеристикам, и отказ от полноценного использования такого учета ради реализации маленькой фичи показался мне неадекватно большой потерей, хотя заказчик был готов на нее пойти.
Я думала, думала и решила, что правильным вариантом будет добавить на стороне 1С свойство к сущности файла, позволяющее назначать файлу привязку к конкретному элементу из справочника цветов, а так же свойство, отвечающее за то, является ли фото - главным видом или видом сзади, и еще одного свойство, отвечающее за то, является ли картинка картинкой по-умолчанию. Я была готова реализовать это на стороне 1С самостоятельно, освежив навыки 6-ти летней давности, но, поговорив с заказчиком, мы решили остановиться на менее изящном, но более простом варианте.
Мы решили использовать в 1С стандартное поле "Описание файла" для хранения нужных нам признаков картинки - цвета и того, является ли она "мордочкой" или "спинкой".
Договорились, что в описании файла заказчик будет писать, к примеру, "красный№1" если это главная картинка красного цвета, "красный" - если это картинка красного цвета, но не главная, "красный№0" - если это картинка красного цвета, к-я должна быть использована как картинка по-умолчанию, если для какого-то цвета нет картинки.
При импорте в файле обмена описания файлов картинок выгружаются 1С в составе реквизитов товара.
О том, как их можно обработать на стороне сайта - я тоже умолчу в данном посте - я уже опубликовала несколько постов с описанием того, как я кастомизирую импорт. А то, что у нас получилось - можно увидеть на сайте luckyfamily.ru
Конечно, пройдет еще не мало итераций разработки, пока этот проект приблизится к своему идеалу - "диким ягодам". Но каталог успешно наполняется на стороне 1С, регулярно импортируется на сайт и мы знаем, какая фотка - какого цвета, на какой - мордочка, а на какой - спинка.
Юлия Бедросова , получилось сделать стандартным способом - хорошо. Мы однажды сайт делали. Недооценили сложность задачи про НДС. Там у заказчика 3 типа покупателя и 3 продавца. Одни с НДС, другие без НДС. Пришлось изменять компонент оформления заказа и обмен с 1С, чтобы НДС выгружать. Теперь без детального ознакомлени проекты не берем.
Главное, что ты не дала 1С-никам испортить проект. Мне однажды 1С-ник предлагал сделать несколько выгрузок в разные каталоги, когда я его просил всего-лишь добавить выгрузку складов у товара.
Короче, ты все сделала правильно. Заказчик заполняет товар в 1С и управляет каталогом. Можно, как вариант дописать в 1С обработку, чтобы они загружали в 1С картинку и там выбор был, к какому предложению. Но это уже не твоя забота.
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».