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
  • Личный кабинет пользователя
  • Изменение доступных файлов отчетных документов
  • Приветствие
  • Закрыть доступ на сайт
  • Заказ
  • Изменение вывода доставок
  • Списывание товара со склада

Was this helpful?

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

Заказы и личный кабинет

Last updated 4 years 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] должен быть уникален, если требуется создать новый хук на тот же класс(ключ), то требуется объединить хуки по правилам составления дизайн-хуков.

Личный кабинет пользователя

Изменение доступных файлов отчетных документов

В лично кабинете пользователя при активном режиме синхронизации с 1С доступна загрузка документов (счетов и счет-фактур) в трех разных форматах HTML, XLS и DOC. Требуется оставить лишь расширение XLS.

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

<?
function userorderdoclink_mod_supplierdate_hook($obj, $value) {

    if (is_array($value['row'])) {

        // Описание столбцов
        $dis = $obj->caption(__('Документооборот'), __('Дата'), __('Загрузка'));
        $n = $value['val']['id'];
        foreach ($value['row'] as $row) {

            // Счета
            if ($obj->PHPShopSystem->ifValue('1c_load_accounts')) {
                $link_xls = '../files/docsSave.php?orderId=' . $n . '&list=accounts&tip=xls&datas=' . $row['datas'];
                if (file_get_contents($link_xls)){
                $dis.=$obj->tr(PHPShopText::a($link_xls, __('Счет на оплату'), false, false, false, '_blank', 'b'), PHPShopDate::dataV($row['datas']), PHPShopText::a($link_xls, __('XLS'), __('ФорматExcel'), false, false, '_blank', 'b') 
                );
                }
            }

            // Счета-фактуры
            if (!empty($row['datas_f']) and $obj->PHPShopSystem->ifValue('1c_load_invoice')) {
                $link_xls = '../files/docsSave.php?orderId=' . $n . '&list=invoice&tip=xls&datas=' . $row['datas'];
                if (file_get_contents($link_xls)){
                $dis.=$obj->tr(PHPShopText::a($link_xls, __('Счет-фактура'), false, false, false, '_blank', 'b'), PHPShopDate::dataV($row['datas_f']), PHPShopText::a($link_xls, __('XLS'), __('Формат Excel'), false, false, '_blank', 'b') );
                }
            }
        }

        return $dis;

    }
    
}

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

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

Приветствие

Вывести приветственное сообщение после авторизации пользователя.

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

<?
// Пример вывода дополнительного HTML кода для авторизованных пользователей
if (!empty($_SESSION['UsersId'])){
$disp='<Добро пожаловать, '.$_SESSION['UserLogin'].'!';
PHPShopParser::set('welcome',$disp);
}
  1. Создать файл /phpshop/templates/имя шаблона/php/inc/config.ini с содержанием

[autoload]
welcome="php/element/autoload.hook.php";
  1. Вставить переменную @welcome@ в нужное место шаблона.

Закрыть доступ на сайт

Требуется закрыть доступ обычным пользователям на внешнюю часть сайта на время его разработки. Разрешить отображение только авторизованному администратору через панель управления.

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

<?
// Заглушка на время заполнения сайта
if(empty($_SESSION['logPHPSHOP']))
    exit('Сайт заполняется...');
  1. Создать файл /phpshop/templates/имя шаблона/php/inc/config.ini с содержанием

[autoload]
lock="php/element/lock.inc.php";

Заказ

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

Магазин имеет всего 3 доставки. Нужно сделать выбор доставок через радио-переключатели для облегчения выбора покупателям.

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

<?
/**
 * Вывод доставок через переключатели
 */
function delivery_hook($obj){
    $PHPShopDeliveryArray = new PHPShopDeliveryArray();
    $DeliveryArray = $PHPShopDeliveryArray->getArray();

    $disp=null;
    if(is_array($DeliveryArray))
        foreach($DeliveryArray as $key=>$row)
            $disp.=PHPShopText::setInput('radio', 'dostavka_metod', $row['id'],false,false,'document.getElementById('d').value='.$key.';document.getElementById('makeyourchoise').value='DONE'',false,false,$row['city']);
    
    $disp.=PHPShopText::setInput('hidden', 'makeyourchoise', '');
    $obj->set('orderDelivery',$disp);        
    return true;
}

$addHandler=array
        (
             'delivery'=>'delivery_hook'

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

[hook]
phpshoporder="php/hook/order.hook.php";

Списывание товара со склада

Требуется автоматические списывать товар со склада сразу после создания нового заказа пользователем

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

 <?
 /**
 * Списываем количество со склада
 */
function cancellation_from_warehouse($obj, $data, $rout) {

    $carts = $obj->PHPShopCart->getArray();
    foreach ($carts as $cart) {
        $PHPShopOrm = new PHPShopOrm($GLOBALS['SysValue']['base']['products']);
        $row = $PHPShopOrm->select(array('items'), array('id' => '=' . intval($cart['id'])));
        if (is_array($row)) {
            $PHPShopOrm->clean();
            $items = $row['items'] - $cart['num'];
            $PHPShopOrm->update(array('items_new' => $items), array('id' => '=' . $cart['id']));
        }
    }
}
 
$addHandler=array (
    'sms' => 'cancellation_from_warehouse'
);
  1. Создать файл /phpshop/templates/имя шаблона/php/inc/config.ini с содержанием

[hook]
phpshopdone="php/hook/done.hook.php";

Закрыть временно сайт можно так же с помощью модуля .

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