90  /  144

Раздел покупателя D7

Раздел покупателя D7 от 1С-Битрикс доступен в решениях «Аспро: Оптимус» (версия 1.0.4 и выше), «Аспро: Маркет» (версия 1.2.10 и выше) и «Аспро: Крутой шоп» (версия 1.1.4).

Преимущества нового раздела:
  1. Вся информация о пользователе и его заказах собрана в одном месте.
  2. Возможность управлять профилями покупателей, задавая для каждого из них свои способы оплаты, доставки и т.д.
  3. Поддержка разделения заказов и оплаты.
  4. Различные сценарии работы со счетом, который можно пополнить и без оформления заказа.
Вы можете переключиться на раздел покупателя D7 самостоятельно, отредактировав или заменив файлы решения. 
Архив с файлами index.php и .left.menu.php

Внимание! Перед внесением правок в код обязательно создайте резервную копию сайта. Мы настоятельно не рекомендуем редактировать код компонента, если вы не обладаете базовыми знаниями в веб-разработке. В этом случае обратитесь в техническую поддержку Аспро с запросом о подключении раздела покупателя D7.

Переключитесь на административную часть сайта и перейдите в Рабочий стол → Контент → Структура сайта → Файлы и папки → personal. Найдите файл index.php и откройте его для редактирования как PHP.



Удалите существующий код и скопируйте новый. Ниже приводим нужные фрагменты кода. 

Для решения «Аспро: Маркет» и «Аспро: Крутой шоп»:

<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("Личный кабинет");
?>
<?
global $USER;
if(!$USER->isAuthorized()){
    LocalRedirect(SITE_DIR.'auth/?backurl='.SITE_DIR.'personal/');
}
else{
    //LocalRedirect(SITE_DIR.'personal/personal-data');?>
    <div class="left_block">
        <?$APPLICATION->IncludeComponent("bitrix:menu", "left_menu", array(
            "ROOT_MENU_TYPE" => "left",
            "MENU_CACHE_TYPE" => "A",
            "MENU_CACHE_TIME" => "3600",
            "MENU_CACHE_USE_GROUPS" => "Y",
            "MENU_CACHE_GET_VARS" => array(
            ),
            "MAX_LEVEL" => "1",
            "CHILD_MENU_TYPE" => "left",
            "USE_EXT" => "N",
            "DELAY" => "N",
            "ALLOW_MULTI_SELECT" => "N"
            ),
            false
        );?>    
    </div>
    <div class="right_block">
        <div class="personal_wrapper">
            <?$APPLICATION->IncludeComponent(
                "bitrix:sale.personal.section", 
                "main", 
                array(
                    "ACCOUNT_PAYMENT_ELIMINATED_PAY_SYSTEMS" => array(
                        0 => "0",
                    ),
                    "ACCOUNT_PAYMENT_PERSON_TYPE" => "1",
                    "ACCOUNT_PAYMENT_SELL_SHOW_FIXED_VALUES" => "Y",
                    "ACCOUNT_PAYMENT_SELL_TOTAL" => array(
                        0 => "100",
                        1 => "200",
                        2 => "500",
                        3 => "1000",
                        4 => "5000",
                        5 => "",
                    ),
                    "ACCOUNT_PAYMENT_SELL_USER_INPUT" => "Y",
                    "ACTIVE_DATE_FORMAT" => "d.m.Y",
                    "CACHE_GROUPS" => "Y",
                    "CACHE_TIME" => "3600",
                    "CACHE_TYPE" => "A",
                    "CHECK_RIGHTS_PRIVATE" => "N",
                    "COMPATIBLE_LOCATION_MODE_PROFILE" => "N",
                    "CUSTOM_PAGES" => "",
                    "CUSTOM_SELECT_PROPS" => array(
                    ),
                    "NAV_TEMPLATE" => "",
                    "ORDER_HISTORIC_STATUSES" => array(
                        0 => "F",
                    ),
                    "PATH_TO_BASKET" => "/basket/",
                    "PATH_TO_CATALOG" => "/catalog/",
                    "PATH_TO_CONTACT" => "/contacts",
                    "PATH_TO_PAYMENT" => "/order/payment",
                    "PER_PAGE" => "20",
                    "PROP_1" => array(
                    ),
                    "PROP_2" => array(
                    ),
                    "SAVE_IN_SESSION" => "Y",
                    "SEF_FOLDER" => "/personal/",
                    "SEF_MODE" => "Y",
                    "SEND_INFO_PRIVATE" => "N",
                    "SET_TITLE" => "Y",
                    "SHOW_ACCOUNT_COMPONENT" => "Y",
                    "SHOW_ACCOUNT_PAGE" => "Y",
                    "SHOW_ACCOUNT_PAY_COMPONENT" => "Y",
                    "SHOW_BASKET_PAGE" => "Y",
                    "SHOW_CONTACT_PAGE" => "Y",
                    "SHOW_ORDER_PAGE" => "Y",
                    "SHOW_PRIVATE_PAGE" => "Y",
                    "SHOW_PROFILE_PAGE" => "Y",
                    "SHOW_SUBSCRIBE_PAGE" => "Y",
                    "USER_PROPERTY_PRIVATE" => "",
                    "USE_AJAX_LOCATIONS_PROFILE" => "N",
                    "COMPONENT_TEMPLATE" => "main",
                    "ACCOUNT_PAYMENT_SELL_CURRENCY" => "RUB",
                    "COMPOSITE_FRAME_MODE" => "A",
                    "COMPOSITE_FRAME_TYPE" => "AUTO",
                    "SEF_URL_TEMPLATES" => array(
                        "index" => "index.php",
                        "orders" => "orders/",
                        "account" => "account/",
                        "subscribe" => "subscribe/",
                        "profile" => "profiles/",
                        "profile_detail" => "profiles/#ID#",
                        "private" => "private/",
                        "order_detail" => "orders/#ID#",
                        "order_cancel" => "cancel/#ID#",
                    )
                ),
                false
            );?>
        </div>
    </div>
<?}
?>
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>

