О нас

Все началось 7 лет назад с интернет магазина. Точнее, с попытки открытия собственного интернет магазина электроники.

Неделя поисков в интернете подходящего движка, еще неделя анализа и ... вот он - бесплатный, быстрый и надежный OpenCart.

Решение принято. Скачали, установили на сайте, все работает, жизнь удалась!

Осталось наполнить магазин красивыми картинками и подробными характеристиками наших товаров: мобильные телефоны, ноутбуки, телевизоры и аксессуары к ним.

Поскольку магазин на OpenCart не является частью сторонней электронной коммерции, предоставляющей вам (не бесплатно) услуги по наполнению магазина и обновлению цен, а является вашей личной собственностью, то весь труд по наполнению и ведению магазина, приходится брать на себя.

Мне достался раздел "iPhone"

Всего на создание первого товара - Apple iPhone 5S 64GB Space Gray ушло 45 минут, при этом, как оказалось позже, я допустил 2 ошибки в характеристиках.

Глава 2. "Fuck your keyboard!"

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

Почему я должен все делать руками, если есть прайс-лист моего поставщика, в котором все написано!?

А именно, есть ссылки на фото в формате jpg, есть полное описание, есть ссылка на страницу с товаром, на которой есть все характеристики БЕЗ ОШИБОК, производитель и красивое форматированное название. Кстати, фото там тоже было, причем не одно.

Поскольку срок открытия магазина приближался с немыслимой скоростью, первая, самая примитивная версия плагина, была готова через месяц. В этой версии многого еще не хватало, однако, она позволила нам загрузить в магазин около 10 000 товаров за две недели.

Идея простая: рассказать плагину, что именно находится в колонках прайс листа. Указать, что артикул товара находится в колонке номер х, название - в колонке номер у, ссылки на фото в колонках a,b и c ...

Выставили на продажу, за 30 дней купили 60 человек.

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

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

Вышли на форум. Сегодня, это уже более 1800 страниц обсуждений, споров, советов и взаимной помощи. Пришло понимание многих требований, которые предъявляют пользователи к подобным программным продуктам.

Сейчас, плагин превратился в целый комплекс модулей, включая работу с Cron и более 250 независимых от прайс листа Инструментов.

Уже трудно сказать, кто больше поучаствовал в создании конечного продукта: мы или наши покупатели, которых мы любим и благодарим за помощь!

Конкуренты

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

Цель: установить цены в магазине ниже, чем у конкурентов, но не ниже цены закупки.

Принцип работы.

  • На каждый товар из прайс листа, плагин собирает цены с сайтов конкурентов (количество сайтов не ограничено).
  • Из полученного массива цен, в соответствии с настройкой в блоке "Анализ цен конкурентов", плагин вычисляет оптимальную цену на товар.
  • Если полученная цена оказывается выше цены закупки, плагин поставит ее в товар.

Поэтому поле "Цена закупки" не может оставаться пустым. Оно должно указывать на колонку прайс листа, содержащую цену закупки для каждого товара. Если прайс лист поставщика не имеет отдельной колонки "Цена закупки", то ценой закупки можно считать обычную цену товара (без наценки).

Товар без цены закупки будет пропущен.

1. Первоначально, необходимо добавить в прайс лист поставщика ссылки на страницы сайтов конкурентов. Это делается руками и 1 раз:

2. Подобрать параметры парсинга цены для каждого конкурента через обычное обновление цен:

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

3. Включить "Анализ цен конкурентов" и 1 раз обработать прайс лист. Плагин сохранит ссылки на конкурентов из колонок 4,5 и 6 в товарах, и в дальнейшем будет ими пользоваться. Т.е. в будущем, для обновления цен по конкурентам будет достаточно такого прайс листа:

или еще проще, сделать это из вкладки "Инструменты" одним нажатием без прайс листа:


Название товара

Полоса "Название товара" имеет всего одну кнопку:

которая разрешает или запрещает плагину обновить название товара в магазине.

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

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

Поскольку URL товара автоматически генерируется в режиме добавления, он останется не измененным при изменении названия товара. Об этом факте напоминает строка "см. ниже "Обновить url". Имеется в виду:

в разделе "Общие кнопки".

Внимание:

Изменение URL товаров может привести к падению рейтинга сайта в Гугле.

Формирование названия товара.

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

Если в поле "Название товара..." перечислить номера этих колонок через точку:

то в товар загрузится название: Стол кухонный СТ-12 Белый (пробелы между словами вставляются автоматически).

Можно прописать другой порядок слов, например: 1.3.2, что будет соответствовать: Стол кухонный Белый СТ-12.

Парсинг названия товара.

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

Например, в коде страницы, название товара находится между параметрами content="  и  "

Однако, параметр content=" встречается во многих местах и раньше. Значит, нужно установить параметр начала парсинга: property="og:title

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

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

Внимание.

Если в отчете, плагин сообщает, что название успешно добавилось или обновилось, а в товаре - пусто, проверьте кодировку источника.

Выставьте кодировку здесь:


Цена товара

В форме поставщика за цену отвечает полоса:

В поле "Цена" прописывается номер колонки прайс листа, в которой находятся цены товаров в виде:

  • числа с десятичной точкой или запятой: 1234.5 или 1234,5
  • числа с обозначением валюты: 1234,5 грн. или $1234.5
  • числа с разделителями: 1 234.5 или 1'234.5

