PHPShop
  • 🟠PHPShoр: прибыльные магазины для малого бизнеса
  • С чего начать?
    • Быстрый старт
    • ✨Помощь AI
    • SEO возможности
    • Ведение склада
    • Pro модули
    • Виды скидок
    • Конфигурации
    • Цифровые товары
  • Установка, обновление
    • Установка на хостинг
    • Установка на компьютер
    • После покупки Лицензии
    • Техническая поддержка
    • Обновление PHPShop
    • 📦Коробочная версия
    • 🖥️Аренда на своем хостинге
    • ☁️Аренда в облаке
  • ⤵️Наполнение базы
    • Переезд и миграция
    • Импорт / Экспорт:
      • Excel
      • YML
      • RSS
      • CommerceML
      • Сторонние XML
      • Сторонние парсеры
        • Пример загрузки товаров с сайта Sima-land.ru
      • Парсер PriceLoader
    • Импорт по расписанию
    • Интерактивный .xls прайс с корзиной
    • Пакетная загрузка фото
    • Пакетное редактирование базы
    • Бекап и очистка базы
  • 🌟Синхронизация Pro
    • 🟠1С
      • Версии и конфигурации 1С
      • Встроенный типовой обмен CommerceML (для новых версий 1С)
      • Тестирование связи с 1С на демо-версии
      • Установка и активация внешнего обработчика 1С (для старых версий 1С)
      • Инструкции по внешнему обработчику 1С (для старых версий 1С)
      • Видео-уроки по внешнему обработчику 1С (для старых версий 1С)
      • Дополнительные обработчики (для старых версий 1С)
        • Редактор описаний в 1С
        • Импорт прайс-листов в 1С
        • Загрузка изображений в 1С
    • 🔵МойСклад
    • 🔵OZON
    • 🟣Wildberries
    • 🟢Мегамаркет
    • ⚫Яндекс.Маркет
    • 🟢Avito
    • 🔵Вконтакте
  • ⤴️Выгрузка товаров
    • Яндекс и Google
  • 📦Товары
    • Ручное добавление каталогов, товаров
    • Работа с изображениями
    • Характеристики, фильтры
    • Подтипы
    • Мультисклад
    • Витрины
    • Поиск
  • 📈Заказы
    • Работа с заказами
    • Способы оплаты
      • Наличная оплата
      • Счет в банк
      • Платежные системы
      • Скидки от вида оплаты
    • Настройка доставок
    • Telegram, VK, SMS, PUSH
    • Ценообразование
  • 🌟Бесплатные модули
    • 100+ бесплатных модулей:
    • ⭐Pro модули
    • Дизайн
      • Stiker - стикер
      • Кнопки
      • Count Cat
      • Filemanager
      • Пакетная обработка фото на сервере (Генератор превью картинок)
      • Mobile
      • Панорама 360°
      • Snow
    • SEO
      • SeoUrl
      • Seo Meta Новости
      • Карта сайта SiteMap
      • Карта сайта SiteMap Pro
    • Доставки
      • Почта России
      • Saferoute Widget
      • Boxberry Widget
      • Яндекс Доставка
      • CDEK Widget
      • Калькулятор доставки
      • Нова пошта
      • Бланки Почты России
      • Виджет доставок
    • Чаты и звонки
      • Cleversite
      • Мультиязычность Google Translate
      • Envybox
      • JivoSite
      • Pozvonim
      • Обратный звонок
      • Verbox
    • CRM
      • МойСклад
      • 📊Bitrix24
      • 📈retailCRM
      • 🔊Рекламные кампании
      • Unisender
    • Маркетплейсы
      • 🟣WB Partners
      • 🔵OZON Seller
      • ⚫Яндекс.Маркет
      • 🟢Мегамаркет
      • 🟢Авито
      • 🔵VK
      • Модуль Маркетплейсы: Яндекс.Маркет, СберМегаМаркет AliExpress, Google Merchant
    • Платежные системы
      • Банки
        • Альфа-банк
        • ВТБ
        • Банк Авангард
        • МодульБанк
        • Т-Банк
      • Кассы
        • Онлайн касса Атол
        • Печка54
        • CloudKassir
        • Robokassa
        • Модулькасса
      • Платежные системы агрегаторы
        • ЮKassa
        • ЮMoney
        • IntellectMoney
        • Mandarin
        • 2can&ibox
        • NovaPay
        • AcquiroPay
        • Idram
        • Assist
        • CloudPayments
        • Easypay
        • PayKeeper
        • Fondy
        • LiqPay
        • PayOnline
        • PayPal
        • Uniteller
      • Платежные шлюзы
        • PayAnyWay (Монета) платежный шлюз
        • PayMaster
        • Interkassa
        • Platron
        • Webmoney
        • Счет в банк
    • Кредитование
      • Купи в рассрочку Долями
      • Покупка в кредит от Alfabank Credit
      • Купить в кредит Почта Банк
      • Купи в кредит Т-Банк
    • Яндекс
      • Яндекс.Маркет
      • Яндекс.Карта
    • Продажи
      • Подарок - товар с 0₽ в корзине
      • Оптовые акции - скидки от количества товара в заказе
      • Хиты продаж
      • Свойства товаров
      • Комплектующие
      • Заказ в 1 клик
      • Sort Selection - сквозной фильтр на главной
      • Товар дня
      • Группы товаров - продажа комплектов
      • Промокоды
      • Услуги сборки, монтажа в карточке товара
      • Product Similar похожие товары по характеристикам
      • Product List похожие товары из каталога
      • Product Last View - просмотренные товары
      • Sort Brand - подборки по характеристикам
      • Sort Product - товары по характеристикам
      • Visual Cart - брошенные корзины
      • Партнерская программа
    • Разработчикам
      • Умный поиск
      • Adm Log
      • WebHooks
      • Form Generator
      • История заказов
      • GeoIP
      • Замок
      • Product Option
      • Debug
      • Задачи
      • Защитник файлов Guard
  • 👫Пользователи
    • Покупатели
    • Статусы и скидки
    • Бонусы
    • Авторизация и регистрация
  • 👤Администраторы
    • Администраторы
    • Восстановление пароля
    • Журнал авторизации
  • 🎯Маркетинг
    • Канбан доска
    • Промоакции
    • Почтовые рассылки
    • Баннеры и pop-up
  • 💻Веб-сайт
    • Страницы
    • Отзывы
    • Новости
    • Пиксель, счетчики
  • ⚒️Настройки
    • Основные настройки
    • Реквизиты
    • Обмен данными
    • SEO настройки
    • Валюты
    • Изображения
    • Витрины
    • Склады
    • Диалоги и чаты
    • Интеграция с сервисами
    • Быстродействие (кеширование)
    • Интеграция с Yandex Cloud
    • Локализация
    • Обслуживание
  • 🎨Дизайн
    • Настройка шаблона
    • HTML Верстальщику
    • 🔦Шпаргалка по шаблонам
  • 👨‍💻API
    • PHP API
    • JSON API
    • Создание модулей - правка API через файлы модулей
    • Создание хуков - правка API через функции
    • Создание дизайн-хуков - правка API через файлы дизайна
    • База дизайн-хуков
      • Характеристики и новости
      • Заказы и личный кабинет
      • Каталоги и прайс-лист
      • Поиск и товары
      • Корзина и элементы
    • Создание 1С-хуков
      • API синхронизации интернет-магазина с 1С
      • Изменение API синхронизации с 1С
  • EasyControl
    • Установка
    • PriceLoader
    • Monitor
    • Updater
