• Как легче перенести сайт Битрикс на локалку Open Server?

    AlexanderKs3
    @AlexanderKs3
    Средствами Битрикса переносите. Для начала запустите проверку прав на файлы (Проверка системы - Проверка доступа /bitrix/admin/site_checker.php). Если все OK, создавайте резервную копию , затем разворачивайте на новом месте через restore.php, предварительно подготовив доступы к базе Mysql.
    PS: На win10 pro удобно использовать bitrix vm, запуская образ на hyper v.
    Ответ написан
    Комментировать
  • В каком месте компонента sale.order.ajax заполняется письмо?

    AlexanderKs3
    @AlexanderKs3
    Интересный у вас подход к задаче : )
    В Битриксе почтовые (и смс) уведомления хранятся в шаблонах, причем для каждого сайта может быть свой шаблон (в админке, Настройки - Настройки продукта - Почтовые и СМС события - Почтовые шаблоны /bitrix/admin/message_admin.php).
    Вам нужно найти шаблон и отредактировать его. У магазина тип почтового события с префиксом SALE_
    Ответ написан
    3 комментария
  • Где достатать каталог для тестов?

    AlexanderKs3
    @AlexanderKs3
    Могу посоветовать вам найти базу 1С с подобным каталогом и выгрузить его при помощи обмена на сайт, в стандартный магазин битрикса.
    Вообще, странно звучит "готовая база". Демку БУС можно назвать готовой базой?
    Ответ написан
  • Почему сбрасывается описание анонс при выгрузке из 1С?

    AlexanderKs3
    @AlexanderKs3
    Очень древний вопрос.. И решение такое же.
    Выгрузку анонса не отключить на стороне 1С.
    Его заполнение наименованием прописано в коде на стороне сайта. Если такое поведение не нравится, разработчики советуют повесить обработчики на события добавления и обновления элемента, перехватывая и удаляя значение для поля "Анонс". Естественно, делая это только при обмене с 1С, т.е. в обработчике события вызывать такой код:
    if (isset($_REQUEST['type'], $_REQUEST['mode']) && $_REQUEST['type'] === 'catalog' && $_REQUEST['mode'] === 'import') {
            unset($arFields['PREVIEW_TEXT']);
            unset($arFields['PREVIEW_TEXT_TYPE']);
    }
    Ответ написан
  • Как включить разделение отгрузок по складам при складском учете в БУС?

    AlexanderKs3
    @AlexanderKs3 Автор вопроса
    Вопрос задавал давно, отвечу сам, вдруг кому пригодится.

    Битрикс не распределяет товары по складам при складском учете. Необходимо писать обработчик и самостоятельно раскидывать товары.
    При включенном учете, при редактировании заказа в админке, в нем отображаются поля для выбора склада. Менеджер может установить другой склад для каждого товара, выбрав нужный в выпадающем списке. В списке будут склады, по которым для данного товара есть остаток.
    Ответ написан
    Комментировать
  • Как подключится к базе данных в битриксе через ssl?

    AlexanderKs3
    @AlexanderKs3
    Похоже, такая возможность в Bitrix не заложена. По крайней мере, если посмотреть исходники, /bitrix/modules/main/lib/db/mysqliconnection.php, то в методе connectInternal() между mysqli_init() и real_connect() не предусмотрена установка options() и ssl_set(), только назначение нестандартного порта и MYSQLI_INIT_COMMAND, а в конце - подключение файла after_connect_d7.php, в которм указываются доп. инструкции после успешного коннекта к базе:
    код function connectInternal()

    protected function connectInternal()
    {
    	if ($this->isConnected)
    		return;
    
    	$host = $this->host;
    	$port = 0;
    	if (($pos = strpos($host, ":")) !== false)
    	{
    		$port = intval(substr($host, $pos + 1));
    		$host = substr($host, 0, $pos);
    	}
    	if (($this->options & self::PERSISTENT) != 0)
    		$host = "p:".$host;
    
    	/** @var $connection \mysqli */
    	$connection = \mysqli_init();
    	if (!$connection)
    		throw new ConnectionException('Mysql init failed');
    
    	if (!empty($this->initCommand))
    	{
    		if (!$connection->options(MYSQLI_INIT_COMMAND, $this->initCommand))
    			throw new ConnectionException('Setting mysql init command failed');
    	}
    
    	if ($port > 0)
    		$r = $connection->real_connect($host, $this->login, $this->password, $this->database, $port);
    	else
    		$r = $connection->real_connect($host, $this->login, $this->password, $this->database);
    
    	if (!$r)
    	{
    		throw new ConnectionException(
    			'Mysql connect error ['.$this->host.']',
    			sprintf('(%s) %s', $connection->connect_errno, $connection->connect_error)
    		);
    	}
    
    	$this->resource = $connection;
    	$this->isConnected = true;
    
    	// nosql memcached driver
    	if (isset($this->configuration['memcache']))
    	{
    		$memcached = \Bitrix\Main\Application::getInstance()->getConnectionPool()->getConnection($this->configuration['memcache']);
    		mysqlnd_memcache_set($this->resource, $memcached->getResource());
    	}
    
    	$this->afterConnected();
    }


    В файле .settings.php определяется класс для подключения (className), возможно это пригодится для подключения своего, модиф. класса.
    Ответ написан
    Комментировать
  • Как решить проблему с изменением торговых предлжений в Админке Bitrix?

    AlexanderKs3
    @AlexanderKs3
    Скорее всего, у вас и поиск товара по каталогу в админке не работает.
    Проблема с настройками модуля "Push and Pull", как указано в консоли. Из-за ошибки блокируется работа и остальных скриптов, отвечающих за работу польз. интерфейса.

    Необходимо перейти в настройки модуля Push and Pull и настроить его, в соответствии с вашими предпочтениями:
    • переключить на облачный push server битрикс, если у вас нет проблем с ежегодным продлением лицензии и вы не против, что ваши данные будет обрабатывать внешний сервер
    • сайт работает на BitrixVM? Запустите в ее меню настройку: 9. Configure Push/RTC service for the pool > 1. Install/Update NodeJS RTC service, затем на сайте перейдите в настройки модуля "Push and Pull", переключите на локальный сервер и проверьте заполнение полей (код-подпись, путь публикации команд) подробнее
    • используете виртуальный (обычный) php хостинг? Договаривайтесь с его техподдержкой (переход на спец. тариф для битрикс, либо на VDS с окружением битрикс)
    Ответ написан
  • Почему при сохранении товара в админке 404?

    AlexanderKs3
    @AlexanderKs3
    Так 403 ошибка (доступ запрещен), или все же 404 (нет страницы)?

    403 из админки может быть из-за проактивной защиты сайта (проактивный фильтр, /bitrix/admin/security_filter.php), если ей не понравится содержимое анонса
    Ответ написан
  • Как сохранить структуру каталга 1С при выгрузке в БУС (модулем обмена битрикс)?

    AlexanderKs3
    @AlexanderKs3 Автор вопроса
    Сам спросил - сам ответил.

    Для выгрузки групп номенклатуры в том виде, как они заданы в 1С, в настройках обмена не нужно указывать "Пользовательские группы товаров". Просто оставить в "Разделы инфоблока" корневой раздел без назначенных товаров, как это задано по-умолчанию.
    60a39021b0847336473410.png
    60a38f95e756f363979378.png

    Список групп для выгрузки настраивается отбором. Указываем настройки отбора:
    Номенклатура - В группе из списка - <список "корневых" групп каталога>
    Склад - в списке - <склады, которые выгрузить в битрикс>
    Остаток - больше - 0

    60a38d8667b1e771534268.jpeg

    И в последней строке, в "Отбор" можно указать Номенклатура.Пометка удаления - равно - Нет. Больше в ней ничего не указывал, т.к. тот же "Остаток" при выгрузке выдавал ошибку "Поле Остаток не найдено".

    Если после настройки отбора на сайт попадают товары, которых быть не должно, следует проверить, не остались ли пакеты выгрузки с прошлого обмена. Если остались, выделить и удалить.

    60a38e29640e0553585377.png
    Ответ написан
    Комментировать
  • Битрикс, автоматически создается robots.txt?

    AlexanderKs3
    @AlexanderKs3
    Возможно виноваты стандартные механизмы БУС. Стоит посмотреть в админке, в разделе Маркетинг -> Поисковая оптимизация -> Настройка sitemap.xml. Если в списке есть настройки, посмотрите, когда последний раз запускались. Если недавно, проверьте в их настройках флажок "Добавить правило в robots.txt после генерации" (должен быть снят), а на закладке "Инфоблоки" - флажки "Автогенерация" (если стоит, будет автозапуск генерации). документация
    Ответ написан
    Комментировать
  • Как прямо в корзине поменять у всех товаров тип цены?

    AlexanderKs3
    @AlexanderKs3
    1. Стандартная реализация БУС выводит наиболее выгодную цену в зависимости от прав пользователя, задачи с переключением цен как правило не возникает;
    2. Если требуется показывать клиенту только одну, назначенную ему цену, достаточно указать в настройках комплексного компонента bitrix:catalog параметр PRICE_CODE - наименование типа цены;
    3. Если очень хочется переключатель в корзине, придется получить объект корзины пользователя для текущего сайта, после чего обойти товары (BasketItems), сделав им setFields для параметров CURRENCY и (возможно) PRICE, после чего сохранить корзину и получить ее стоимость. Возможно, вам поможет этот блог.

    На самом деле, идея со сменой типа цены в корзине - бредовая. А вот п.2 делал, чтобы посетитель видел только свою, партнерскую цену.
    Ответ написан
    2 комментария
  • Модуль сжатия изображений для Bitrix!?

    AlexanderKs3
    @AlexanderKs3
    У вас хостинг Reg.Ru - та еще контора. Поищите другого провайдера, их сейчас много, и у большинства cURL работает.
    В вашем случае cURL используется для обращения к API сторонних сервисов, которые и выполняют сжатие картинок (наверняка tinypng.com, tinyjpg.com и аналогичные)
    Ответ написан
    Комментировать
  • Как поменять фразу в карточке товара в Битрикс?

    AlexanderKs3
    @AlexanderKs3
    Не могу сказать про Некст, в Аспро Максимум можно выбрать внешний вид карточки товара, поэтому шаблонов у детальной страницы несколько. Думаю, в реализации карточки товара между Некст и Максимум принципиальной разницы не будет. Для вывода используется компонент bitrix:catalog.element. У вас шаблон Некст кастомизирован, поэтому размещен в /local/templates/aspro_next_custom/ . Следовательно, шаблоны компонента нужно искать в /local/templates/aspro_next_custom/components/bitrix/catalog.element.
    Также вам стоит учесть, что в настройках Аспро включен быстрый просмотр товара, а это еще один шаблон bitrix:catalog.element, обычно с именем fast_view.
    Ответ написан
    Комментировать
  • Где менять дизайн шаблона sale.order.ajax(Оформление заказа)?

    AlexanderKs3
    @AlexanderKs3
    sale.order.ajax подгружает данные динамически (что ясно из названия), т.к. разработчик/админ может настроить правила оплаты, доставок, а покупатель выбрать различные профили, тем самым изменив набор полей для заполнения. Из-за всех этих неопределенностей и нет статичного шаблона.

    Если вам нужно всего лишь поменять очередность полей пользователя (они выводятся для выбранного типа плательщика), можно изменить индекс сортировки для свойств в настройках магазина /bitrix/admin/sale_order_props.php.
    Для значений, которые должны быть выше, ставите более низкий индекс.
    Ответ написан
  • На почту приходит 2 письма. Как устранить ошибку?

    AlexanderKs3
    @AlexanderKs3
    На вашем месте я бы посмотрел список типов событий с префиксом "SALE" и для тех, у которых повторяются письма, проверил привязанные шаблоны.
    Если ничего подозрительного не нашли, остается искать в коде, например, обработчики событий в init.php (в /local/ или в основной папке с битрикс). Ну и последнее решение - развернуть бэкап локально, просканировать IDE и выполнить поиск событий отправки.
    Ответ написан