При загрузке в товар, цены округляются до 2-х знаков после десятичной точки:  1234.50

Нулевая цена.

Если в прайс листе отсутствует цена товара, то такой товар будет пропущен. Фактически, пропускается строка прайс листа, в которой отсутствует число большее нуля в колонке:

(в колонке №4, в данном примере).

Изменить это правило можно с помощью кнопки "Установить минимальную цену опций, как цену товара". Эта кнопка имеет двойное назначение:

  • устанавливает цену на товар по минимальной опции
  • допускает, чтобы товар в прайс листе имел пустую, текстовую или нулевую цену (цена загрузится, как 0).

Нулевой остаток при обновлении цены.

Цена товара не обновится, если его остаток в прайс листе равен нулю. Логика тут простая: Если остаток товара равен нулю, значит товара нет.  Если товара нет, значит и цены не должно быть.

Изменить это правило можно принудительным обновлением цен:

Никакие другие Действия, в данном случае, не помогут.

Рекомендованная цена.

Иногда поставщики требуют продавать товары не дешевле их рекомендованной цены, которая находится в прайс листе в отдельной колонке, не совпадающей с колонкой "Цена". В таком случае, в поле "Рекомендованная цена" следует прописать номер этой колонки:

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

Внимание.

На рекомендованную цену, наценка не начисляется.

Поле "Код валюты".

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

В таком случае, следует прописать колонку 3 в поле "Код валюты":

Плагин будет автоматически пересчитывать цены по курсу Национального Банка вашей страны.

Внимание.

Этот метод работает только при пересчете базовой цены товара. Для пересчета цен опций, скидок и акций необходим плагин "Валюта плюс". 

P.S.

Если бы все цены в прайс листе были в одной валюте, например в долларах США, можно было поступить проще:

или задать курс числом: 27.3

Меню "Обновлять цену если".

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

Но если включить, к примеру этот пункт:

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

Внимание.

Обработка первого прайс листа должна произойти в режиме "Обновлять цену: Всегда".

Остальные пункты этого меню интуитивно понятны.

Цена закупки.

имеет отношение только к "Анализу цен конкурентов".

Не заполняйте это поле, если не пользуетесь этой функцией!

Прайс лист. Формат

Форматы файлов.

  • csv с произвольным разделителем колонок
  • xml в стандарте Excel, содержащий теги <row>, <cell>
  • xml с произвольными тегами
  • xls/xlsx - файлы Excel

Формат CSV.

Текстовый компактный формат прайс листа. Открывается любым текстовым редактором, например, "Блокнотом" или NotePad.

Заслуженное первое место по скорости обработки, но к сожалению, не всегда правильно открывается Excel-ем.

Формат XML в стандарте Excel.

Самый удобный формат для работы. Открывается Excel-ем, а по скорости обработки занимает почетное второе место. Недостатки: большой размер файла.

Прайс лист в этом формате можно получить с помощью Excel, пересохранив файл, как "Таблица XML".

Формат XML с произвольными тегами.

В эту категорию попадают также и прайс листы в формате YML.

Excel открывает такие прайс листы, как правило, долго и криво. В результате, данные в таблице располагаются ступеньками - "лесенкой". Если такой файл сохранить, как "Таблица XML", то плагин сможет его обработать:

price-list7.png

По скорости обработки - сравним с предыдущим форматом.

Формат XLS/XLSX - файлы Excel.

В плагин встроен пакет от Microsoft, предназначенный для чтения файлов форматов xls/xlsx и разбора формул в ячейках. Называется: PHPExcel.

Пакет написан на объектно ориентированном PHP, и, как следствие, потребляет много оперативной памяти. Поэтому, плагин загружает прайс лист, частями - по 50 строк. Тем не менее, ошибки переполнения памяти вполне возможны.

В случае, если формула Excel выходит за пределы 50 строк, пакет также выдаст ошибку.


Цена товара. Парсинг

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

Например, в коде страницы, цена товара находится между параметрами content="  и  "

Чтобы плагин не перепутал текст content="199.00" с текстом content="PLN" необходимо указать начало парсинга  itemprop="price":

Парсинг цены имеет отличия от парсинга названия или описания.

Поскольку цена представляет собой число, плагин вырезает из спарсенного фрагмента все символы, которые не имеют отношения к числу. Например, цену 199.00 можно было спарсить параметрами: itemprop="price",data

Из полученного фрагмента content="199.00" будут удалены все символы, кроме 190.00.

Эта особенность плагина позволяет парсить в сложных ситуациях. Например, в этом фрагменте кода присутствует две цены (цена и акция). Нам нужно спарсить акцию, если она есть, а если акции нет, то цену:

<prices>
<msrp>510</msrp>
<special>500</special>
</prices>

Следует прописать такие параметры парсинга:  <prices>,</prices>,2

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

Если второго числа не будет, плагин возьмет первое.

Еще пример:

<prices>
<msrp style="30 px">510</msrp>
<special>500</special>
</prices>

Здесь цена - второе число, а акция - третье:

  • акция парсится так: <prices>,</prices>,3
  • цена парсится так: <prices>,</prices>,2

P.S. Акцию можно было спарсить и по таким параметрам: <prices>,</prices>,5


usergio Copyright © 2025