Powered by GitBook
On this page
  • Поиск
  • Изменение сетки вывода товара
  • Товары
  • Вывод хлебных крошек в подробном описании товара под ценой
  • Добавление в Title подробного описания артикул товара
  • Изменение количества товаров на странице спецпредложений
  • Форматирование цены
  • Вывод заданной характеристики в закладке
  • Изменение сортировки товара по дате в спецпредложениях
  • Дописывание в имя товара данных из значений характеристик
  • Добавление шестого товара в ячейке каталога
  • Снятие лимита на вывод всех товаров
  • Добавление автоматического переноса строк в карточку подробного описания товара
  • Замена информации о наличии товара на складе
  • Добавление второй цены
  • Добавление второй цены в другой валюте

Was this helpful?

  1. API
  2. База дизайн-хуков

Поиск и товары

Last updated 1 month ago

Was this helpful?

Если в инструкции указана необходимость создания файла, а в вашем шаблоне уже присутствует такой файл, то файл дополняется по правилам составления . Для быстрого включения/выключения дизайн-хука нужно поставить знак решетки # перед его определением в config.ini, пример:

  • #phpshopprice="php/hook/price.hook.php"; - выключен

  • phpshopprice="php/hook/price.hook.php"; - включен

или поставить знак решетки # в массиве перехвата $addHandler в файле хука, пример:

  • $addHandler=array(''''#'''product'=>'product_pricecore_hook'); - выключен

  • $addHandler=array('product'=>'product_pricecore_hook'); - включен

Ключ секции [hook] должен быть уникален, если требуется создать новый хук на тот же класс(ключ), то требуется объединить хуки по правилам составления дизайн-хуков.

Поиск

Изменение сетки вывода товара

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

  1. Создать файл /phpshop/templates/имя шаблона/php/hook/phpshopsearch.hook.php с содержанием:

<?php
/**
 * Изменение сетки товаров в поиске
 */
function template_category_select($obj,$row,$rout) {
    
    // Корректировка количества товара на странице поиска
    $obj->num_row=10;
    
    // Задаем сетку
    $obj->cell=4;
}

$addHandler=array
   (
       'category_select' => 'template_category_select'
   );

  1. Создать файл /phpshop/templates/имя шаблона/php/inc/config.ini с содержанием:

[hook]
phpshopsearch="php/hook/phpshopsearch.hook.php";

Товары

Вывод хлебных крошек в подробном описании товара под ценой

  1. Создать файл /phpshop/templates/имя шаблона/php/hook/uid.hook.php с содержанием:

<?php
/**
 * Хук хлебных крошек 
 */
function uid_bread_crumbs_hook($obj, $row, $rout) {

     if($rout == 'MIDDLE'){

     // Навигация хлебных крошек с сылками
     $obj->navigation($obj->category, $row['name']);

     // Имя каталога
     $obj->set('catalogCategory', $obj->category_name);

     // ID категории
     $obj->set('pcatalogId', $obj->category);
     }   
}

$addHandler = array
    (
    'UID' => 'uid_bread_crumbs_hook'
);
  1. Создать файл /phpshop/templates/имя шаблона/php/inc/config.ini с содержанием:

[hook]
phpshopshop="php/hook/uid.hook.php";
  1. Добавить @breadCrumbs@, @catalogCategory@ и @pcatalogId@ в шаблон product/main_product_forma_full.tpl

Добавление в Title подробного описания артикул товара

  1. Создать файл /phpshop/templates/имя шаблона/php/hook/title.hook.php с содержанием:

<?php
/**
 * Хук замены title
 */
function set_meta_hook($obj, $row) {

     $obj->doLoadFunction('PHPShopShop', 'set_meta', $row);
     $obj->title=str_replace($row['name'],$row['name'].' '.$row['uid'],$obj->title);
     return true;
        
}

$addHandler = array
    (
    'set_meta' => 'set_meta_hook'
);
  1. Создать файл /phpshop/templates/имя шаблона/php/inc/config.ini с содержанием:

[hook]
phpshopshopcore="php/hook/title.hook.php";

Изменение количества товаров на странице спецпредложений

Требуется изменить количество товаров на странице спецпредложений /spec/.

  1. Создать файл /phpshop/templates/имя шаблона/php/hook/spec.hook.php с содержанием:

<?php
/**
 * Изменение сетки товаров в спецпредложениях
 */
function index_speccore_hook($obj,$row,$rout) {

    if($rout == 'START')
    $obj->cell=4;
}

$addHandler=array
        (
        'index'=>'index_speccore_hook',
);
  1. Создать файл /phpshop/templates/имя шаблона/php/inc/config.ini с содержанием:

 [hook]
phpshopspec="php/hook/spec.hook.php";

Форматирование цены

Требуется отформатировать цену у товара для разделение тысяч (10 200 руб.)

  1. Создать файл /phpshop/templates/имя шаблона/php/hook/priceformat.hook.php с содержанием:

<?php
/**
* Форматирование цены
*/
function price_format_hook($obj, $row, $newprice) {

    // Если есть новая цена
    if (empty($newprice))
        $price = $row['price'];
    else
        $price = $row['price_n'];

    $price = number_format(PHPShopProductFunction::GetPriceValuta($row['id'], array($price, $row['price2'], $row['price3'], $row['price4'], $row['price5']), $row['baseinputvaluta']), 2, '.', ' ');
    return $price;
}

$addHandler=array
        (
        'price'=>'price_format_hook',
);
  1. Создать файл /phpshop/templates/имя шаблона/php/inc/config.ini с содержанием:

[hook]
phpshopshopcore="php/hook/priceformat.hook.php";

Форматирование цены элементов новинок и спецпредложений произведем через дизайн хук класса PHPShopProductElements.

  1. Создать файл /phpshop/templates/имя шаблона/php/hook/priceformatelement.hook.php с содержанием:

<?php
/**
* Форматирование цены
*/
function price_formatelement_hook($obj, $row, $newprice) {

    // Если есть новая цена
    if (empty($newprice))
        $price = $row['price'];
    else
        $price = $row['price_n'];

    $price = number_format(PHPShopProductFunction::GetPriceValuta($row['id'], array($price, $row['price2'], $row['price3'], $row['price4'], $row['price5']), $row['baseinputvaluta']), 2, '.', ' ');
    return $price;
}

$addHandler=array
        (
        'price'=>'price_formatelement_hook',
);
  1. Создать файл /phpshop/templates/имя шаблона/php/inc/config.ini с содержанием:

[hook]
phpshopproductelements="php/hook/priceformatelement.hook.php";

Вывод заданной характеристики в закладке

Требуется в подробном описании товара создать дополнительную метку вывода характеристики "Тип загрузки". За вывод подробного описания товара отвечает шаблон /phpshop/templates/имя_шаблона/product/main_product_forma_full.tpl. Для добавления новой закладки следует добавить в него переменную @addseamplysort@. Переменную вывода значение характеристики @addseamplysort@ зададим через дизайн хук класса PHPShopShop.

  1. Создать файл /phpshop/templates/имя шаблона/php/hook/sort.hook.php с содержанием:

<?php
/**
* Вывод значения характеристики
*/
function UID_addseamplysort_hook($obj,$row,$rout) {

    if($rout == 'MIDDLE'){
    PHPShopObj::loadClass('sort');
    $search= new PHPShopSortSearch('Тип загрузки'); 
    $obj->set('addseamplysort',$search->search(unserialize($row['vendor_array'])));
    }
}

$addHandler=array
        (
        'UID'=>'UID_addseamplysort_hook',
);

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

  1. Создать файл /phpshop/templates/имя шаблона/php/inc/config.ini с содержанием:

[hook]
phpshopshop="php/hook/sort.hook.php";

Изменение сортировки товара по дате в спецпредложениях

Требуется изменить сортировку по умолчанию в каталоге товаров на странице /spec/ на вывод товаров в убывающем порядке на основе параметра даты создания/изменения товара.

  1. Создать файл /phpshop/templates/имя шаблона/php/hook/spec.hook.php с содержанием:

<?php
/**
 * Изменение сортировки товара в спецпредложениях
 */
function query_filter_speccore_hook() {
    if (empty($_GET['f']) and empty($_GET['f']) and empty($_GET['s']))
        return array('order' => 'datas desc');
}

$addHandler = array
    (
    'query_filter' => 'query_filter_speccore_hook'
);
  1. Создать файл /phpshop/templates/имя шаблона/php/inc/config.ini с содержанием:

[hook]
phpshopspec="php/hook/spec.hook.php";

Дописывание в имя товара данных из значений характеристик

Требуется дописать в имя товара значение характеристики Бренд. Имеем имя товара "Машинка для стрижки 5070", требуется выводить "Машинка для стрижки 5070 PHILIPS".

  1. Создать файл /phpshop/templates/имя шаблона/php/hook/name.hook.php с содержанием:

<?php
// Глобальный массив данных по требуемой характеристики. Указываем имя Бренд, по которому будет производиться поиск.
PHPShopObj::loadClass('sort');
if(empty($GLOBALS['PHPShopSortSearch']))
$GLOBALS['PHPShopSortSearch'] = new PHPShopSortSearch('Бренд');

/**
* Добавление имени характеристики к товару
*/
function product_grid_hook($obj,$row) {
    global $PHPShopSortSearch;

    // Ищем значение характеристики
    $sort=$PHPShopSortSearch->search(unserialize($row['vendor_array']));

    // Дописываем бренд в конец имени товара
    $obj->set('productName',' ('.$sort.')',true);

    // Дописываем бренд в конец описания
    $obj->set('productDes',' Бренд: '.$sort,true);
}

$addHandler=array
        (
        'product_grid'=>'product_grid_hook',
        'UID'=>'product_grid_hook'
);
  1. Создать файл /phpshop/templates/имя шаблона/php/inc/config.ini с содержанием:

[hook]
phpshopshopcore="php/hook/name.hook.php";
phpshopproductelements="php/hook/name.hook.php";
phpshopshop="php/hook/name.hook.php";

Для вывода значения Мощность вместо Бренд нужно указать требуемое имя в вызове класса $GLOBALS['PHPShopSortSearch'] = new PHPShopSortSearch('Мощность'); Имя характеристики должно совпадать по базе в точности до буквы.

Добавление шестого товара в ячейке каталога

В карточке каталога можно выставит параметр вывода товара от 1 до 5.

  1. Создать файл /phpshop/templates/имя шаблона/php/hook/shopcore.hook.php с содержанием:

<?php
/**
 * Добавление пятого товара
 */
function CID_Product_hook($obj,$row,$rout) {

    if($rout == 'START'){
    $obj->SysValue['templates']['main_product_forma_6']="product/main_product_forma_5.tpl";
    $obj->PHPShopCategory->setParam('num_row', 6);
    } 
    
}

$addHandler=array
        (
        'CID_Product'=>'CID_Product_hook'
);
  1. Создать файл /phpshop/templates/имя шаблона/php/inc/config.ini с содержанием:

[hook]
phpshopshop="php/hook/shopcore.hook.php";
  1. Создать копию шаблона /phpshop/templates/имя_шаблона/product/main_product_forma_5.tpl под именем main_product_forma_6.tpl

Снятие лимита на вывод всех товаров

Ссылка "Показать все" по умолчанию выводит не более 100 товаров из-за возможности наложения лимитов у хостингов. При наличии мощного хостинга и нужды вывода всех товаров, можно изменить этот лимит.

  1. Создать файл /phpshop/templates/имя шаблона/php/hook/shopcore.hook.php с содержанием:

<?php
/**
 * Изменение лимита вывода товаров до 500
 */
function CID_Product_hook($obj,$row,$rout) {

    if($rout == 'START'){
    $obj->max_item=500;
    } 
    
}

$addHandler=array
        (
        'CID_Product'=>'CID_Product_hook'
);
  1. Создать файл /phpshop/templates/имя шаблона/php/inc/config.ini с содержанием:

[hook]
phpshopshop="php/hook/shopcore.hook.php";

Добавление автоматического переноса строк в карточку подробного описания товара

Необходимо заменять переводы строк \n на тег <br> на странице подробного описания.

  1. Создать файл /phpshop/templates/имя шаблона/php/hook/description.hook.php с содержанием:

<?php
/**
 * Добавление краткого описания
 */
function UID_description_hook($obj,$row,$rout) {

    if($rout == "MIDDLE")
      $obj->set('productDes',nl2br($row['content']));
}

$addHandler=array
        (
        'UID'=>'UID_description_hook'
);
  1. Создать файл /phpshop/templates/имя шаблона/php/inc/config.ini с содержанием:

[hook]
phpshopshop="php/hook/description.hook.php";
  1. В зависимости от задачи, добавить соответствующую новую переменную @productSmallDescription@ в шаблон вывода товара /phpshop/templates/имя_шаблон/product/main_product_forma_full.tpl.

Замена информации о наличии товара на складе

Необходимо заменить надпись при выводе товара "В наличие: кол-во шт." на картинку. Если товар есть в наличии, выводится одна картинка, если товара в наличии нету - выводится другая картинка.

  1. Создать файл /phpshop/templates/имя шаблона/php/hook/items.hook.php и /phpshop/templates/имя шаблона/php/hook/phpshopproductelements.hook.php и с содержанием:

<?php
/**
 * Изменение вида информации о складе
 */
function checkStore_hook($obj,$row) {

    // Изображение наличие на складе
    if(empty($row['items']))
        $obj->set('productSklad',PHPShopText::img('/phpshop/templates/faqbootstrap/images/shop/items_on.gif'));
    else $obj->set('productSklad',PHPShopText::img('/phpshop/templates/faqbootstrap/images/shop/items_off.gif'));

    // Изображение товар под заказ
    if(empty($row['sklad'])) 
       $obj->set('enabledIco',PHPShopText::img('/phpshop/templates/faqbootstrap/images/shop/sklad_onn.gif'));

    // Изображение наличие иконки к товару
    if(!empty($row['pic_small'])) 
       $obj->set('picOn',PHPShopText::img('/phpshop/templates/faqbootstrap/images/shop/pic_on.gif'));

    // Изображение статуса новинки
    if(!empty($row['newtip'])) 
       $obj->set('newtipIco',PHPShopText::img('/phpshop/templates/faqbootstrap/images/shop/newtip_ok.gif'));

    // Изображение статуса спецпредложения
    if(!empty($row['spec'])) 
       $obj->set('newtipIco',PHPShopText::img('/phpshop/templates/faqbootstrap/images/shop/spec_ok.gif'));

    // Прячем вывод цена и корзины при нулевой цене
    if(empty($row['price'])) {
        $obj->set('ComStartCart', PHPShopText::comment('<'));
        $obj->set('ComEndCart', PHPShopText::comment('>'));
        $obj->set('productPrice', null);
        $obj->set('productValutaName', null);
    }

    return true;
}

$addHandler=array
        (
        'checkStore'=>'checkStore_hook'
);

где items_on.gif- путь картинки положительного склада, items_off.gif - отрицательного склада и т.д. Картинки должны лежать в папке /phpshop/templates/имя_шаблона/images/shop/

  1. Создать файл /phpshop/templates/имя шаблона/php/inc/config.ini с содержанием:

[hook]
phpshopshopcore="php/hook/items.hook.php";
phpshopproductelements="php/hook/phpshopproductelements.hook.php";
  1. В зависимости от задачи, добавить соответствующие новые переменные @newtipIco@, @enabledIco@, @picOn@ в шаблоны вывода товара main_product_forma_х.tpl], где х - значение кол-ва товаров в ряд (1-5).