Для  решения «Аспро: Оптимус»:

<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("Личный кабинет");
?>
<?
global $USER;
if(!$USER->isAuthorized()){
    LocalRedirect(SITE_DIR.'auth/?backurl='.SITE_DIR.'personal/');
}
else{
    //LocalRedirect(SITE_DIR.'personal/personal-data');?>
    <?$APPLICATION->IncludeComponent(
    "bitrix:sale.personal.section", 
    "main", 
    array(
        "ACCOUNT_PAYMENT_ELIMINATED_PAY_SYSTEMS" => array(
            0 => "0",
        ),
        "ACCOUNT_PAYMENT_PERSON_TYPE" => "1",
        "ACCOUNT_PAYMENT_SELL_SHOW_FIXED_VALUES" => "Y",
        "ACCOUNT_PAYMENT_SELL_TOTAL" => array(
            0 => "100",
            1 => "200",
            2 => "500",
            3 => "1000",
            4 => "5000",
            5 => "",
        ),
        "ACCOUNT_PAYMENT_SELL_USER_INPUT" => "Y",
        "ACTIVE_DATE_FORMAT" => "d.m.Y",
        "CACHE_GROUPS" => "Y",
        "CACHE_TIME" => "3600",
        "CACHE_TYPE" => "A",
        "CHECK_RIGHTS_PRIVATE" => "N",
        "COMPATIBLE_LOCATION_MODE_PROFILE" => "N",
        "CUSTOM_PAGES" => "",
        "CUSTOM_SELECT_PROPS" => array(
        ),
        "NAV_TEMPLATE" => "",
        "ORDER_HISTORIC_STATUSES" => array(
            0 => "F",
        ),
        "PATH_TO_BASKET" => "/basket/",
        "PATH_TO_CATALOG" => "/catalog/",
        "PATH_TO_CONTACT" => "/contacts",
        "PATH_TO_PAYMENT" => "/order/payment",
        "PER_PAGE" => "20",
        "PROP_1" => array(
        ),
        "PROP_2" => array(
        ),
        "SAVE_IN_SESSION" => "Y",
        "SEF_FOLDER" => "/personal/",
        "SEF_MODE" => "Y",
        "SEND_INFO_PRIVATE" => "N",
        "SET_TITLE" => "Y",
        "SHOW_ACCOUNT_COMPONENT" => "Y",
        "SHOW_ACCOUNT_PAGE" => "Y",
        "SHOW_ACCOUNT_PAY_COMPONENT" => "Y",
        "SHOW_BASKET_PAGE" => "Y",
        "SHOW_CONTACT_PAGE" => "Y",
        "SHOW_ORDER_PAGE" => "Y",
        "SHOW_PRIVATE_PAGE" => "Y",
        "SHOW_PROFILE_PAGE" => "Y",
        "SHOW_SUBSCRIBE_PAGE" => "Y",
        "USER_PROPERTY_PRIVATE" => "",
        "USE_AJAX_LOCATIONS_PROFILE" => "N",
        "COMPONENT_TEMPLATE" => "main",
        "ACCOUNT_PAYMENT_SELL_CURRENCY" => "RUB",
        "COMPOSITE_FRAME_MODE" => "A",
        "COMPOSITE_FRAME_TYPE" => "AUTO",
        "SEF_URL_TEMPLATES" => array(
            "index" => "index.php",
            "orders" => "orders/",
            "account" => "account/",
            "subscribe" => "subscribe/",
            "profile" => "profiles/",
            "profile_detail" => "profiles/#ID#",
            "private" => "private/",
            "order_detail" => "orders/#ID#",
            "order_cancel" => "cancel/#ID#",
        )
    ),
    false
);?>
<?}?>
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>

