# Свои настройки в модуле решения

Файл **bitrix/modules/astdesign.marketpro/custom_params.php** уже есть в поставке решения — с пустым массивом. Его нужно не создать, а отредактировать.

Пример содержимого:

```php
<?php
$customParams = [
    "hideProductsNoPreviewPicture" => [
        "TITLE" => "Скрывать товары без картинки анонса",
        "TYPE" => "checkbox",
        "DEFAULT" => ""
    ],
    "hideProductsNoDetailPicture" => [
        "TITLE" => "Скрывать товары без детальной картинки",
        "TYPE" => "checkbox",
        "DEFAULT" => ""
    ],
    "hideProductsNoPrice" => [
        "TITLE" => "Скрывать товары без цены",
        "TYPE" => "checkbox",
        "DEFAULT" => ""
    ],
];
```

В результате на странице настроек решения появится секция

 ![](https://docs.astdesign.ru/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzLzQ3YmIzMDRiLTZiYTktNDk2Ny05OTJhLTMzMWFiMTdlMDc0MS9iZmM2Njk0NC1iNGRjLTQxZDktOTQ5Zi02YzhhMGNjOWFjMjYvaW1hZ2UucG5nIiwidHlwZSI6ImF0dGFjaG1lbnQiLCJpYXQiOjE3OTMyNjM1MDAsImV4cCI6MTc5MzM0OTkwMH0.qym75GNiV4Bo1JDJc8CjZqtlPtfk1x21PXn9fQ7tvOA)

Пример получения значения добавленной настройки:

```php
\Astdesign\Marketpro\Solution::getOption("hideProductsNoPreviewPicture", "N")
```

# Скрытые рычаги решения

Через этот же файл объявляются настройки, которых нет в админке. Часть параметров решение сознательно держит в коде — владельцу магазина их крутить незачем, — но у конкретного клиента их можно вынести в настройки:

* `geoRequestTimeout` и `geoRequestConnectTimeout` — таймауты запроса к сервису определения города по IP. По умолчанию три и две секунды: если сервис не ответил, посетитель получает город по умолчанию, а не висящую страницу.
* `pushDevicesDays` — сколько дней хранить токены устройств, которые не заходили в приложение. По умолчанию срок задан по поведению FCM, который сам инвалидирует токен примерно через 270 дней простоя.
* параметры прогона push-рассылки, кроме размера партии: параллельность, таймауты, число попыток, интервал пересмотра сегмента.

Объявили опцию в `custom_params.php` — и `Solution::getOption()` начнёт брать значение из настроек решения вместо константы. Править ядро для этого не нужно.

# Что переживает обновление

Папка **lib/custom** обновлением не затирается: сборщик пакета исключает её из поставки, поэтому переопределённые методы остаются на месте. Так же исключены `backups`, `logs` и `files`.

С `custom_params.php` иначе: он входит в поставку модуля. Пакет обновления содержит только изменённые файлы, поэтому обычно его не трогает — но однажды он в пакет уже попадал, когда решение его добавляло. Значит риск есть.

Держите этот файл под контролем версий и проверяйте после обновления: пустой массив вместо ваших настроек означает, что файл перезаписали. Как удобно это отслеживать — в статье [«Контроль версий»](/s/marketpro/doc/kontrol-versij-qFXUu6dA9w).

---

**Documents**

- [Установка решения](https://docs.astdesign.ru/s/marketpro/doc/ustanovka-resheniya-Z8Q6r79liU)
- [FAQ перед покупкой](https://docs.astdesign.ru/s/marketpro/doc/faq-pered-pokupkoj-HPgKP7mWDT)
- [Общая настройка](https://docs.astdesign.ru/s/marketpro/doc/obshaya-nastrojka-Io6HZQaGXf)
- [Шаблон](https://docs.astdesign.ru/s/marketpro/doc/shablon-ylLAFZV3o8)
- [Главная страница](https://docs.astdesign.ru/s/marketpro/doc/glavnaya-stranica-7PwYozaVVo)
- [Магазины (склады)](https://docs.astdesign.ru/s/marketpro/doc/magaziny-sklady-7rEEZJrA45)
- [Каталог](https://docs.astdesign.ru/s/marketpro/doc/katalog-FpnYzZr900)
- [Поиск](https://docs.astdesign.ru/s/marketpro/doc/poisk-xsDdFVh5h0)
- [Текстовые страницы](https://docs.astdesign.ru/s/marketpro/doc/tekstovye-stranicy-jVtNXZv3T5)
- [Реклама и маркетинг](https://docs.astdesign.ru/s/marketpro/doc/reklama-i-marketing-iZkaCoxr5b)
- [Региональность](https://docs.astdesign.ru/s/marketpro/doc/regionalnost-bCuM9AOBNO)
- [Корзина](https://docs.astdesign.ru/s/marketpro/doc/korzina-Mh27pZA7v9)
- [Оформление заказа](https://docs.astdesign.ru/s/marketpro/doc/oformlenie-zakaza-VyvQjOQxZo)
- [Авторизация](https://docs.astdesign.ru/s/marketpro/doc/avtorizaciya-5HwEb1oDJG)
- [SEO и аналитика](https://docs.astdesign.ru/s/marketpro/doc/seo-i-analitika-d1Hw6c4YAM)
- [Уведомления](https://docs.astdesign.ru/s/marketpro/doc/uvedomleniya-SKDyjYg14J)
- [Мобильное приложение](https://docs.astdesign.ru/s/marketpro/doc/mobilnoe-prilozhenie-F5E0hT7TnN)
- [Обновление решения](https://docs.astdesign.ru/s/marketpro/doc/obnovlenie-resheniya-RRRgtxV5uH)
- [Для разработчика](https://docs.astdesign.ru/s/marketpro/doc/dlya-razrabotchika-WJePeJCmpy)
- [Интеграции](https://docs.astdesign.ru/s/marketpro/doc/integracii-D3DqjYOZYm)
- [Что делать, если что-то не работает](https://docs.astdesign.ru/s/marketpro/doc/chto-delat-esli-chto-to-ne-rabotaet-Q8L8sTVJF8)