JBPrice Advance — гибкий элемент цены

10.0/10 оценка (3 голосов)

Внимание! Этот элемент не используется начиная с версии 2.2.0. Если у вас такая версия, читайте о новой системе цен.

Как вы наверное уже знаете, в JBZoo был такой элемент, как JBPrice Advance. Это элемент цены, который позволяет:

  • Указывать скидку на товар.

  • Создавать «вариации» (модификации) цен.

  • Учитывать остатки.

  • Указывать флаги Новинка, Распродажа и Хит продаж.

  • Управлять валютами.

  • Показывать артикул товара, который можно использовать при импорте материалов.

  • Фильтровать практически по всем параметрам элемента.

  • ... и много приятных мелочей.

Далее, в статье, мы узнаем, более подробно о том, что такое JBPrice Advance и как он настраивается.

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

Настройка совместимости версийИменно поэтому мы были вынуждены добавить эту опцию совместимости.

В противном случае, у вас будут проблемы при добавлении товара в корзину или оформлении заказа.

Настройка элемента в типе материала

Перед тем, как мы начнем настраивать цену, давайте добавим ее в тип материала. Для этого зайдите в серую шестеренку и в приложение. Выберите нужный тип материала и кликните на надпись Редактировать поля. Справа, в Библиотеке добавьте элемент JBPrice Advance. Слева у вас новое поле со следующими настройками:

Настройки элемента в типе материала

1. Основная валюта — валюта, в которой по умолчанию элемент будет сохранять введенные данные (включая и импортируемые). Именно в этой валюте будет сохранена цена товара в базу данных в индекс (для поиска).

2. Дополнительные валюты — список валют, в которых можно указывать цены. Сделано для удобства, на случай, если ваш магазин имеет международный характер или «лень» конвертировать в уме.

3. Учитывать остатки — количество оставшихся товаров. Если отключено, то для каждого товара можно указать простейший вариант присутствия на складе (да/нет).

Включенная опция дает возможность указать положительное значение, 0 и бесконечность (в виде −1 -минус один). При создании заказа из этого числа отнимется купленный товар и пользователь не сможет заказать больше, чем есть на склад магазина.

4. Режим — в каком виде будет отображаться цена на сайте. Элементу доступно два основных режима — простой и расширенный. Расширенный позволит добавлять модификации и параметры к цене (об их вариациях все подробности ниже).

5. Показывать все параметры — позволяет включить/отключить вывод неиспользованных опций. По желанию можно добавить текстовое поле через JavaScript.

6. Редактировать доп. поля — настройки расширенного режима. Если вы используете этот режим, то в качестве дополнительных параметров можно выбрать поля из этого же типа материала. В этом случае не всегда логично использовать эти поля сразу и для параметров цены и для свойства материала. Опция скроет выбранные элементы из формы редактирования.

7. Дополнительные параметры — поля, которые используют только для расширенного режима. Элементы, с жестким списком опций (radio, checkbox, select), будут использованы в качестве дополнительных параметров цены.

8. Текстовое описание — произвольное текстовое описание для цены. Так же это описание можно использовать как параметр заказа наравне с предыдущими тремя.

Внимание! После любых изменений в настройках желательно вручную сделать переиндексацию сайта. Обычно индексация автоматическая (инкрементальная) при сохранении материала, но в данном случае настройки не могут изменить данные для всего сайта по одной простой причине — это будет очень долго и скорее всего процесс не уложиться в ресурсы вашего хостинга.

В противном случае, фильтр может искать не правильно.

Редактирование элемента JBPrice Advance в материале

Набор полей, который вы видите при редактировании цены, зависит от многих настроек.

На картинке показан вариант с 2-мя вариациями и полным набором опций.

Основные данные о товаре

1. Базовая цена — значение стоимости по умолчанию. Играет роль базовой. Относительно её можно варьировать остальные цены товара (вариации). По умолчанию будет выбрана валюта, которая указана в настройках элемента. Также можно выбрать валюты из списка.

2. Общая скидка/наценка — дополнительное отклонение для всех цен товара.

Настройки элемента в материале

  • Скидка. Если в этом поле указать отрицательное значение, то оно отнимется от рассчитанной цены. Вы можете указать скидку в процентах или определенной валюте. Скидка автоматически добавляет флаг SALE.
  • Наценка. Добавится указанное значение к цене товара. Число должно быть положительное. Если указать 0, то опция не используется.

3. Остаток — Если включена опция учета остатков, то вам будет доступно текстовое поле для ввода точного числа товаров на складе. Вот некоторые значения:

  • -1 (минус один) — товар считается бесконечным, т.е. его можно заказывать бесконечно в бесконечных объемах.

  • 0 (ноль) — товар нельзя заказать, т.к. он отсутствует.

  • 10 (любое положительное значение) — точное число. При заказе этого товара остаток будет отниматься до нуля. Заказать более чем установленный лимит — не получится.

4. Артикул (он же серийный номер, уникальное название товара, псевдоним, идентификатор и т.д.) — значение, которое обычно используется во внешней базе данных магазина для работы с товарами (например, 1С). По введенному значению можно будет привязывать импорт и экспорт товаров.

