Нововведения в сравнении товаров в Shop-Script 8.21

В Shop-Script версии 8.21 (предварительная версия на GitHub) мы изменили логику сравнения товаров на витрине. Это связано с тем, что характеристики товаров можно заполнять по-разному:

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

В этом описании учитываются возможности нового редактора товара.

Как сравнение товаров работало раньше

Если в Shop-Script до версии 8.21 значения характеристик были заполнены только в свойствах модификаций товара, а в общих свойствах товара они были не заполнены, то на странице сравнения на витрине пользователи не видели значения таких характеристик. Т. е. получали неполную информацию о товарах при сравнении.

Что изменилось

В Shop-Script версии 8.21 мы добавили поддержку двух режимов сравнения:

  • обобщённое сравнение товаров;
  • сравнение выбранных модификаций товаров.

Обобщённое сравнение

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

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

Сравнение выбранных модификаций

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

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

Что нужно сделать

После обновления Shop-Script до версии 8.21 будет по умолчанию работать обобщённый режим сравнения товаров.

Если вы хотите, чтобы ваша тема дизайна поддерживала режим сравнения модификаций товаров, её нужно для этого доработать. Мы опубликовали отдельную ветку в репозитории Webasyst, чтобы вам было удобно изучить изменения в коде на примере темы дизайна «Гипермаркет». Для просмотра изменений используйте коммит, добавляющий режим сравнения модификаций товаров.

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

Программная логика сравнения модификаций товаров

На примере темы дизайна «Гипермаркет».

До версии Shop-Script 8.21 тема дизайна показывала значения характеристик только из массива $products[id].features — в нём раньше были доступны только общие характеристики товара. Начиная с версии 8.21 в этом массиве содержатся и общие характеристики товара, и характеристики всех его модификаций. Это нужно для поддержки обобщённого сравнения товаров по умолчанию.

Чтобы добавить поддержку сравнения модификаций товаров, нужно вместе с массивом $products[id].features использовать также характеристики отдельных модификаций из массива $products[id].skus[sku_id].features. В верхней части таблицы посетителю магазина доступен выбор модификации товара. Когда посетитель выбирает модификацию, в таблице сравнения становятся видимыми соответствующие ей ячейки, а ячейки со свойствами остальных модификаций скрываются. Значение для каждой ячейки с характеристикой извлекается из массива $products[id].skus[sku_id].features. Если значения там нет (характеристика не заполнена в свойствах модификации), то используется значение по умолчанию из общего массива $products[id].features.

Информацию о том, разрешено ли заполнение значений характеристики в свойствах артикулов, можно получить из свойств характеристики в массиве $features в значениях с ключами 'available_for_sku'.

Пока нет ответов. Ответьте на этот вопрос первым!

    Добавить ответ

    Чтобы добавить комментарий, зарегистрируйтесь или войдите