CNC Global
Предыстория
Описание этапов работы
Для наполнения сайта, необходимо было написать парсер прайс-листа поставщика. Для этой цели был нанят программист со стороны, специализирующийся по написанию парсеров под вукомерц.
Пока писался и настраивался парсер, проходила работа по верстке сайта.
Парсер позволяет загружать новые товары на сайт, а также обновлять категории и цены в уже загруженных товарах.
На первых парах, никаких трудностей в разработке сайте не предвиделось. Но все бывает так, что даже на самом простом сайте можно столкнуться со сложностями в функционале.
Так произошло и с этим проектом…
Обычно, на всех сайтах я устанавливаю плагин аякс поиска по товарам Advanced Woo Search, но после того, как на сайт были загружены некоторые товары, выяснилось, что данный плагин непонятно как сортирует результаты поиска. В итоге, при точном названии товара в поиске, в выпадающей области поля поиска с результатами, некоторые товары не выводились. Поэтому, было принято решение искать альтернативу этому плагину. В итоге была найдена замена в виде FiboSearch — AJAX Search for WooCommerce (плагин показал себя с хорошей стороны — все возможные комбинации поиска выдавались в первом результате поиска).
Следующим этапом было создание так называемого комплексного товара. Для этого можно было бы написать свой функционал, но это требует больших затрат по времени написания, тестирования и отладки этого функционала, поэтому было принято решение искать и использовать готовое решение в виде плагина. Пересмотрев десятки всевозможных плагинов, было несколько вариантов решения вопроса комплексного товара.
- При текущей базе товаров и комплектующих, создавать новый сборный/комплектный товар.
- При текущей базе товаров и комплектующих, создавать новый сборный/комплектный товар.
[text utm_source default:get]
[text utm_medium default:get]
[text utm_campaign default:get]
[text utm_term default:get]
[text utm_content default:get]
Поиски плагинов для данного функционала привели меня к плагину WPC Frequently Bought Together for WooCommerce (Купить вместе). Но, так как на сайте используется вариативность товаров по цветам, размерам и со стеклом/без стекла, то было принято решение о покупке данного плагина (в лайт версии нет поддержки работы с вариативными товарами).
Но после установки и настройки плагина, выяснилось что в этом плагине есть одна недоработка, из-за которой нельзя было выводить список комплектующих в том месте, где это предусмотрено по макету (место вывода комплектующих, как показывает практика, по пониманию посетителей сайтов как выбирать комплектующие после выбора основного товара). Написав в техподдержку плагина, я получил ответ с рекомендациями о том, как перенастроить текущий плагин, установить дополнительный бесплатный плагин от этих же разработчиков, чтобы все выводилось в нужно мне месте. Последовав этим рекомендациям, я все перенастроил и вывел всю структуру карточки товара согласно макету.
Но, как оказалось не все было так просто. Практически все товары содержат однотипные комплектующие, но должна выбираться какая-та базовая комплектация. В настройках плагина можно настроить выбрать все либо ничего. Поэтому был написан скрипт, при помощи которого, при выборе цвета основного товара, он (скрипт) выбирает такие же цвета в комплектующих и отмечает такие комплектующие как возможные для комплекта.
После того, как все товары были загружены на сайт, созданы пары товар+комплектующие, выяснилось что очень много товаров имеют внутри себя огромные списки комплектующих из-за похожих/однотипных цветов. В связи с этим, серверу требуется больше времени на получение данных о таких комплектующих. Обычный виртуальный сервер не справлялся с такими нагрузками, поэтому было принято решение о покупке VPS. В качестве хостинг-провайдера выбран проверенный годами — Макхост.