5. Описание — произвольное текстовое описание. Будет отображаться как серая строчка рядом с ценником.

6. Новинка — флаг, указывающий, что текущий товар является новинкой. Опция дает возможность поиска товара по этому признаку и добавляет отметку NEW в шаблоне.

Данные для модификаций товара

7. Артикул — дополнительный артикул текущего варианта. По умолчанию равен значению базового.

8. Цена — опция, которая позволяет задать особую стоимость для текущей модификации товара. Значение может быть указано разными способами:

  • 50rub — точное значение цены в рублях.

  • +50rub или +50% — добавить 50 рублей (или увеличит на 50%) к базовой цене. Валюта конвертируется автоматически, т.е. можно добавлять даже доллары к евро.

  • -50rub или -50% — отнимет от базовой цены 50 рублей (или уменьшает на 50%).

  • 0rub или 0% — бесплатный товар.

9. Остаток для вариации — указывается по тому же принципу, что поле их базовых настроек.

10. Параметры для текущего товара — уникальная комбинация параметров.

Вариации цен

Также можно назвать их модификации, варианты, цены с параметрами.

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

Допустим, наш магазин продает сотовые телефоны.

  • Каждая модель телефона имеет два важных параметра — объем памяти и цвет корпуса.

  • Цвет не меняет цены телефона, но при покупке пользователю он не менее важен, чем объем памяти.

  • Память — это дискретное значение, т.е. имеет точный список (2 Гб, 4 Гб, 8 Гб, 16 Гб, 32 Гб и т.д.)

  • Название цветов практически произвольное и их сложно будет собрать в точный список.

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

Вариации ценНастройте элемент как показано на скриншоте

Цены нашего телефона в панели управления будут выглядеть следующим образом

Пример настройки вариантовТ.е. обычный вариант — это 1 Гб с белым корпусом

Если память увеличивается до 2 Гб, то цена растет на 500 рублей, если 4 Гб, то на 2000 рублей.

При этом нет зависимости цены от цвета.

Если вы смотрели внимательно, то заметили что на эту модель телефона идет скидка в 20% и это новинка.

 

Пример отображения элемента на сайте

Таким образом, конечная цена на синий вариант с 4 Гб будет выглядеть следующим образом.

(10000 + 2000) — 20% = 9600 рублей.

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

Любые другие модификации товара будут доступны по базовой цене.

Важные замечания к системе вариаций цен

Не смотря на большое количество настроек и их гибкость, стоит понимать что элемент цены ограничен в своей функциональности.

Как видно из примера выше — чтобы перебрать 5 цветов и 6 вариантов и для каждого указать собственную цену нужно добавить аж 30 модификаций. Это не удобно, особенно если магазин наполняется вручную.

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

Но если вам все же нужно в одном материале уместить все возможные вариации, то:

  • Хорошенько подумайте, на верном ли вы пути. Возможно проще будет разбить этот товар на несколько материалов в панели управления. Например, как в случае с телефонами, отличие по памяти — это разные товары магазина, а цвет — это дополнительный параметр цены (или наоборот).

  • Возможно вам подойдет вариант с объединением нескольких материалов в один товар, используя стандартный элемент Related Item. Автоматически его наполнить можно с помощью импорта.

  • Для наполнения рекомендуем использовать импорт.

К сожалению, у JBPrice Advance нет нативной возможности наполнить цены так, чтобы модификация срабатывала для всех опций сразу без перебора. Например, не получится одной строчкой указать, что любой телефон с памятью 64 Гб имеет наценку +4000 рублей вне зависимости от других параметров. 

Сортировка по цене для категории

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

Она происходит на уровне SQL запросов в таблицу индекса Zoo (не JBZoo). Этот индекс сохраняет данные только в текстовом формате. Именно поэтому числа сортируются не всегда подходящим образом — база данных их воспринимает как текст.

Сортировка элемента по алфавитуНо тем не менее, есть способ улучшить текущую ситуацию. Для этого можно воспользоваться указанной опцией сортировать по алфавиту. Это изменит порядок для некоторых типов данных. Зачастую он один в один работает как нужно.

Настройка фильтра по ценам

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

Настройка фильтра по ценам

1. Учитывать значение цены — индекс, который сохраняет сразу оба значения, с учетом и без учета скидки. Вы можете выбрать, по каким именно значениям проводить поиск.

2. Тип цены — по какому типу стоимости товара искать (базовой или дополнительной). В редких случаях легче искать только по базовой, так как среди вариаций может быть сильный разброс.

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

4. Автоматически установить мин./макс — максимальное и минимальное значения для слайдера выбираются автоматически из индекса. Опция учтет валюту и типы цен из настроек фильтра.

JBPrice Advance, Цена, Элементы

У меня остались вопросы, где я могу их задать?

Вы можете обратиться на наш специальный форум техподдержки JBZoo. Если у вас нет активного аккаунта со знаком «плюс» в тарифном плане, то вы можете задать свой вопрос в одном из этих разделов или на любой из наших контактов. Форум специально предназначен для JBZoo, приоритет и скорость ответа там выше.