Нас однажды сильно сбила с толку созданная накопительная скидка. Авторизуется один пользователь, у него одни цены. Авторизуется другой - другие значения. В корзине выводится скидка 3%. Откуда, куда, зачем? Не ясно. Потом выяснилось, что администратор добавил накопительную скидку без предупреждения.
Довольно часто возникают задачи, когда нет необходимости в подключении визуальной частей пролога и эпилога. В этом случае достаточно подключить служебные части пролога и эпилога:
Код
<?
// подключение служебной части пролога
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
?>
тело страницы
<?
// подключение служебной части эпилога
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php");
?>
Конечно, можно просто сделать require_once 'dbconn.php', но для работы с БД необходимо использовать API, модули которого и будут подключены в служебных частях пролога и эпилога.
По идее задуманное решается опцией "Расширенное управление правами" в настройках инфоблока. После включения на странице редактирования элемента инфоблока появляется вкладка "Доступ", где будут соответствующие настройки.
Если я не ошибаюсь, после CIBlockElement::Add() необходимо делать CCatalogProduct::Add() для добавления параметров товара к элементу инфоблока, а потом CPrice::Add() для добавления ценового предложения товара.
Так же условия фильтра могут объединяться не только по условию "И", но и "ИЛИ". Для этого в качестве фильтруемого поля надо указать "LOGIC". Может принимать два значения: "AND" и "OR". По умолчанию - "AND".
Административный раздел -> Магазин -> Покупатели -> Список покупателей
Находите необходимого пользователя, открываете профиль этого пользователя и на вкладке "Профили" получаете список покупательских профилей с возможностью редактирования.
Денис Сон пишет: В указанном компоненте используется метод CSearch::Search() Первый параметр - это как раз тот массив, название которого передается в FILTER_NAME Документация здесь: http://dev.1c-bitrix.ru/api_help/search/classes/csearch/search.php . Там и пример есть, правда сложный.
Значение ELEMENT_ID возращается при включении компонента bitrix:catalog.element. Этот момент можно использовать. В файле element.php есть такая строка:
Роман Захаренков пишет: И так, что же мне делать? Неужели нельзя сделать выборку сразу по торговым предложениям, как это сделано у меня в коде выше? И если использовать OnProductUpdate то как лучше это реализовать, есть ли какие-нибудь примеры?
Вы всего лишь отключаете вывод этих позиций в шаблоне, а остальные механизмы компонента не учавствуют в этом условии. Используйте OnProductUpdate и делайте выборку по торговым предложениям. С помощью CCatalogProduct::Update можно попробовать изменить количество. Возможно из-за включённого количественного учёта Bitrix Framework не даст этого сделать. Тогда можно завести доп. свойство и менять его значение.
При использовании CCatalogProduct::Update в обработчике события OnProductUpdate необходимо в массиве новых параметров товара (параметры CCatalogProduct::Update) передать некоторый флаг, чтобы исключить зацикливание.