Описание товара. Парсинг
Прежде всего, нужно определить, в какой кодировке сверстан сайт-донор:
И выставить эту кодировку в форме поставщика:
Пример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 оказывается только нужные фото.
Всю подготовку следует делать на ПК.
- Скачайте папку image на ПК и не удаляйте ее до конца работы
- Создайте папку image1 и скопируйте в нее все содержимое папки image
- Очистите папку image1/catalog от файлов с помощью консольной команды: del /s /q image1/catalog (восстановите удаленные файлы, не имеющие отношения к товарам: иконок, языков, категорий...)
- Закачайте папку image1 в корень сайта (рядом с папкой image)
- Запустите в работу инструмент "Удалить из image неиспользуемые фото"
- По окончанию работы инструмента, переименуйте папку image в image2, а папку image1 - в image
- Очистите папку image/cache/catalog
- Зайдите на сайт, убедитесь, что фото у товаров не пропали
- Удалите папку 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
то скорее всего, второй дефис - это символ -
Плагин может исправлять ссылки налету. Для этого, нужно ему рассказать, какой символ в ссылке нужно менять, и на какой:
- откройте файл плагина 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 найдите текст:
Убрать комментарий если ссылка кириллическая
Временно уберите комментарий и сохраните файл: