Столкнулся с ошибкой в типе содержимого в sugarcrm при переводе её с PHP 5.4 на PHP 7.3 - помогло изменение параметра компрессии в PHP ini, то есть вот эта строчка: zlib.output_compression = On Ранее с такой ошибкой не сталкивался.
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить
Отпишусь в этом топике, неделю назад перестало работать стандартное bitrix geo IP вот год работало а неделю назад перестало. Причём на другом сайте который на другом хостинге работает. Данные о геолокации получаю строчкой $data = (array)(\Bitrix\Main\Service\GeoIp\Manager::getDataResult($ip,"ru")); Стал возвращать Null в каждом поле, то есть таких как cityName, countryCode, regionCode - проверено на куче IP адресов, причём на своих тоже, ко которым данные 100% ранее нормально возвращались. Касаемо нагрузок, лимиты не должны были превысить посещаемость 30-50 хостов в день(на протяжении последних месяцев точно).
Куда копать?
Вообще не нравится сам тот факт что эта функция оказывается может отвалиться. Я насколько знаю битрикс использует Sypex Geo для данного модуля? А он вообще по API работает или как то база обновляется. В целом под вопросом стоит ли использовать стандартный битрикс функционал геолокации если он может слететь или сразу ставить сторонние библиотеки.
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить
CIBlockElement::GetList после выполнения каких методов API работы с инфоблоком(добавление, обновление возможно другие) возвращает не все результаты., CIBlockElement::GetList после выполнения каких методов API работы с инфоблоком(добавление, обновление возможно другие) возвращает не все результаты.
Удалите топик, чтобы пользователей с толку не сбивать, видимо нет никакой проблемы.
Предположительно другой пользователь удалил все товары пока я разбирался с getList. У меня в браузере осталась старая инфа что товары есть. Когда я создал новый только он и был. Я не думал что кто то может удалить товары, потому и подумал что после работы с API getList перестал отдавать элементы.
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить
CIBlockElement::GetList после выполнения каких методов API работы с инфоблоком(добавление, обновление возможно другие) возвращает не все результаты., CIBlockElement::GetList после выполнения каких методов API работы с инфоблоком(добавление, обновление возможно другие) возвращает не все результаты.
CIBlockElement::GetList после выполнения каких методов API работы с инфоблоком(добавление, обновление возможно другие) возвращает не все результаты., CIBlockElement::GetList после выполнения каких методов API работы с инфоблоком(добавление, обновление возможно другие) возвращает не все результаты.
Загружаю товары и торговые предложения(а так же категории + провожу у нужных обновление, активацию, деактивацию как у категорий так и у элементов) через API
Перед запуском этим методов есть код на getList который получает в частности символьные коды, чтобы предварительно для новых товаров сгенерировать их причем уникальные. При очередной загрузке - ошибка: товар с таким символьным кодом уже существует.
Стал разбираться, оказалось что getList не вернул элементов. Попробовал создать в админке новый товар - getList только его и вернул, хотя в инфоблоке более 2000 элементов.
В коде ошибиться не мог, так как именно его я копировал многократно и он точно рабочий. Код упрощенно такой:
$arSelect = array("*"); $arFilter = Array("IBLOCK_ID"=>1);// ID можно не указывать тогда получим все элементы $res = CIBlockElement::GetList(Array(), $arFilter, false, Array(), $arSelect);// В первом массиве передаются сортировки while (($ob = $res->GetNextElement()) !== false) { $fields = $ob->GetFields(); echo "<p>"; var_dump($fields);// выводим нужные поля echo "</p>\n"; } echo "скрипт выполнился";
скопировал на другой интернет магазин, где товары тоже находятся в инфоблоке=1 - код рабочий.
Получается что после каких то методов(обновление, добавление элементов или секций по API Bitrix)возможно нужно выполнить какие то действия для обновления информации в инфоблоке.
Хотелось бы узнать какие именно? И вообще после каких методов такое может происходить?
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить
Михаил, благодарю, понятно! Ну с генерацией метод может и не плох.(вывести необходимые заголовки а далее как обычную html таблицу) А касаемо загрузки в Bitrix понятно что ничего не предусмотрено получается для этого. Буду тогда далее использовать PHPExcel.
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить
Потребовалось написать API для загрузки данных из файла эксель в инфоблок. Не долго разглядывая интернет наткнулся на PHPExcel. Сталкивался и ранее с этой библиотекой, помню что она потребляла значительное количество оперативной памяти. Вижу что ситуация в этом вопросе не улучшилась и при загрузке файла эксель размером 3 Мегабайта(примерно 5,5 тысяч строк) вылетела ошибка о нехватке оперативной памяти(до запуска top linux показывал что свободно 800 Мегабайт). В целом жить то конечно можно, например отловить ошибку и через php system почистить оперативку а затем перезапустить, но ведь в Bitrix уже есть встроенная поддержка работы с EXCEL. Поэтому вопросу а что сам Bitrix использует для работы с эксель файлами? Есть ли какая то API чтобы для работы с Excel использовать то что и так уже есть в ядре Bitrix? Сейчас по текущей задаче достаточно прочитать заданные ячейки из нужных строк, все они текстовые. Может кто то подсказать есть ли стандартные API методы у Bitrix для этого? Или может быть как то можно подключить то что битрикс для этого использует?
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить
Тоже искал как на api выбрать свойства отмеченные галочкой "Значение добавляется в корзину". Благодарю. Возможно кому то поможет информация по связанному вопросу: https://qna.habr.com/q/701284
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить
Требуется чтобы в административной панели Bitrix в заказах в конкретном заказае отображались свойства торгового предложения(размер и материал). Как сделать?, Требуется чтобы в административной панели Bitrix в заказах в конкретном заказае отображались свойства торгового предложения(размер и материал). Как сделать?
Требуется чтобы в административной панели Bitrix в заказах в конкретном заказае отображались свойства торгового предложения(размер и материал). Как сделать?, Требуется чтобы в административной панели Bitrix в заказах в конкретном заказае отображались свойства торгового предложения(размер и материал). Как сделать?
Евгений Жуков написал: Это всего лишь означает, что в стандартных компонентах выбрать эти свойства и добавить. Если вы делаете добавление самостоятельно - вам нужно передавать и эти свойства.
Я на форуме не стал детально расписывать, по ссылке на хабре отписался что делаю через API, а не через использование стандартного компонента. Я в отдельном файле формирую корзину, добавляя в неё через Add2BasketByProductID а затем в другом файле php регистрирую заказ просто передавая новому созданному заказу корзину через метод заказа: $order->setBasket($basket);
На каком этапе и как именно нужно свойства передать? И передать чему, объекту корзины или объекту заказа? Или обоим?
Галочку "Значение добавляется в корзину", что на скрине я поставил, только этого видимо не достаточно.
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить
Требуется чтобы в административной панели Bitrix в заказах в конкретном заказае отображались свойства торгового предложения(размер и материал). Как сделать?, Требуется чтобы в административной панели Bitrix в заказах в конкретном заказае отображались свойства торгового предложения(размер и материал). Как сделать?
WebP и JPEG/png изображения в Bitrix. Предлагаю поднять вопрос на обсуждение есть ли какие то инструменты в bitrix или что планируется сделать?, WebP и JPEG/png изображения в Bitrix. Предлагаю поднять вопрос на обсуждение есть ли какие то инструменты в bitrix или что планируется сделать?
Ранее Google Speed Page предлагал установить на linux программы для оптимизации изображений типа JPEG и PNG. Сейчас рекомендации по установке такого софта пропали и вместо них появилось предложение перейти на новые форматы изображений JPEG 2000 / JPEG XR / WebP. При этом предполагаю что разговаривать о первых 2 особого смысла нет, поскольку по интеграции WebP в браузеры и по его же уровню компрессии обе версии с названием JPEG уступают WebP и по предположению некоторых IT-шников рунета если и ориентироваться то именно на WebP.
Хотелось бы понять если ли уже сейчас какие то решения у битрикс по автоматическому преобразованию изображений из JPEG/PNG в WebP и наоборот? И есть ли какие то решения с использованием тега picture.
Сейчас в рунете одни из наиболее актуальных предложений по теме оптимизации картинок - это оставить вопрос на ближайший год и не обращать на него внимания, по крайней мере пока ситуация с внедрением форматов в браузеры не утрясётся. Хотелось бы понять есть ли какая либо позиция у Bitrix в этом вопросе уже сейчас, поскольку ситуация с Google Speed Page для Web IT компаний и вопросы что делать тем не менее могут быть актуальны.
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить
Создание инфоблока Bitrix средствами API странная работа параметра SECTION_PROPERTY это баг или что?, Создание инфоблока Bitrix средствами API странная работа параметра SECTION_PROPERTY это баг или что?
Заходит некто с одного компа. Регистрирует заказ. Заходит тот же некто с другого и регистрирует ещё заказ. Телефоны ввел разные(ну потому что у него их несколько), e-mail тоже. По какому критерию Вы его предлагаете сопоставить?
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить
Так в момент оформления заказа номер заказа ещё скорее всего не существует. Он же появляется после успешного оформления. Вот после оформления не могу сказать есть он в компоненте или нет, поскольку делал на API. Можете вывести var_dump($arResult) после оформления заказа и поискать номер заказа, тот который у Вас последний в админке создался. Если так не найдёте в $arResult можете запросить последний созданный кодом что я выше написал.
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить
Так смотрите что у Вас получается вот в этой строчке: $basket = Sale\Basket::loadItemsForFUser(\CSaleBasket::GetBasketUserID(), Bitrix\Main\Context::getCurrent()->getSite())->getOrderableItems(); К моменту выполнения php кода у Вас есть некоторая сформированая корзина. Верно? Вот строчкой ниже Вы её применяете к первому заказу. Соответственно как её же вы хотите применить к второму заказу? В Вашем случаи нужно не получать корзину а создавать новую, хотя бы в одном из случаев. Создать можно так: $basket = Basket::create($siteId); затем накидываете в неё нужные товары и создаёте под неё заказ. Посмотрите ссылку что я Вам скинул, у меня там есть закомментированный участок как создать корзину и добавить к ней произвольный товар/ТП. Закомментирован потому что под моё задачу мне нужно было получать существующую, но я на всякий случай оставил код, если вдруг потребуется.
$siteId можно получить так $siteId = Context::getCurrent()->getSite();
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить
Возможно Вы берёте корзину и присваиваете её одному из заказов? Соответственно ту же самую корзину уже не можете присвоить другому заказу. Так? Корзину так получаете: $basket = \Bitrix\Sale\Basket::loadItemsForFUser(\Bitrix\Sale\Fuser::getId(CSaleBasket::GetBasketUserID()), \Bitrix\Main\Context::getCurrent()->getSite()); ?
Делал в корзине одного из интернет магазинов создание учётки пользователя методами API. А именно если пользователь не авторизован но понабраз всего в корзину и сделал заказ будет создан аккаунт по введённому e-mail адресу, вот часть кода:
// Если пользователь не был найден генерируем нового if (!$userIdTpm) { $passwordToReg = randString(10, array("abcdefghijklnmopqrstuvwxyz","ABCDEFGHIJKLNMOPQRSTUVWXYZ","0123456789","!@#\$%^&*()"));// Генерирует пароль
$arFields = Array( "EMAIL"=>$emailToCheckUser, "LOGIN"=>$emailToCheckUser, "ACTIVE"=>"Y",//Делаем пользователя активным "PASSWORD"=>$passwordToReg, "CONFIRM_PASSWORD"=>$passwordToReg, ); $userIdTpm = $USER->Add($arFields);// Добавляем пользователя в битрикс и получаем его Id if ($userIdTpm) { $sendPass = true;// Отправить уведомление на почту // данные для отправки на почту $sendPassPassword = $passwordToReg; $sendPasslogin = $emailToCheckUser; $sendPassEmail = $emailToCheckUser; }
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить