# Настройки магазина

`/admin/shop/settings` — все настройки в одной форме на 6 табов. Хранятся в `celena_options` с префиксом `shop.*` (autoload).

## 1. Общее

| Ключ | Что |
|---|---|
| `shop.store_name` | Название магазина (для писем, OG-метатегов) |
| `shop.contact_email` | Email для связи (показывается покупателю) |
| `shop.contact_phone` | Телефон |
| `shop.address` | Юридический адрес |

## 2. Валюта и формат

| Ключ | Что | Дефолт |
|---|---|---|
| `shop.currency_code` | ISO 4217: USD, EUR, UAH, GBP, PLN… | USD |
| `shop.currency_symbol` | Символ: $, €, ₴, £, zł… | $ |
| `shop.currency_position` | `before` ($ 100) / `after` (100 ₴) | before |
| `shop.price_decimals` | Знаков после запятой (0 для цен без копеек) | 2 |
| `shop.thousands_sep` | Разделитель тысяч | `,` |
| `shop.decimal_sep` | Десятичный разделитель | `.` |

После изменения сразу применяется ко всем шаблонам, использующим тег `{price amount="…"}`, к карточкам товара, виджету корзины и виджету магазина в дашборде.

Внизу таба — превью: «Сейчас сумма 12 345.67 отобразится так: $ 12,345.67».

## 3. Каталог

| Ключ | Что |
|---|---|
| `shop.products_per_page` | Кол-во товаров на странице каталога |
| `shop.show_out_of_stock` | Показывать товары без остатка |
| `shop.show_sku` | Показывать SKU на карточке |
| `shop.show_rating` | Показывать рейтинг и отзывы |
| `shop.allow_guest_checkout` | Разрешить заказы без регистрации |

## 4. Заказы

| Ключ | Что |
|---|---|
| `shop.order_number_prefix` | Префикс номера заказа (`ORD-`, `INV-`, …) |
| `shop.order_initial_status` | Начальный статус нового заказа (new/pending/paid) |
| `shop.min_order_amount` | Минимальная сумма заказа (0 = без ограничений) |
| `shop.notify_email` | Email для уведомлений админу о новых заказах |

## 5. Чекаут

| Ключ | Что |
|---|---|
| `shop.checkout_require_phone` | Телефон обязателен |
| `shop.checkout_require_email` | Email обязателен |
| `shop.checkout_require_address` | Адрес обязателен |
| `shop.checkout_thank_text` | Текст благодарности после оформления |

## 6. Налоги

| Ключ | Что |
|---|---|
| `shop.tax_enabled` | Включить налог |
| `shop.tax_rate` | Ставка, % |
| `shop.tax_included` | Цены включают налог (`true`) или налог добавляется сверху (`false`) |

## API доступа из кода

```php
$shop = new \Celena\Plugin\Shop\Support\ShopSettings(
    Kernel::container()->make(Options::class)
);

$shop->currencyCode();      // 'USD'
$shop->currencySymbol();    // '$'
$shop->formatPrice(1234.5); // '$ 1,234.50'
$shop->bool('shop.tax_enabled');   // false
$shop->int('shop.products_per_page', 24);
```

## Глобальные переменные в шаблонах

Все ключи доступны в темах как `{shop.X}`, например `{shop.store_name}`, `{shop.currency_symbol}`, `{shop.show_sku}`. Это работает за счёт `template.globals` фильтра в `plugin.php`.

В голову HTML-страниц фронта инжектится `<script>window.CELENA_SHOP = {…}</script>` с символом валюты, позицией и разделителями — JS корзины (`shop.js`) использует это для форматирования цен.