Сохраните изменения. Найдите и откройте для редактирования как PHP файл «Меню типа «left» или .left.menu.php. Аналогичным образом замените код на новый.

Для решения «Аспро: Маркет» и «Аспро: Крутой шоп»:

<?
$aMenuLinks = Array(
	Array(
		"Мой кабинет", 
		"/personal/", 
		Array(), 
		Array(), 
		"" 
	),
	Array(
		"Текущие заказы", 
		"/personal/orders/", 
		Array(), 
		Array(), 
		"" 
	),
	Array(
		"Личный счет", 
		"/personal/account/", 
		Array(), 
		Array(), 
		"CBXFeatures::IsFeatureEnabled('SaleAccounts')" 
	),
	Array(
		"Личные данные", 
		"/personal/private/", 
		Array(), 
		Array(), 
		"" 
	),
	Array(
		"Сменить пароль", 
		"/personal/change-password/", 
		Array(), 
		Array(), 
		"" 
	),
	Array(
		"История заказов", 
		"/personal/orders/?filter_history=Y", 
		Array(), 
		Array(), 
		"" 
	),
	Array(
		"Профили заказов", 
		"/personal/profiles/", 
		Array(), 
		Array(), 
		"" 
	),
	Array(
		"Корзина", 
		"/basket/", 
		Array(), 
		Array(), 
		"" 
	),
	Array(
		"Подписки", 
		"/personal/subscribe/", 
		Array(), 
		Array(), 
		"" 
	),
	Array(
		"Контакты", 
		"/contacts/", 
		Array(), 
		Array(), 
		"" 
	),
	Array(
		"Выйти", 
		"?logout=yes&login=yes", 
		Array(), 
		Array("class"=>"exit"), 
		"" 
	)
);
?>

Для  решения «Аспро: Оптимус»:

<?
$aMenuLinks = Array(
	Array(
		"Мой кабинет", 
		"/personal/index.php", 
		Array(), 
		Array(), 
		"" 
	),
	Array(
		"Текущие заказы", 
		"/personal/orders/", 
		Array(), 
		Array(), 
		"" 
	),
	Array(
		"Личный счет", 
		"/personal/account/", 
		Array(), 
		Array(), 
		"CBXFeatures::IsFeatureEnabled('SaleAccounts')" 
	),
	Array(
		"Личные данные", 
		"/personal/private/", 
		Array(), 
		Array(), 
		"" 
	),
	Array(
		"Сменить пароль", 
		"/personal/change-password/", 
		Array(), 
		Array(), 
		"" 
	),
	Array(
		"История заказов", 
		"/personal/orders/?filter_history=Y", 
		Array(), 
		Array(), 
		"" 
	),
	Array(
		"Профили заказов", 
		"/personal/profiles/", 
		Array(), 
		Array(), 
		"" 
	),
	Array(
		"Корзина", 
		"/basket/", 
		Array(), 
		Array(), 
		"" 
	),
	Array(
		"Подписки", 
		"/personal/subscribe/", 
		Array(), 
		Array(), 
		"" 
	),
	Array(
		"Контакты", 
		"/contacts/", 
		Array(), 
		Array(), 
		"" 
	),
	Array(
		"Выйти", 
		"?logout=yes&login=yes", 
		Array(), 
		Array("class"=>"exit"), 
		"\$GLOBALS['USER']->isAuthorized()" 
	)
);
?>

Переключитесь на публичную часть сайта и активируйте режим правки. Перейдите в личный кабинет и нажмите всплывающую кнопку с шестеренкой, чтобы войти в режим редактирования параметров компонента.


Откроется окно настроек личного кабинета. Не внося изменения, нажмите кнопку «Сохранить».  

После проделанных операций сбросьте кэш сайта. Инструкция