Добавление второй цены

Требуется вывести вторую цену товара.

  1. Создать файл /phpshop/templates/имя шаблона/php/hook/items.hook.php с содержанием:

<?php
function checkStore_hook($obj,$row) {

    // Вторая цена
    $obj->set('productPrice2',PHPShopProductFunction::GetPriceValuta($row['id'],$row['price2'],$row['baseinputvaluta']));

    // Если нужны остальные цены
    $obj->set('productPrice3',PHPShopProductFunction::GetPriceValuta($row['id'],$row['price3'],$row['baseinputvaluta']));
    $obj->set('productPrice4',PHPShopProductFunction::GetPriceValuta($row['id'],$row['price4'],$row['baseinputvaluta']));
    $obj->set('productPrice5',PHPShopProductFunction::GetPriceValuta($row['id'],$row['price5'],$row['baseinputvaluta']));
    return true;
}

$addHandler=array
        (
        'checkStore'=>'checkStore_hook'
);
  1. Создать файл /phpshop/templates/имя шаблона/php/inc/config.ini с содержанием:

[hook]
phpshopshopcore="php/hook/items.hook.php";
  1. Добавить переменную @productPrice2@ во все требуемые шаблоны вывода товара из папки /phpshop/templates/имя шаблона/product/main_product_forma_XX.tpl

