> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aftersell.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Блок кода скидки

> Блок Discount code в Aftersell Cart — позвольте покупателям вводить и применять код скидки до оформления заказа.

> Блок **Discount code** — это поле ввода, где покупатели могут ввести и применить промокод в корзине, чтобы увидеть скидку ещё до перехода к оформлению заказа.

<Frame>
  <img src="https://mintcdn.com/aftersell/1Y3gBpUfxv16VGSW/images/aftersell/cart-discount-code-block-input-apply.png?fit=max&auto=format&n=1Y3gBpUfxv16VGSW&q=85&s=ac5730766b756fdf99c2fc9f65ac202b" alt="Блок кода скидки с полем ввода и кнопкой Apply в выдвижной корзине" width="1314" height="230" data-path="images/aftersell/cart-discount-code-block-input-apply.png" />
</Frame>

<div id="behavior">
  ## Поведение
</div>

* При применении код обрезается от пробелов, переводится в верхний регистр и отправляется в Shopify. Поскольку Shopify принимает запрос независимо от того, действителен ли код, блок затем повторно проверяет корзину, чтобы убедиться, что код действительно применился.
  * **Действителен** → поле очищается, и скидка применяется.
  * **Недействителен** → блок показывает «Invalid discount code.»
* То, как код сочетается с другими скидками (автоматические скидки, другие коды), полностью обрабатывается Shopify — блок лишь применяет код.
* Применённые коды отображаются в блоке [**Summary**](/ru/aftersell/cart/summary-block), а не здесь.

<div id="settings">
  ## Настройки
</div>

| Настройка       | Что она контролирует                                | По умолчанию    |
| --------------- | --------------------------------------------------- | --------------- |
| **Placeholder** | Текст-заполнитель поля ввода. Поддерживает перевод. | `Discount code` |
| **Button text** | Надпись кнопки применения. Поддерживает перевод.    | `Apply`         |

<div id="placement-and-limits">
  ## Размещение и ограничения
</div>

* **Область:** тело или низ.
* **Максимум:** 1 на состояние корзины — заполненная корзина и пустая корзина имеют отдельные лимиты.
* **Состояние:** и заполненная, и пустая.
* По умолчанию не добавлен. Не заблокирован — вы можете удалить или скрыть его.

<div id="custom-template">
  ## Пользовательский шаблон
</div>

Поддерживает [пользовательский шаблон](/ru/aftersell/cart/custom-templates) на вкладке Code, который заменяет встроенную разметку этого блока вашим JSX. Вот пропсы, которые он получает.

| Проп                   | Тип                       | Для чего он нужен                                                                              |
| ---------------------- | ------------------------- | ---------------------------------------------------------------------------------------------- |
| `discountCodeInput`    | `string`                  | Текущее значение поля ввода.                                                                   |
| `placeholder`          | `string`                  | Заполнитель, отображаемый в пустом поле.                                                       |
| `buttonText`           | `string`                  | Надпись кнопки применения.                                                                     |
| `isValidating`         | `boolean`                 | `true`, пока отправленный код проверяется. Отключайте свой элемент отправки по этому значению. |
| `isInvalid`            | `boolean`                 | `true`, когда последний отправленный код был отклонён.                                         |
| `setDiscountCodeInput` | `(value: string) => void` | Обновляет значение поля ввода.                                                                 |
| `handleSubmit`         | `(event: Event) => void`  | Отправляет текущий код.                                                                        |
| `isLoading`            | `boolean`                 | `true`, пока корзина выполняет свою первую загрузку.                                           |

<Warning>
  Подключите и `setDiscountCodeInput`, и `handleSubmit`. Без первого в поле нельзя вводить текст; без второго код никогда не применится.
</Warning>

<div id="design">
  ## Дизайн
</div>

Оформляйте этот блок в разделе **Design** его панели настроек. Это переопределения на уровне блока, которые накладываются поверх глобального дизайна и наследуют его, если поля пусты.

Что такое настройки дизайна? Подробнее здесь: [Настройки дизайна](/ru/aftersell/cart/design-settings).
