Как в bitrix catalog.section выполнить фильтрацию по свойствам торговых преложений?, Как в bitrix catalog.section выполнить фильтрацию по свойствам торговых преложений?
Евгений Жуков написал: Для catalog.section фильтр по полям и свойствам ТП идет в ключ OFFERS
А как именно? $arrFilter['OFFERS_PROPERTY_'.$key.'_VALUE'][] = $value; Так или как то иначе? Как написал что то не сработало. ID инфоблока всё равно указываем каталога а не ТП, верно?
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить
А если отфильтровать требуется по свойству торгового предложения например с CODE = SIZE как это сделать через FILTER_NAME инфоблок я так понимаю всё равно указывается от каталога с товарами а не инфоблок торговых предложений?
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить
Как в bitrix catalog.section выполнить фильтрацию по свойствам торговых преложений?, Как в bitrix catalog.section выполнить фильтрацию по свойствам торговых преложений?
Умный фильтр несколько отредактирован, поэтому для ajax запросов создан отдельный файл и выхов компонента catalog.section в который передаётся имя переменной $arrFilter.
Значения данного массива формируются из данных из GET, а именно так: foreach ($_GET as $key => $get) : if (is_array($get)) { foreach ($get as $value) { $arrFilter['PROPERTY_'.$key.'_VALUE'][] = $value; } } endforeach;
Если создать свойство у товаров, например SIZE то с ключом $arrFilter['PROPERTY_'.$key.'_VALUE'] всё нормально работает и товары фильтруются. В документации нашёл что фильтрация по торговым предложениям осуществляется точно так же то есть указывается например PROPERTY_SIZE или PROPERTY_SIZE_VALUE, но ни так ни так не срабатывает. Как отфильтровать по свойству торгового предложения с именем SIZE? Не в конфликте ли имен проблема? SIZE сейчас есть и у товаров и у ТП, при этом по товарам фильтруется а по ТП нет.
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить
Как передать страницу пагинации в $APPLICATION->IncludeComponent("bitrix:catalog.section" не Get параметром ?PAGEN_1=1 а из POST переменной $pagination, Как передать страницу пагинации в $APPLICATION->IncludeComponent("bitrix:catalog.section" не Get параметром ?PAGEN_1=1 а из POST переменной $pagination
Есть вызов компонента catalog.section который подгружает данные по Ajax при использовании фильтров(она немного не стандартная поскольку есть множественный выбор по каждому параметру) Нужно передать значение номера страницы пагинации в $APPLICATION->IncludeComponent( "bitrix:catalog.section", "new_section", array(........ но не в виде GET["PAGEN_1"] а из переменной $_POST["pagination"]
Как это сделать?
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить
Удаление кеша в каталоге(интернет магазина bitrix) с привякой к идентификатору пользователя., Удаление кеша в каталоге(интернет магазина bitrix) с привякой к идентификатору пользователя.
Евгений Жуков написал: решение как раз неоптимальное, приводящее к росту нагрузки на сервер. Лайки, комментарии и прочее лучше обновлять отдельно на аякс-запросах.
Пусть так, давайте тем не менее метод озвучим, пусть даже для обучения ищущих тему.
Цитата
Евгений Жуков написал: Не к пользователю. К набору групп пользователя.
Опишите пожалуйста более детально как именно, или в каком файле посмотреть?
Есть ли какой то способ добраться до информации в процессе работы компонента например через $this ?
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить
Удаление кеша в каталоге(интернет магазина bitrix) с привякой к идентификатору пользователя., Удаление кеша в каталоге(интернет магазина bitrix) с привякой к идентификатору пользователя.
Сначала расскажу о причинах появления такого вопроса.
Допустим есть каталог интернет магазина bitrix по адресу /catalog/
Допустим берём 2 браузера с чистыми сессиями(удалены все cookie) в моём случаи firefox и edge. Берём firefox заголиниваемся из админки bitrix под админом и открываем /catalog/ в результате создаётся файл кеша /bitrix/cache/s1/bitrix/catalog.section/b8/b8d7461b00962280ab9221410e95535c.php
Теперь берём edge не залогиниваясь сразу открываем /catalog/ в результате создаётся другой файл кеша по адресу /bitrix/cache/s1/bitrix/catalog.section/9b/9b905bd72647c5602f811e9d2c22b76c.php
Теперь если залогиниться в edge под админом и открыть /catalog/ то в edge будет грузиться информация из файла кеша который был создан при посещении с браузера firefox.
Кроме того если очистить файлы кеша, то залогиненый под админом пользователь вновь создаст файл кеша по адресу /bitrix/cache/s1/bitrix/catalog.section/b8/b8d7461b00962280ab9221410e95535c.php
Следовательно формирование имени файла кеша каким то образом привязано к пользователю, вопрос каким именно?
Суть в том что у товаров есть лайки, реализованные не коробочными методами, и когда эти лайки добавляются или удаляются, то управляемый кеш каталога не сбрасывается, что приводит к выводу старых данных. Я понимаю что можно использовать некерируемый component_epilog.php, но пришло более оптимальное решение, если понять по какому алгоритму создаётся пусть файла кеша(а он думаю как то привязан к id пользователя), тогда при удалении или добавлении лайка по api можно сбрасывать кэш, который приведёт к перегенерации страницы и следоватьельно сбросу кеша. Весь вопрос в том как именно сбросить кеш компонента каталог привязанно к пользователю.
Так же замечено, что в следующем коде:
$obCache = new CPageCache;
# время кеширования в секундах $lifeTime = 100;
# формируем ID кеша в зависимости от всех параметров # которые могут повлиять на результирующий HTML $cacheID = "a888899";
Адрес файла кеша всегда одинаков для постоянного $cacheID. Поэтому вопрос, для компонента каталог интернет магазина используется похожий принцип или нет? То есть может ли быть такое что в случаи каталогом кеш аналогичным образом формируется путём создания $cacheID в формировании которого принимает участие Id пользователя?
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить
Артикул товара в Bitrix. Где он находится в инфоблоке и какое название у его кода?, Артикул товара в Bitrix. Где он находится в инфоблоке и какое название у его кода?
Артикул товара в Bitrix. Где он находится в инфоблоке и какое название у его кода?, Артикул товара в Bitrix. Где он находится в инфоблоке и какое название у его кода?
Артикул товара в Bitrix. Где он находится в инфоблоке и какое название у его кода? 1) Если можно скрин скиньте где он находится 2) При вызове через API как проще всего получить Артикул зная Id товара или торгового предложения в случаи если кроме артикла ничего больше не нужно.
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить
На случай если кому-то понадобится - несколько примеров кода по авторизации, различной регистрации и поиску пользователей в bitrix - http://blog.ivru.net/?id=29
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить
Вот рабочая библиотека для FaceBook, но она не является стандартной. Писал сам. 100% рабочее решение, только свои ключи подставляете и url возврата на файл проставляете после авторизации на faceBook http://blog.ivru.net/?id=57 Через ВКонтакте тоже есть http://blog.ivru.net/?id=55 Как и комплексное решение http://blog.ivru.net/?id=58
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить
Вопрос снят. Сумму для оплаты в способе оплаты нужно указывать в момент создания заказа. Сумма заказа или доставки указываемая отдельно в данном случаи не учитывается.
То есть при создании заказа уже указывается: $paymentCollection = $order->getPaymentCollection(); $payment = $paymentCollection->createItem(); $paySystemService = PaySystem\Manager::getObjectById(2); $payment->setFields(array( 'PAY_SYSTEM_ID' => $paySystemService->getField("PAY_SYSTEM_ID"), 'PAY_SYSTEM_NAME' => $paySystemService->getField("NAME"), 'SUM' => ($cost + $deliveryCost)
));
А при проверке факта оплаты от яндекс кассы выполнить CSaleOrder::PayOrder($orderId, "Y"); (! Внимание согласно документации метод устаревший, но через Order я пока не понял как сделать). В результате работы метода в оплатах появляется Да в значении оплаты, а в заказе если суммы указанной в SUM достаточно для оплаты заказа появляется Оплачен(так же в списке заказов), а так же в любом случаи зелёная индикация статуса оплачен у метода оплаты и оплаченная сумма(та которая в SUM).
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить
Здравствуйте! Пишу API фиксирующее факт поступления оплаты от Яндекс-кассы в bitrix
Нашёл Вот такой метод CSaleOrder::PayOrder($orderId, "Y"); - он рабочий, при этом: 1)в документации написано что он устаревеший; 2) через него не смотря на то что факт оплаты в админке bitrix отмечается, не указывается оплаченная сумма. То есть появляется зелёная индикация оплаты, но написано что оплачено 0 рублей.
Пробую сделать то же самое через Order, сейчас имею примерно следующее:
$order = Order::load($orderId);//$orderId - это номер закааз $collection = $order->getPaymentCollection();// Получаем коллекцию по оплатам foreach ($collection as $payment) {// Перебираем коллекцию в цикле $payment->setField('SUM', 1000);// Для искомой оплаты устанавливаем сумму которую оплатил клиент(в этом моменте я не уверен, возможно логика не такая) }
Далее по идее заказ нужно сохранить, но при вызове $order->save(); появляется ошибка, ругается на BastekItem not found
Верная ли логика? Искомый результат, чтобы: 1)в оплатах появилась оплата с корректной суммой; 2) статус заказа был - оплачено; 3) чтобы в заказе рядом с статусом оплачено выводилась корректная оплаченная сумма.
Алмаз Ильясов написал: Переделал ссылки через ЧПУ, вроде заработало, не знаю в чем затруднения битрикса со ссылками вида index.php?s=9&p=49
Так Вам же написали в чём - в алгоритме по которому битрикс определяет активый пункт меню Например есть у вас пункт меню /menu/ а текущий адрес у Вас /menu/?p=1&d=2 - вот это вот битрикс берёт обрезает до знака вопроса а потом проверяет с списком пунктов и делает активным по совпадению" /menu/" == "/menu/"
Не знаю почему именно так, но почему то так? А кстати есть ответ на вопрос почему именно такое решение?
А что Вам там показалось тяжким? По-моему у Drupal по-своему нормальное решение. Да у bitrix иная идеология работы и построения структуры, при этом это же не означает что Drupal какой то тяжкий. Он хорош по-своему.
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить
Интернет магазин. Как указать стоимость и адрес доставки через $shipment->setFields('DELIVERY_ID'=>$service['ID'],'DELIVERY_NAME'=>$service['NAME']));, Интернет магазин. Как указать стоимость и адрес доставки через $shipment->setFields('DELIVERY_ID'=>$service['ID'],'DELIVERY_NAME'=>$service['NAME']));
Попозже при наличии времени отпишусь что и как. Сейчас опубликую список стандартных свойств, те которые создаются в настройках магазина при установке Демо данных в bitrix интернет магазине. У меня они не стояли, поэтому свойств у меня не было создано. Я решил, чтобы не путаться с названиями установил в демо-лаборатории тестовый магазин с демо данными, поэтому если кому то нужно создавать поля, вот их стандартные коды.
Получилось так что на скрине не видно кода ФИО, если что там FIO.
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить
Алексей Волков написал: Нет, не все, но точно уже не скажу причин.
Ок ситуация понятна. Благодарю за ответ. На тостере в этом топике https://toster.ru/q/318869 предположительно присутствует разработчик библиотеки sanmai/cdek-info, я её мельком глянул предположительно в ней есть всё что нужно, сам разработчик так же говорит что она рабочая. Сам ещё не протестировал, всё по той же причине, поскольку СДЭК всё ещё не прислал секретный ключ. Возможно так же напишу свою решение, позже отпишусь что из этого получилось.
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить
От себя ещё по теме могу добавить, для полноценной работы с API СДЭК не достаточно только заключить договор. После его заключения обязательно нужно написать с Вашей почты указанной в договоре на integrator@cdek.ru где указать свой логин от личного кабинета и попросить выдать Вам секретные ключи и прочие данные для интеграции Вашего интернет-магазина с API CDEK. Лучше написать сразу после заключения договора, поскольку могут отвечать не один день.
Не смотря на то что в документации к API СДЭК написано что для калькуляции стоимости доставки секретный ключ авторизации не требуется - это не совсем так, поскольку без него можно считать доставку на незначительном числе тарифов(например можно считать на тарифе с Id=1, который не очень то выгодный). Таким образом для расчёта тарифов для которых требуется наличие договора, Вам всё равно изначально потребуется получить секретный ключ авторизации на API CDEK.
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить
Доброго времени суток! Потребовалось выполнить интеграцию интернет магазина на битрикс с службой доставки CDEK. На официальном сайте имеется документация и уже начал писать свою библиотеку для взаимодействия с API. Знаю что есть несколько библиотек для работы с CDEK устанавливаемых через composer, некоторые попробовал или возникала ошибка по установке связанная с версией PHP или ещё что то. Поэтому кто сталкивался прошу уточнить: 1) какое решение из существующих сейчас рабочих является наиболее удобным и просто интегрируемым; 2) что вообще является стандартным решением по интеграции CDEK с bitrix и существует ли такое решение в целом.
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить
Анастасия Попова написал: Вывести PREVIEW_PICTURE у отдельных элементов инфоблока с ID=1, вне этого инфоблока.
Есть инфоблок в нём несколько элементов, нужно в другом месте вывести PREVIEW_PICTURE, NAME, ["PROPERTIES"]["POST"]["VALUE"] этих элементов.
Анастасия, сформулируйте пожалуйста что именно Вам нужно сделать. Считаю что вопрос задан неверно(логическая связь втом что Вы написали отсутствует). Как это понять вывести PREVIEW_PICTURE у инфоблока в другом месте? На другой вкладке админки чтоли? Или всё таки речь про шаблон и Вы где то на страинце сайта хотите это изображение вывести.
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить
Не в коем случаи ответ не претендует на истину. Почта она же возможно агентами отправляется? Может быть что то мешает перезаписывать файлы в папку с кешем из за чего она и не уходит.
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить
Таниша Таниша написал: Добрый день! Подскажите,в чём может быть проблема после того,как просят подключить мой битрикс к нашему сайту,жму кнопку подтвердить,а потом... Просто не подгружается страница (сначала долго думает,потом выдаёт,что на истекло время ожидания ответа от сервера) Я совершенный новичок в деле освоения этой crm,заранее прошу прощения за бестолковый,возможно,вопрос. Сайт так же собран на платформе 1с Битрикс
Странно конечно что Вы решили описать Вашу ситуацию именно в этой ветке, поскольку её тема отличается. Тем не менее Таниша, думаю Вам следует обращаться к специалисту за консультацией, поскольку из ситуации что Вы описали не ясно в чём именно у Вас проблема(Вы явно не указали значемые ключевые моменты, необходимые для понимания ситуации, поэтому вариантов более чем один).
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить
Интернет магазин. Как указать стоимость и адрес доставки через $shipment->setFields('DELIVERY_ID'=>$service['ID'],'DELIVERY_NAME'=>$service['NAME']));, Интернет магазин. Как указать стоимость и адрес доставки через $shipment->setFields('DELIVERY_ID'=>$service['ID'],'DELIVERY_NAME'=>$service['NAME']));
По вопросу изменения цены ответ нашёл: $shipment->setBasePriceDelivery(887.48);// Изменение стоимости доставки (информация была найдена по ссылке https://dev.1c-bitrix.ru/api_d7/bitrix/sale/technique/shipment.php в пункте изменение стоимости доставки) Сейчас остаётся вопрос: как указать адрес доставки?
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить
Интернет магазин. Как указать стоимость и адрес доставки через $shipment->setFields('DELIVERY_ID'=>$service['ID'],'DELIVERY_NAME'=>$service['NAME']));, Интернет магазин. Как указать стоимость и адрес доставки через $shipment->setFields('DELIVERY_ID'=>$service['ID'],'DELIVERY_NAME'=>$service['NAME']));
Здравствуйте! Интернет магазин на bitrix. Пишу ajax обработчик формирования заказа order.php
У меня есть например зарегистрированная доставка Почты России с Id=3 в админке доставки не указана её цена поскольку цена меняется в зависимости от адреса доставки и веса.
Создаю массив с информацией о доставке
$service = Delivery\Services\Manager::getById(3);// На выходе массив $shipment->setFields(array( 'DELIVERY_ID' => $service['ID'], 'DELIVERY_NAME' => $service['NAME']));// Здесь в доставку по заказу передаю название доставки и её Id Как этим же методом setFields передать стоимость доставки и концечный адрес доставки?
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить
Вопрос про скидки в интернет магазине на bitrix. Несколько групп скидок действующих в зависимости от общей стоимости товаров заказа/корзины., Вопрос про скидки в интернет магазине на bitrix. Несколько групп скидок действующих в зависимости от общей стоимости товаров заказа/корзины.
Вопрос про скидки в интернет магазине на bitrix. Несколько групп скидок действующих в зависимости от общей стоимости товаров заказа/корзины., Вопрос про скидки в интернет магазине на bitrix. Несколько групп скидок действующих в зависимости от общей стоимости товаров заказа/корзины.
То есть у меня JavaScript формируется сразу для всех возможных скидок и далее сумма считается на JavaScript поэтому мне нужно сразу все скидки подставить. Код же по ссылке предполагает определить действующую скидку в записимости от суммы например, но в таком случаи мне при каждом изменении колличества товаров корзины и следовательно цены делать дозапрос по Ajax.
Скиньте пожалуйста метод который мне может вернуть все условия суммы и проценты из скрина в один запрос в виде объекта или массива.
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить