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

Прежде всего, нужно определить, в какой кодировке сверстан сайт-донор:

И выставить эту кодировку в форме поставщика:

Пример1.

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

Параметры парсинга подчеркнуты красными линиями, это:  id="tab-description">,</div></div></div>

В форме поставщика прописывается так:

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

Пример2.

Здесь очевидна проблема со вторым параметром - конца фрагмента. Параметр </div> не подходит, т.к. он встречается и внутри описания (подчеркнуто красной линией).

Пробелы в параметрах, не рекомендуется использовать, поэтому не подойдет и 

id="tab-description">,</div>   </div>

Нельзя использовать и параметр class="tab-pane" поскольку в описание попадет незакрытый <div , что приведет к искажению разметки на сайте.

В таких случаях, допускается добавить третий параметр: id="tab-description">,</div>,</div>, который сообщает плагину, что между вторым и третьим параметрами может быть неограниченное количество пробелов.

Пример3.

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

Тогда следует использовать такие параметры парсинга:  *,*


Производитель

Производители в админ-панеле.

В админ-панеле OpenCart есть вкладка, предназначенная для ручного создания производителей:

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

Товар может не иметь производителя (это не ошибка), однако для продвижения магазина в интернете, производители в товарах очень желательны. Поэтому некоторые движки на основе OpenCart (ocStore, OPENCART.PRO) дают возможность создавать мета-данные и описания производителей:

Производители в товарах.

Плагин автоматически помещает производителей в товары, если производители прописаны в колонке прайс листа и номер этой колонки указан в форме поставщика в полосе "Производитель":

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

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

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

в зависимости от режима работы.

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

Плагин создает производителя в админ-панеле вместе с его URL. Другие мета-данные и стандартное описание создаются только в соответствии "SEO-шаблоном", если он был заполнен автором:

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

Замена имени производителя налету.

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

Воспользуйтесь приложением Excel чтобы создать таблицу, содержащую всего 2 колонки:

Сохраните таблицу в файл manufacturer.xml в формате "Таблица XML" и закачайте ее на сайт в папку admin/uploads.

Инструменты для работы с производителями.

Во вкладке "Инструменты" есть группа функций болотного цвета:

В основном, здесь все интуитивно понятно.

1. Под термином "Исправить" подразумевается безоговорочная замена старого текста на новый. При условии, что новый текст из SEO-шаблона не пустой.

Под термином "Заполнить пустые" подразумевается, что непустой текст из SEO-шаблона заполнит пустое мета-данное.

2. URL производителя формируется плагином автоматически из названия. При этом соблюдаются все SEO стандарты: удаляются спец-символы, кириллица транслитерируется в латинские маленькие буквы, пробелы заменяются на дефисы. Например:

  • Было: "Мир игрушек"
  • Стало: mir-igrushek
Если вы изменили название производителя в админ-панеле, выполните этот пункт.

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

Если переименовать производителя Asus Corporation в Asus, чтобы получился дубль, а затем, использовать функцию 3, то все товары "перепишутся" к одному производителю, а другой - будет удален.

Парсинг.

См. парсинг названия товара.


Фото.

Расположение фото в OpenCart.

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

С тех пор, фото каждого товара делятся на две группы:

  • главное фото
  • дополнительные фото

Главное фото имеет конкретное место расположение, его можно найти, удалить, заменить. Дополнительные фото свалены в кучу и выделить какое-либо конкретное из них - не возможно.

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

Файлы фото хранятся в под-папках image/catalog, и привязаны к товару через базу данных(БД), полу-ссылками:

Здесь видно, что главное фото товара 2768 находится в папке image/catalog/palto и называется photo-main12.png

Если изменить имя фото в папке image/catalog/palto, то его нужно изменить и в БД, иначе главное фото товара исчезнет на сайте.

Самый важный раздел этой страницы.

Папка palto содержит фото не одного товара 2768, а целой категории "Верхняя одежда" потому, что при создании товаров, плагин выполнял наше указание на вкладке "Категории и наценки":

и закачивал фото товаров из категории, которая в  прайс листе обозначена как 23451 в папку image/catalog/palto

Подробнее.

Плагин прочитал из прайс листа товар. В товаре были ссылки на фото, плагин скачал эти фото. В товаре, в колонке "младшая категория" было написано "23451". Плагин нашел младшую категорию "23451" на вкладке "Категории и наценки" и увидел, что товар нужно положить в категорию магазина "Верхняя одежда", а фото закачать в папку image/catalog/palto

Влияние на скорость работы сайта.

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

1. Больше разных папок для разных категорий. Не допускайте такой настройки:

2. Разделите каждую папку на 10 под-папок:

При включенной кнопке "Раскладывать по под-папкам...", плагин равномерно распределит фото по под-папкам: [0], [1], [2],...[9]

Все фото товара 2768 попадут в папку palto/8/ потому, что цифра 8 - последняя в номере товара.

3. В случае крайней необходимости, можно, используя "Инструменты", разделить каждую под-папку еще на 10 под-под-папок:

Удаление фото.

Файлы картинок (фото) являются самым большим потребителем дискового пространства сайта, папка image - самая большая папка на сайте, хотя не все фото, которые в ней хранятся, используются в карточках товаров.

Ненужные, мусорные фото образуются в папке image после удаления фото в товарах.

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

В плагине есть инструмент "Удалить из image неиспользуемые фото":

Перед использованием инструмента следует сделать копию базы данных.

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

Всю подготовку следует делать на ПК.

  1. Скачайте папку image на ПК и не удаляйте ее до конца работы
  2. Создайте папку image1 и скопируйте в нее все содержимое папки image
  3. Очистите папку image1/catalog от файлов с помощью консольной команды: del /s /q image1/catalog (восстановите удаленные файлы, не имеющие отношения к товарам: иконок, языков, категорий...)
  4. Закачайте папку image1 в корень сайта (рядом с папкой image)
  5. Запустите в работу инструмент "Удалить из image неиспользуемые фото"
  6. По окончанию работы инструмента, переименуйте папку image в image2, а папку image1 - в image
  7. Очистите папку image/cache/catalog
  8. Зайдите на сайт, убедитесь, что фото у товаров не пропали
  9. Удалите папку image2

Фото. Загрузка

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

1. В прайс листе нет фото и нет ссылки на веб-страницу сайта поставщика.

Плагин не создаст новый товар без фото. В Отчете (файл admin/uploads/errors) появится сообщение об ошибке:

Main photo not found. Row ~= "123" SKU = "AZ-12" Product passed

Не найдено главное фото товара. Строка прайс листа: 123. Артикул товара: AZ-12. Товар пропущен.

Для того, чтобы товар без главного фото, все же, был создан, следует прописать фото по-умолчанию. Фото по-умолчанию загружается только в товары, у которых нет фото в прайс листе. Или оно есть, но "битое":

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

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

Имя фото по-умолчанию, желательно использовать: no_image или no-image.

2. Прямые ссылки на фото.

Назовем "прямой ссылкой на фото" такую ссылку, при нажатии на которую в браузере открывается фото. Это может быть, как ссылка с расширениями jpg/png/jpeg/gif/bmp/webp так и ссылка без расширения.

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

(в колонке 5 видно ссылку без расширения, а в колонке 6 видно, что ссылки разделяются разными способами).

В поле "Номера колонок, содержащих прямые ссылки на фото" прописываются номера, через запятую. Порядок следования номеров имеет значение только для определения, каким будет главное фото товара. Если главное фото расположено в колонке 5, то нужно прописать его первым:

Если ссылка окажется "битой", плагин выдаст сообщение в Отчете (admin/uploads/errors.tmp):

Download photo fails. Row ~= 12 Url = https:/site.com/PIC/170d.jpg

(невозможно скачать фото по ссылке https:/site.com/PIC/170d.jpg. Строка - примерно 12).

Если фото по ссылке было успешно скачано, но на вкладке "Категории и наценки" не была указана папка для его хранения, плагин выдаст сообщение:

Please, set folder for photo on page 'Category and margin'  for Category 'название категории' Row ~= 12

(Создайте папку для фото и пропишите ее во вкладке "Категории и наценки" см. здесь).

3. Неполные ссылки на фото.

a) Ссылки не содержащие адреса сайта, например:

Тогда, недостающую часть ссылки следует прописать здесь:


b) Только имена файлов фото:

В таком случае, файлы фото нужно закачать на сайт в папку image/catalog/temp

без под-папок.

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

4. Парсинг фото с веб-страницы сайта-донора.

См. здесь.

5. Все фото в одной папке.

Если в прайс листе, в колонке "Фото" находится обычный текст, не содержащий ни расширений jpg/png/jpeg/gif/bmp/webp, ни слэшей, ни "http", то плагин понимает этот текст, как название папки, находящейся в image/catalog/temp

Для каждого товара - отдельная папка, в каждой папке - много фото.

Внимание.

Этот метод работает только в режиме обновления товаров.

5. Привязка фото к товару.

В прайсе листе прямо указано, где находятся фото на вашем сайте, например:

и фото реально уже лежит в этой папке.

Тогда настройка должна выглядеть так:

Внимание.

Этот пункт работает также в режиме добавления.

Фото. Парсинг

Парсинг фото отличается от парсинга текстов. Текст описания или названия товара представляет собой сплошной участок из кода веб-страницы, а фото (ссылки на фото) могут отстоять друг от друга на значительные расстояния.