Добавление второй цены в другой валюте

Требуется вывести вторую цену товара в другой валюте рядом с первой.

  1. Создать файл /phpshop/templates/имя шаблона/php/hook/items.hook.php с содержанием:

<?php
function checkStore_hook($obj,$row) {
    global $PHPShopValutaArray;

    // ИД второй валюты
    $duo_currency=5;

    $Valuta=$PHPShopValutaArray->getArray();
    $format = $obj->PHPShopSystem->getSerilizeParam("admoption.price_znak");

    // Если валюта совпадает
    if($_SESSION['valuta'] == $duo_currency) {
        $currency=$obj->PHPShopSystem->getValue('dengi');
    }
    else
        $currency=$duo_currency;

    $price=PHPShopProductFunction::GetPriceValuta($row['id'],$row['price'],$row['baseinputvaluta']);
    $code=$Valuta[$currency]['code'];

    // Если валюта совпадает
    if($_SESSION['valuta'] == $duo_currency) {
        echo 1;
        $price=$price/$Valuta[$duo_currency]['kurs'];
    }
    else {
        $price=$price*$Valuta[$currency]['kurs'];

    }
    
    // Наценка
    $price=($price+(($price*$obj->PHPShopSystem->getValue('percent'))/100));

    $obj->set('productPrice2',number_format($price,$format,'.','').' '.$code);
    return true;
}

$addHandler=array
        (
        'checkStore'=>'checkStore_hook'
);
  1. Создать файл /phpshop/templates/имя шаблона/php/inc/config.ini с содержанием:

[hook]
phpshopshopcore="php/hook/items.hook.php";
  1. Добавить переменную @productPrice2@ во все требуемые шаблоны вывода товара из папки /phpshop/templates/имя шаблона/product/main_product_forma_XX.tpl

  2. Указать ИД требуемой валюты для второй цены в переменной $duo_currency.

👨‍💻
Дизайн-хуков