С помощью данного модуля, вы можете формировать «xls»(excel) файлы для импорта-экспорта товаров или же для создания прайс-листов вашего интернет магазина. Модуль имеет гибкую настройку, что поможет вам выбрать размер шрифта, цвет, стиль текста, нужные атрибуты товаров, всё это позволит сделать ваш прайс уникальным.

Модуль прайс-листов

 

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

Модуль прайс-листов Модуль прайс-листов Модуль прайс-листов

Данный модуль можно использовать для импорта товаров из «xls»(excel), для этого достаточно создать настройку и указать какая колонка за что отвечает + проставить соответствия, что бы избежать повторения товаром. После чего перейти на страницу импорта, выбрать нудный файл на вашем компьютере и выгрузить товары в магазин.

Модуль прайс-листов

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

Где $distinct  – это переменная отвечающая за включение, отключение повторений продуктов, если при выгрузке установлен вид  списком, то она автоматически включается;

$attributes  – список добавленных атрибутов;

$categories  – выбранные категории для выгрузки;

$price_products  – выбранные товары для выгрузки;

$product_distinct  – массив содержащий товары (исключает повторения).

В итоге получилась такая логика, что если в настройках включен вывод названия категории, то прайс создается блоками, включая в каждый блок – название категории, описание категории(если включено), строку заголовка, строки с товарами в данной категории и пустую строку как разделитель между блоками. Если же название категории в настройках выключено, то создается строка с заголовками для каждой колонки и автоматически включается функция убирающая повторения продуктов, что бы когда товар присутствует в нескольких категориях, он не выводился несколько раз в прайсе в виде списка.

Так же возникла проблема при импорте товаров, а именно как определить, что данный товар уже существует и его нужно обновить или же нужно создать новый товар. Для этого в атрибуты был добавлен параметр «соответствия», где можно выбрать, по какому значению сравнивать продукт с пришедшего прайс-листа.  Фактически в функцию импорта приходит массив состоящий из строк(товаров) и колонок(их значений) и с помощью настройки прайс-листа, нужно задать какая колонка, за что отвечает и является ли она «соответствием».

Для проверки товара по соответствиям был создан код:

Где мы определяем какая колонка чему соответствует и является ли она «соответствием», после чего для каждого товара мы записываем соответствие и вызываем функцию «get_products_by_conformity». В данной функции мы составляем запрос к БД и возвращаем результат:

Где $conformitys  – это массив соответствий для определённого продукта;

$types – массив допустимых соответствий и перевод их значений в переменную запроса.

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