Поэтому используются т.н. "ключевые слова".

Ключевое слово - это текст в коде веб-страницы, отстоящий от ссылки на фото не более, чем на 500 байт.

В качестве ключевого слова нельзя использовать часть ссылки: href, http, jpg, src... Ссылка может быть активной, не активной, полной или относительной.

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

Здесь, ключевое слово class="thumbnail" расположено перед ссылкой на фото.

В таком случае, спарсить первое фото можно следующим образом:

Номер вхождения ключевого слова class="thumbnail" - первый, а ссылка находится правее ключевого слова. Этот факт обозначается, как  >1 (правее первого вхождения ключевого слова).

Поскольку ключевое слово class="thumbnail" находится перед каждым фото на этой странице, а всего на странице 4 фото, то чтобы спарсить их все, нужно использовать такие настройки:

class="thumbnail",class="thumbnail",class="thumbnail",class="thumbnail"

>1,>2,>3,>4

Использование текстов "начала,конца" парсинга.

Фото из предыдущего примера можно было парсить по ключевым словам <li. Но тексты <li встречаются на странице очень часто - перед фото, а также и после фото.

Тексты "начала,конца" парсинга показывают плагину, какую часть страницы нужно вырезать, чтобы потом, в этой части страницы искать ключевые слова <li

В данном случае, можно использовать тексты: class="thumbnails">,</ul> (подчеркнуты красной линией)


Фото. Траблы

Здесь рассматриваются типичные проблемы, возникающие при загрузке/обновлении фото в товарах, о которых плагин сообщает в Отчете, в файле admin/uploads/errors.tmp.

Any photo not found.

Any photo not found. Row ~= 2 SKU = LGX135.ACISKW-12 Default photo expected

Плагин не нашел ни одного фото в указанных колонках прайс листа: 6,7,8:

и действительно, фото было в колонке 5

Download main photo fails.

Download main photo fails. Url: http://8bits.com.ua/cat1.jpg Row ~= 2 SKU = LGX135.ACISKW-12

1. Ссылка "битая".

Плагин не может скачать фото по ссылке http://8bits.com.ua/cat1.jpg поскольку ссылка "битая". В этом можно убедиться, если вставить ее в браузер:

2. Ссылка содержит подозрительные символы.

Например, заменитель пробела %20, который нужно заменить на пробел

http://8bits.com.ua/image%20full/cat1.jpg

или наоборот, пробел, который нужно заменить на %20 

http://8bits.com.ua/image full/cat1.jpg

Если в ссылке видно два дефиса подряд,

http://8bits.com.ua/image--full/cat1.jpg

то скорее всего, второй дефис - это символ &#45;

Плагин может исправлять ссылки налету. Для этого, нужно ему рассказать, какой символ в ссылке нужно менять, и на какой:

  • откройте файл плагина admin/model/catalog/suppler.php
  • найдите в нем текст: "заменить в ссылке на фото текст john на Sam"
  • вместо john пропишите текст, который меняете, а вместо Sam пропишите текст на какой меняете
  • снимите комментарий со строки, в которой делали исправления

Site no answer.

Row ~= 12  url = http://8bits.com.ua/cat1.jpg  Site no answer

Самая неприятная ошибка, которая случается при парсинге фото (и не только фото) говорит о том, что сайт защищается от вашего парсинга, подозревая, что вы осуществляете DDOS атаку.

Подозрения вызывает скорость, с которой плагин на вашем сайте запрашивает страницы сайта-донора. Человек не может просматривать 2-3 страницы сайта за 1 секунду. Это вызывает подозрение DDOS атаки.

Сайт-донор может забанить ваш сайт по ip, тогда придется искать другого донора или парсить из файла. Если еще не поздно, включите кнопку:

Photo has not been write.

Row ~= 12 SKU = ACISKW-12  Can not create folder: "dress", create it manually

Не хватает папки для хранения скачанного фото. Папка dress была прописана на вкладке "Категории и наценки", но не была создана.

Плагин попытался ее создать, но ему не хватило прав. Создайте папку image/catalog/example/dress руками.

Please, set folder for photo.

Please, set folder for photo on page 'Category and margin'

Плагин просит создать и прописать на вкладке "Категории и наценки" папку для фото:

это поле обязательное.

Photo not parsed.

Photo not parsed: Row ~= 12  url = -1

Заданы неверные ключевые слова для парсинга фото. В результате, с веб-страницы сайта-донора, плагин спарсил какой-то текст не похожий на ссылку. Исправьте:

Кириллическая ссылка на фото.

И фото не загружается из за кириллических символов.

В файле admin/model/catalog/suppler.php найдите текст:

Убрать комментарий если ссылка кириллическая

Временно уберите комментарий и сохраните файл:


usergio Copyright © 2025