Основная проблема для начинающего frontend-разработчика в Hikashop - это правильное отображение формата цены за единицу товара в карточке товара. По умолчанию используется элемент - " за единицу ".
ВАРИАНТ 1 (самый простой)
Если на сайте продается однотипный товар, который использует простую систему единиц (за штуку, за метр, за единицу и т.д.) , т.е. весь товар можно посчитать по-штучно (метрами, единицами, коробками и т.д.), то проблема решается довольно просто. Текст «за единицу» можно редактировать в языковом файле. Вы можете редактировать языковой файл на странице конфигурации на вкладке Языки. Текст «за единицу» должен быть в верхней части файла перевода. Чтобы изменить систему единиц, надо зайти в файл Russian (ru-Ru) - нажать на "карандаш" (изменить) и найти строку с переводом PER_UNIT=" за шт."
Заменяем слова "за единицу" необходимым для Вас значением единицы измерения, например, "за шт." и нажимаем вверху кнопку "Сохранить" . Всё - изменения приняты, теперь все товары имеют одну систему единиц - в каторчке товара будет цена - "300 руб за шт." В частном случае, можно убрать вообще единицу измерения товара - поставить null в кавычки - " ".
ВАРИАНТ 2 (основной)
Но, как правило, на сайте одновременно могут продаваться не только штучные товары. Товары могут измеряться при продаже в метрах, в литрах, в килограммах, в коробках и т.п. - тогда ВАРИАНТ 1 нам не подойдет.
Можно ли самостоятельно изменить слово «за единицу» в зависимости от размера единицы для конкретного продукта. Например, «за метр» или «за пакет»? Да , в Hikashop это возможно, но новичку сделать это, возможно, будет затруднительно.
Отображение цены в Hikashop обрабатывается файлом PHP. Вы можете отредактировать это представление так, чтобы оно отображалось в соответствии с ценой за единицу, но для этого вам нужно немного знать PHP. На форуме Hikashop для русскоязычного пользователя даются корявые, витиеватые ответы, куда посмотреть и что сделать - при этом некоторые важные ссылки не открываются при попытке зайти с гуглом переводчиком.
Рекомендации форума Hikashop ---->
Пройти по пути конфигурация --> шаблоны --> product / listing_price.php , найти в стр. 191 текст:
echo '<span class="hikashop_product_price_per_unit">'.JText::_('PER_UNIT').'</span>';
Заменить верхний текст на следующий (создает пользовательские поля при выборе единицы измерения - метод продаж salemethod (название может быть любое, но на аглийском)):
if(isset($this->element->main)) echo JText::_($this->element->main->salemethod);
elseif(isset($this->row)) echo JText::_($this->row->salemethod);
else echo JText::_($this->element->salemethod);
Создать новый метод samethod по пути конфигурация ---> настройки отображения ---> дополнительные поля, нажав кнопку Создать
Заполняем поля в блоке основная информация: при этом алиас метода должен совпадать с замененными строками в файле listing_price.php, сам метод на русском языке звучать может по-разному ---> публикуем и сохраняем файл
Появлются новые блоки - заполняем блок значения - создаем на английском языке требуемое количество значений единиц измерения:
в Hikashop переменная PER_UNIT создана по умолчанию, её не трогаем. Создаем свои новые единицы измерения товара, например PER_PACK и PER_METR
Далее можно проставить в блоке настройки отображения, где появятся наши дополнительные поля:
Сохраняем файл.
И чтобы закончить всю процедуру появления выпадающего списка размерностей, вам просто нужно создать новый перевод, в Display -> Languages, отредактировать ваш языковой файл, добавив в область переопределения 2 строчки:
PER_PACK = "за бухту"
PER_METR = "за метр"
После всех этих манипуляций, описанных на форуме Hikashop и проверенных мною на своем шаблоне Helium от Rockettheme, могу утверждать, что всё работает.
Теперь при заполнении карточки товара появляется блок с предложением выбрать размерность товара:
А на витрине товара появляются дополнительно цена / единицу измерения и метод продаж (характеристики)
ВАРИАНТ 3 (особенности)
Как Вы заметили, на картинке сверху появился новый атрибут РУБ/баллон ( РУБ / КГ ). Это особенность заложена в Hikashop при перевода веса при продаже товара в малых упаковках. В идеале, конечно, должна используется размерность РУБ. / УП. и т.п., но это дополнительные модификации файлов PHP, а разработчики HIKASHOP пока не стали заморачиваться этим, тем более это его "хлеб" при поддержкой поддержке ПО. Надо отметить, что недостающие размерности можно создать самостоятельно, добавив свои к существующим, даже на русском языке.
Для этого достаточно по пути конфигурация ---> дополнительно в разделе расширенные настроки дописать через запятую свои размерности
Помимо этого часто возникает необходимость отобразить в карточке товара нужный формат цены - заменить слова RUB на РУБ., убрать копейки - округлить цену, красиво отобразить саму цену (использовать свойство background).
Заменить латиницу (RUB) на киррилицу (РУБ) можно в настройках Hikashop : система --> денежные единицы --> формат --> заменить % i на % n
Убрать лишние нули в цене товара (в т.ч. в карточке товара) - округлить до целого можно там же: система --> денежные единицы --> местное значение дробной части --> заменить показатель 2 на 0
Сам формат цены безусловно можно "украсить" - для этого существует множество способов - и здесь надо поработать с кодом css и форматом отображения media для различных экранов
например, добавить в стилевом файле hikashop - style_style_blue.css - следующие строчки (приведен не весь код)
Помимо карточки товара существует так называемое отображение товара в категории (бренде) - когда при нажатиии той или иной категории Hikashop по умолчанию отбирает необходимые товары из выбранного критерия.
Здесь тоже можно навести "красоту"
Окончательный вариант карточки товара в категории может выглядеть вполне симпотично (см картинку ниже) :
Для этого в карточке убрано количество единиц товара на складе (свойство display:none), но с помощью php - product/add_to_cart_ajax.php - добавлен span с условиями отображения (добавлен class)
При этом для удобства тег <img> вставлен в "лоб" - через прямую ссылку