Есть сайт учебного заведения с такой структурой меню http://joxi.ru/a2XVkRnS9ONlrg верхнее типа top + меню разделов типа left . В разделе "Фотогалерея" размещён комплексный компонент bitrix:news выводящий информацию из ИБ на основе которого сделана фотогалерея. Структура разделов инфоблока "Фотогалерея" примерно следующая:
2013 год
1 сентября
День учителя
2014 год
2015 год
чёрным цветом показан первый уровень разделов, красным второй. Т.е. мне нужно чтобы в левом меню раскрывалось ещё 2 уровня вложенности находясь в разделе "Фотогалерея". Я знаю это как-то делается в битриксе, даже компонент какой-то есть, но за 3 года работы с 1С Битрикс, ни разу не сталкивался с такой задачей, аш смешно )) Подскажите суть. Заранее благодарен!
У меня есть ряд свойств, этакие рейтинговые баллы для элементов инфоблока, на их основе строиться общий балл по которому и сортируется конечный список показываемый пользователю. Т.е. есть инфоблока, со свойствами Рейтинг1, Рейтинг2, Рейтинг3 , на основе этих трёх значений для каждого элемента в процессе работы компонента news.list построиться общий балл по которому и отсортируется получившийся arResult["ITEMS"].
Вначаел делал тупо, просто форма, с чекбоксами Рейтинг1, Рейтинг2, Рейтинг3, пользователь выбирал параметры, нажимал "фильтровать" отправлялся запрос. В файле news.php комплексного компонента я подхватывал этот массив и засовывал его в параметры вызываемого компонента news.list, а дальше сортировка в result_modifier.php и всё.
Теперь появились ещё несколько свойств, которые уже имею фиксированное значение, например средний ценник работы и город расположения офиса фирмы. Их хорошобы фильтровать с помощью catalog.filter входящего в состав комплексного компонента bitirx:news, но вот проблема, код в news.php который перехватывал параметры Рейтинг1, Рейтинг2, Рейтинг3 перестал работать :
Код
global $arrFilter;
ниже вызов news.list с параметрами..."FILTER" => $arrFilter,...
Как быть, как подружить мой кастыльный фильтр с рассчётом баллов фирмы "на лету" и встроенный catalog.filter. В результате мне нужно чтобы catalog.filter отфильтровывал по цене и городу, а мой кастыль вычислял балл из выбранных рейтингов (Рейтинг1, Рейтинг2, Рейтинг3) фирм, по которому я буду строить список для показа пользователю.
Как сделать учёт услуги в корзине и/или в заказе в интернет магазине?, Компания торгует канцелярскими товарами + предлагает услуги по нанесению логотипов зказчика на купленный товар, как отразить это в корзине и заказе?
Добрый день! Компания торгует канцелярскими товарами + предлагает услуги по нанесению логотипов зказчика на купленный товар, как отразить это в корзине и заказе? И как можно управлять такими услугами через админку? + есть обмен заказов с 1С УТ, как можно не потерять?
Проект пока на стадии дизайна, но меня он уже ставит в тупик, а как всё это реализовывать? Подскажите возможные пути решения? Создать товар со спец.свойством и скрытно добавлять его в корзину когда покупатель поставил галочку "Нанести мой логотип на товар" ?
Добрый день! Пишу проект, что-то наподобие сводного рейтинга банков. Т.е. в интернете существует множество рейтинговых агенств оценивающих тот или иной банк по ряду параметров. Я хочу спарсить несколько таких рейтингов и сравнить их по спец. формуле. Но у меня возникла проблема как связать два инфоблока "Банки" и "Рейтинговые агенства", я думал в "Банках" сделать множественное поле типа привязка к инфоблоку, чтобы указывать рейтинговое агенство, но обнаружил что у поля этого типа нет описания как у строки например http://joxi.ru/brRDRWKs1K6M21 . Вот я и думаю как можно эти инфоблоки связать, чтобы можно было в "Банках" в элементе выбрать через поле привязки нужное агенство и указать какое место в рейтинге этого агенства занимает текущий банг. Может есть возможность с помощью php_interface добавить к свойству типа "Привязка к элементу" доп.поле для описания значения?
Добрый день! Есть интернет магазин на основе 1С Битрикс, малый бизнес, торгует как оптом так и в розницу. Оптовики (диллеры) магазина получают скидку 20-30%. Мы хотим сделать так чтобы оптовик мог оформляя заказ через сайт печатать 2 чека, один для своего клиента, без скидок, второй со своей скидкой. Подскажите как это можно реализовать? Может есть что-то стандартное встроенное в битрикс?
Добрый день! Суть задачи. Хочу сделать доп.структурирование каталога за счёт компонента тегов таким образом, например у меня есть товары разбитые по разделам, телевизоры, холодильники, адреса url такие /catalog/televizori/, /catalog/holodilniki/ , хочу вынести для всех товаров общие свойства (например цвет) в теги, чтобы при фильтрации по тегу (например "Красные" ) обращение шло к странице /catalog/televizori/krasnie/ и на ней результат фильтрации т.е. все красные телевизоры. Это такая плюшка для SEO.
Скажите вообще возможно нечто подобное сделать на 1С Битрикс?
Добрый день! Всегда пользовался подобной конструкцией для вывода изображений на сайте.
Код
<?
//Подгоняем изображение под нужный размер
$PreviewPict = CFile::ResizeImageGet($arItem["PREVIEW_PICTURE"]["ID"], array('width'=>164, 'height'=>154), BX_RESIZE_IMAGE_PROPORTIONAL, true, false, false, 80);
echo CFile::ShowImage($PreviewPict["src"], 164, 154, " alt='".$arResult["NAME"]."' class='myClass' ", "", false);
?>
во первых размер можно пропорционально изменить, во вторых полученное изображение попадает в кеш и в дальнейшем берётся оттуда + ватермарки можно накладывать и пр. Сейчас сделал проект, одной из "особеннойстей" которого является то, что картинки торговых предложений беруться из медиабиблиотеки. Туда мы их запихнули когда переносили картинки со старого сайта (т.е. структура медиабиблиотеки повторяет структура каталога), а так же для реализации автоматической простановки картинок по товарам одного цвета. Т.е. контентщику достаточно выбрать для одного торгового предложения синего цвета (например) 5 картинок из медиабиблиотеки и они автоматом пропишуться у всех торговых предложений этого товара у которых цвет синий. Очень экономит время. Но вот проблема, теперь я не могу воспользоваться своей любимой функцией CFile:ResizeImageGet() . =(
Дело в том, что в catalog.section у меня есть только путь к картинкам лежащим в медиабиблиотеке, а CFile:ResizeImageGet() требует на вход ID зарегистрированного в системе файла. Как быть?
Добрый день! Сдел новую версию интернет-магазина клиенту, начал сливать в неё всех оптовых и розничных покупателей. С оптовыми проблем небыло, т.к. они регистрировались на самописном сайте клиента где пароли не подвергались предварительному шифрованию. Т.е. я просто считал их из БД в csv а из csv на новый сайт (версии СУБД не позволяли перетаскивать между серверами базы данных, пришлось использовать csv) вызывая в цикле CUser::Add(). А вот при переносе розничных покупателей с битрикс сайта, возникает проблема, тут пароль храниться не в явном виде, а закодирован по средствам, толи md5 толи ещё чего-то.
Я так думаю если в CUser::Add() в поле PASSWORD подставить этот хэш, ничего хорошего из этого не выйдет.
Вопрос: Как быть? Моет есть какая-нибудь хитрая функция позволяющая осуществить преобразование закодированного пароля или записать хэш прямяков в БД ?
P.S. Вариан при котором всем пользователям вначале проставить пароль "pass", а потом через CDatabase:Update() прописать им хэш в поле PASSWORD и CHECKWORD пока оставил про запас. Может есть более изящное решение.
Для создания специальных ссылок в карточке товара я создал в инфоблоке множественно свойство типа текст (Тематические ссылки LINKS), в настройках свойства включил параметр "Выводить поле для описания значения" . Теперь с помощью этого свойства я могу создать в товаре ряд ссылок (ключей) для перераспределения веса между страницами сайта. Для этого в значение свойства "Тематически ссылки" добавляю URL, а в описание значения текст ссылки (анкор), например есть товар пила "Вихрь ДП 40", в карточке товара с помощью вышеописанного свойства созданы ссылки на комплектующие к этой пиле, расходные материалы и пр. с нужными мне анкорами.
Но возникла проблема при экспорте каталога в CSV файл. Для свойства "Тематически ссылки" выгружается только значение, а описания нет. Как выгрузить и значение и описание значения для этого свойства (и естественно залить их обратно) ?
Компонент sale.order.full не учитывает скидку настроенную в "Правилах работы с корзиной", Настроил скидку 7% на всю сумму заказа на все товары инфоблока "Продукция", в корзине скидка считается, а в компоненте sale.order.full - нет
В чём проблема, имитируйте пошаговое выполнение с помощью jQuery, по аналогии с jquery tabs http://jqueryui.com/tabs/ или покажите заказчику эту тему, тут Юрий Волошин уже всё объяснил.
Цитата
Юрий Волошин написал: Можно экономически попытаться объяснить, что все нововведения будут за их счет, а тут за счет Битрикса.
Компонент sale.order.full не учитывает скидку настроенную в "Правилах работы с корзиной", Настроил скидку 7% на всю сумму заказа на все товары инфоблока "Продукция", в корзине скидка считается, а в компоненте sale.order.full - нет
Леонид Корсаков написал: Это просто кидалово на 57к два дня потрачено зря
На самом деле использовать sale.order.ajax гораздо удобнее, он прекрасно переделывается в отличную функциональную корзину с заказом в один шаг. ikprof.ru например.
Да он начинается с подчёркивания т.к. при транслитерации названия скрипт недопускает чтобы мнемонический код свойства начинался с цифры _2TSVET . Я разобрался. По ошибке неправильно вызвал GetList()
Я копировал код из примера и т.к. навигация была не нужна я оставил массив (4-й параметр) пустым, вместо false. Ошибки это не вызвало но огрничело лимит выборки 10-тью записями. Смоделировал проблему на других сайтах, всё подтвердилось.
Добрый день! Делаю такой механизм, есть каталог с торговыми предложениями (магазин одежды). Выборка торговых предложений осуществляется по свойствам цвет, размер и иногда рост. Из торговых предложений в публичную часть сайта (в карточку товара) тянуться картинки. Т.е. если у нас майка имеет 2 цвета и 8 размеров, то контент менеджеру придётся 16 раз вносить в каждое ТП по 3 - 4 картинки. Чтобы этого избежать свойство MORE_PHOTO сделал типа "Привязка к файлу на сервере", т.е. картинку к ТП я добавляю через "Медиагалерею", а в init.php написал функцию которая при обновлении ТП вытаскивает все торговые предложения привязанные к общему товару (т.е. свойство PROPERTY_CML2_LINK у них имеет одно и тоже значение) и имеющие один и тот же цвет и добавляет им всем (кроме того что мы редактируем) те же картинки. Всё работает почти шикарно, за исключением какого-то "плавающего" бага. Иногда скрипт выбирает не все ТП одного и того же цвета, хотя по всем параметрам он должен взять и их тоже. Вот я вывел на экран параметры запроса и результат выборки функйии:
Выборка достал 3 элемента 18189,18193 и 18194, хотя в ИБ торговых предложений есть ещё 2 предложения удовлетворяющих параметрам запроса http://joxi.ru/L21LaPGSgqKnmX , сразу предупрежу вопрос, в справочнике цветов (HL - инфоблок) "Ментоловый" у меня 1, 100%, несколько раз проверил http://joxi.ru/DmBXGOZhzB7VAP .
Честно говоря я в замешательстве. Что не так с выборкой? Причём ошибка появляется далеко не на всех товарах, большинство из низ отлично заполняются, всё автоматически дописывается и т.п.
Добрый день! Делаю такой механизм, есть каталог с торговыми предложениями (магазин одежды). Выборка торговых предложений осуществляется по свойствам цвет, размер и иногда рост. Из торговых предложений в публичную часть сайта (в карточку товара) тянуться картинки. Т.е. если у нас майка имеет 2 цвета и 8 размеров, то контент менеджеру придётся 16 раз вносить в каждое ТП по 3 - 4 картинки. Чтобы этого избежать свойство MORE_PHOTO сделал типа "Привязка к файлу на сервере", т.е. картинку к ТП я добавляю через "Медиагалерею", а в init.php написал функцию которая при обновлении ТП вытаскивает все торговые предложения привязанные к общему товару (т.е. свойство PROPERTY_CML2_LINK у них имеет одно и тоже значение) и имеющие один и тот же цвет и добавляет им всем (кроме того что мы редактируем) те же картинки. Всё работает почти шикарно, за исключением какого-то "плавающего" бага. Иногда скрипт выбирает не все ТП одного и того же цвета, хотя по всем параметрам он должен взять и их тоже. Вот я вывел на экран параметры запроса и результат выборки функйии:
Выборка достал 3 элемента 18189,18193 и 18194, хотя в ИБ торговых предложений есть ещё 2 предложения удовлетворяющих параметрам запроса http://joxi.ru/L21LaPGSgqKnmX , сразу предупрежу вопрос, в справочнике цветов (HL - инфоблок) "Ментоловый" у меня 1, 100%, несколько раз проверил http://joxi.ru/DmBXGOZhzB7VAP .
Честно говоря я в замешательстве. Что не так с выборкой? Причём ошибка появляется далеко не на всех товарах, большинство из низ отлично заполняются, всё автоматически дописывается и т.п.
Добрый день! Делаю такой механизм, есть каталог с торговыми предложениями (магазин одежды). Выборка торговых предложений осуществляется по свойствам цвет, размер и иногда рост. Из торговых предложений в публичную часть сайта (в карточку товара) тянуться картинки. Т.е. если у нас майка имеет 2 цвета и 8 размеров, то контент менеджеру придётся 16 раз вносить в каждое ТП по 3 - 4 картинки. Чтобы этого избежать свойство MORE_PHOTO сделал типа "Привязка к файлу на сервере", т.е. картинку к ТП я добавляю через "Медиагалерею", а в init.php написал функцию которая при обновлении ТП вытаскивает все торговые предложения привязанные к общему товару (т.е. свойство PROPERTY_CML2_LINK у них имеет одно и тоже значение) и имеющие один и тот же цвет и добавляет им всем (кроме того что мы редактируем) те же картинки. Всё работает почти шикарно, за исключением какого-то "плавающего" бага. Иногда скрипт выбирает не все ТП одного и того же цвета, хотя по всем параметрам он должен взять и их тоже. Вот я вывел на экран параметры запроса и результат выборки функйии:
Выборка достал 3 элемента 18189,18193 и 18194, хотя в ИБ торговых предложений есть ещё 2 предложения удовлетворяющих параметрам запроса http://joxi.ru/L21LaPGSgqKnmX , сразу предупрежу вопрос, в справочнике цветов (HL - инфоблок) "Ментоловый" у меня 1, 100%, несколько раз проверил http://joxi.ru/DmBXGOZhzB7VAP
Да верно, попробую. Тут вся проблема из-за того что на странице сначала идёт наименование раздела, потом его описание, потом умный фильтр и потом список товаров. Я же и вынес часть вёрстки catalog.section в файл section.php и теперь вот мучаюсь )))
Добрый день! Пытаюсь применить технологию отложенных функций на одном из проектов. Суть естить каталог товаров, для списка товаров сделал фильтрацию по меткам "Новинка" и "Распродажа" следующим образом. В код вызова компонента catalog.section добавил параметр из GET массива
Код
...
"SECTION_LABEL" => $_GET["label"],
...
затем в файле result_modifier.php проверяю переданный параметр $arParams["SECTION_LABEL"] и фильтрую массив $arResult["ITEMS"], удаляя из него элементы "не новинки" или "не в распродаже". Можт быть ситуация при которой $arResult["ITEMS"] останется пустым и мне нужно будет убрат со страницы всё (включая умный фильтр вызываемый выше по коду от catalog.section). Решил воспользоваться отложенной функцией. Для этого в init.php добавл 3 функции:
Код
$sectionResult = 0;
function sectionResult($r=0){
global $APPLICATION;
return $APPLICATION->AddBufferContent("getMySectionResult");
}
function setSectionResult($r){
global $sectionResult;
$sectionResult = $r;
}
function getMySectionResult(){
global $sectionResult;
return $sectionResult;
}
файле component_epilog.php проверяю если товаров после фильтрации не осталось, то я устанавливаю флаг $sectionResult:
а в файле section.php комплексного компонента bitrix:catalog ставлю проверку:
Код
if(!sectionResult()) { ...
и пытаюсь к этой проверки привязаться, чтобы в случае пустого $arResult["ITEMS"] не выводить умный фильтр и список товаров, а вывести предупреждающее сообщение. Но ничего не выходит. Во первых этот код if(!sectionResult()) { выводит в тело страницы цифру 1. Т.е. он не просто проверку делает в if() а непосредственно выводит её на страницу. Во вторых он выводи 1-цу постоянно, даже если товары есть в $arResult["ITEMS"].
Что не так?
P.S. воспользоваться умным фильтром для реализации такой фильтрации не представляется возможным в силу замудрённой вёрстки проекта.
Копаем глубже. Та же проблема с 404 на комплексном компоненте у которого ести и разделы и подразделы и элементы (bitrix:catalog) поместил в файлы sectin.php и element.php после вызова компонентов catalog.section и catalog.element соответственно, такой код:
Код
<? //Уходим на 404 страницу
global $APPLICATION;
if ((defined('ERROR_404')) && (ERROR_404=='Y'))
{
$APPLICATION->RestartBuffer();
CHTTP::SetStatus("404 Not Found");
$APPLICATION->SetPageProperty("class_center", "error_page_content"); //Это мне нужно для стилей в header.php на 404 странице
include($_SERVER["DOCUMENT_ROOT"].SITE_TEMPLATE_PATH."/header.php");
require ($_SERVER["DOCUMENT_ROOT"]."/404.php");
include($_SERVER["DOCUMENT_ROOT"].SITE_TEMPLATE_PATH."/footer.php");
die();
}
?>
шаблон URL адресов настроен так: для разделов /#SECTION_CODE#/ для элементов /#SECTION_CODE#/#ELEMENT_CODE#.html если обратиться к несуществующим разделам или страницам соблюдая данный шаблон, например .../catalog/abrakadabra/ или .../catalog/abrakadabra/blablabla.html - код отрабатывает, в ответе сервера нет никакх редиретов и пр. вам просто покажет 404 страницу с соответствующим статусом в ответе. Но если нарушить габлон, и обратиться например к .../catalog/abrakadabra - т.е. без слеша на конце - 404 страница не отрабатывает. Я вижу список всех разделов. Битрикс ведь ничего не нашёл, ни раздел ни элемент, почему же не отдать 404 ? Как можно настроить такое поведение (желательно без кастомизации комплексного компонента) ?
Добрый день! Кастомизировал компонент sale.order.ajax таким образом чтбы корзина с возможностью ввода купона, изменения количества и удаления товара была на одной странице с формой заказа. Офомляю заказ, в POST уходят следующие данные:
Код
sessid af37ce2447269e9ecfa81739531979c0
QUANTITY_242 1
COUPON
ORDER_PROP_36 344000 Ростов-на-Дону, ул.Большая садовая №36
ORDER_PROP_38 ПЭК
PAY_SYSTEM_ID 6
PERSON_TYPE 2
PERSON_TYPE_OLD 2
ORDER_DESCRIPTION
PROFILE_ID 63
showProps Y
tmp_val
tmp 0
BUYER_STORE 0
confirmorder Y
profile_change N
is_ajax_post N
json N
submitbutton Подтверждаю заказ
, проблема в том что в момент заказа у пользователя изменяется имя из аказ уходит вникуда. Я поставил на событие обновления, добавления пользователя остановку и что я вижу:
и поле NAME воспринимает как новое имя пользователя делающего заказ (не смотря на параметр profile_change N) и меняет его имя. Тут же слетает профиль покупателя и заказ уходит вникуда. И корзина очищается и заказа нет. Куда копать ума не приложу.
[ Закрыто] Кто разобрался с новым шаблоном интернет магазина на 1С Битрикс 14.x ?, Кто разобрался с новым шаблоном интернет магазина на 1С Битрикс 14.x ? Пытаюсь натянуть туда свою вёрстку, что-то не очень получается.
Да шаблон крайне не простой, я теперь его стараюсь не использовать, свой JS (Jquery) свой template.php, от поддерки получил копию старого 12-го битрикса со старым магазином, много взял оттуда. Вот может пригодится https://yadi.sk/d/b1xyh5DucCson
Добрый день! Перелопатил компонент sale.order.ajax таким образом, что для физ.лица всё осталось по прежнему (за исключнием внешнего вида) а для юр. лица клиент хочет иметь только 2 поля: "Адрес доставки" и "Транспортная компания (которой Вам удобно использовать)". Следовательно я отключил для плательщика типа "Юридическое лицо" свойство заказа "Местоположение", не выбираю службу доставки, а так же во всех свойствах (Магазин->Свойства заказа->Список свойств) для юр.лица я убрал вот эти галочки http://joxi.ru/4DmBbXwfJdkwmP максимум для некоторых оставил последнюю "Свойство доступно в фильтре по заказам". Это нужно для того чтобы битрикс автоматически не делал их обязательными и не ругался.
Т.е. сейчас для оформления заказа на стандартном шаблоне мне можно вообще ничего не заполнять, ну я для приличия заполняю поля "Адрес доставки" и "Транспортная компания (которой Вам удобно использовать)", для чистоты эксперимента. На стандартном шаблоне заказ делается без проблем. Включаю свой шаблон, подтверждаю заказ ничего не происходит, точнее страница остаётся та же, остаётся на месте заполненная корзина и все заполненные поля. Аосмотрел в инспекторе (FireBug) что отсылает стандартный и мой шаблон:
Код
/*отправка со стандартным шаблоном*/
sessid 4611b1bb599d5a288547f7d4b26699e8
PERSON_TYPE 2
PERSON_TYPE_OLD 2
PROFILE_ID 56
showProps Y
ORDER_PROP_38 ПЭК
ORDER_PROP_36 344000 Ростов-на-Дону, ул.Большая садовая №36
tmp 0
BUYER_STORE
PAY_SYSTEM_ID 6
PAY_SYSTEM_ID 6
ORDER_DESCRIPTION
confirmorder Y
profile_change N
is_ajax_post Y
json Y
save Y
и мой шаблон:
Код
/*Отправка из моего шаблона*/
QUANTITY_196 1
COUPON 123456
ORDER_PROP_36 344000 Ростов-на-Дону, ул.Большая садовая №36
ORDER_PROP_38 ПЭК
PAY_SYSTEM_ID 6
PERSON_TYPE 2
PERSON_TYPE_OLD 1
ORDER_DESCRIPTION
PROFILE_ID 55
showProps Y
save Y
confirmorder Y
profile_change N
is_ajax_post N
json N
submitbutton Подтверждаю заказ
Сразу бросилось в глаза то что у меня форма корзины и заказ общие и в моих параметрах присутствуют QUANTITY_196 т.е. количество товара (торгового предложения ) с ID = 196. Во вторх я не использую JSON ответ, потому у меня json = N. Не знаю почему не происходит заказ для Юр.лица, для "физика" всё работает шикарно, правда там набор данных шире и местоположение есть и доставка и пр. но тут они не нужны. Почему не происходит заказ? Какой минимальный набор параметров нужно для осуществелния заказа если все свойства заказа для данного типа плательщика я вляются НЕ обязательными и в них нет свойства типа LOCATION ?