choco-one-click-payment 1.1.15 → 1.1.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -83,10 +83,12 @@ const ChocoOneClickWidget = require('choco-one-click-payment');
83
83
  | `backlink` | string | нет | URL для возврата после оплаты (Kaspi Pay, 3DS) |
84
84
  | `locale` | string | нет | Язык: ru, en, kk (по умолчанию ru) |
85
85
  | `preorderId` | number | нет | Preorder ID |
86
+ | `containerSelector` | string | нет | CSS-селектор элемента для embedded-режима. Если не передан или элемент не найден — виджет монтируется sticky поверх страницы |
86
87
  | `color` | string | нет | Акцентный цвет (по умолчанию #2F2F2F) |
87
88
  | `onlyKaspiAvailable` | boolean | нет | Только Kaspi в списке способов оплаты |
88
89
  | `disableKaspi` | boolean | нет | Скрыть Kaspi среди способов оплаты |
89
90
  | `bonuses` | { amount: number, percent: number } | нет | Бонусы для ЗПЛ |
91
+ | `amountWithoutBonuses` | number | нет | Полная сумма без скидки бонусами (в тиынах). Если передана и бонусы включены — в блоке Apple Pay / Google Pay показывается строка «вместо X» |
90
92
 
91
93
  ### Callbacks
92
94
 
@@ -98,7 +100,7 @@ const ChocoOneClickWidget = require('choco-one-click-payment');
98
100
  | `onConfirmPay` | Callback перед оплатой; получает выбранный `method`, для подтверждения вызовите `widget.pay()` |
99
101
  | `onPaymentMethodSelected` | Вызывается при выборе способа оплаты; получает выбранный `method` |
100
102
  | `onKaspiLink` | Вызывается для `kaspi_pay` при получении `action_link`/`action_url`; позволяет клиенту самому открыть ссылку |
101
- | `onAppliedBonus` | Вызывается при включении/выключении бонусов |
103
+ | `onAppliedBonus` | Вызывается при включении/выключении бонусов тоггл-переключателем |
102
104
  | `onUserEvent` | Вызывается при пользовательских событиях виджета (`one_click_pay_cta_rendered`, `one_click_pay_method_resolved`, `one_click_pay_cta_tapped`) |
103
105
 
104
106
  ## Методы
@@ -125,6 +127,35 @@ const ChocoOneClickWidget = require('choco-one-click-payment');
125
127
  | `onUserEvent(callback)` | Регистрирует callback для пользовательских событий виджета. |
126
128
  | `pay()` | Подтверждает оплату и запускает создание заказа (после onConfirmPay). |
127
129
 
130
+ ### Режим монтирования: embedded vs sticky
131
+
132
+ По умолчанию виджет монтируется как sticky-плашка поверх страницы (фиксированная снизу).
133
+
134
+ Если передать `containerSelector` и элемент с таким селектором существует в DOM — виджет монтируется внутрь этого элемента (embedded-режим). Если селектор не передан или элемент не найден — применяется fallback: sticky поверх страницы.
135
+
136
+ ```javascript
137
+ new ChocoOneClickWidget({
138
+ // ...
139
+ containerSelector: "#checkout-widget-slot",
140
+ });
141
+ ```
142
+
143
+ ```html
144
+ <div id="checkout-widget-slot"></div>
145
+ ```
146
+
147
+ ### Отображение «вместо» для Apple Pay / Google Pay
148
+
149
+ Когда выбран Apple Pay или Google Pay, виджет показывает итоговую сумму к оплате и опциональную строку «вместо X» (зачёркнутая полная цена).
150
+
151
+ Строка появляется в двух случаях:
152
+
153
+ **Баланс.** Если пользователь включил тоггл баланса и баланс покрывает только часть суммы, сумма к оплате уменьшается, а в строке «вместо» показывается исходная сумма `amount` из конфига.
154
+
155
+ **Бонусы.** Если передан параметр `amountWithoutBonuses` и пользователь включил тоггл бонусов, в строке «вместо» показывается значение `amountWithoutBonuses`.
156
+
157
+ Если активен баланс — показывается `amount` (баланс имеет приоритет над бонусами).
158
+
128
159
  ### Обработка ссылки Kaspi Pay
129
160
 
130
161
  Для способа оплаты `kaspi_pay` виджет больше не обязан делать редирект сам.