-
Notifications
You must be signed in to change notification settings - Fork 1
Feat/dev 3958 certificate by phone number #102
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
gochicus
wants to merge
5
commits into
master
Choose a base branch
from
feat/DEV-3958-certificate-by-phone-number
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
39a385b
docs(documentation-unified): personal certificates
gochicus 0c45376
docs(certificates-by-phone-number): header note change, formatting
gochicus 9e45f01
Merge branch 'master' into feat/DEV-3958-certificate-by-phone-number
gochicus 2ecb077
docs(certificates-by-phone-number): style improved, simplified
gochicus 6a35e20
Merge branch 'master' into feat/DEV-3958-certificate-by-phone-number
gochicus File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
81 changes: 81 additions & 0 deletions
81
docs/guides/loyalty/certificates/certificates-by-phone-number.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,81 @@ | ||
| # Использование персональных сертификатов | ||
|
|
||
| ::: tip Коротко о том, как это работает | ||
| <details> | ||
|
|
||
| После включения настройки персональные сертификаты будут учитываться методом `checkout/estimate`. | ||
|
|
||
| При наличии других доступных сертификатов, алгоритм выберет наиболее приоритетный. Не обязательно будет использован именно персональный сертификат. | ||
|
|
||
| </details> | ||
| ::: | ||
| // TODO иллюстрация и описание по настройкам | ||
|
|
||
| Выбор соответствующей настройки в меню активирует флаг `use_personal_certificates`. | ||
|
|
||
| Если включён этот флаг, метод `checkout/estimate` учитывает персональные сертификаты при расчёте итоговой суммы заказа. | ||
|
|
||
| Доступные сертификаты определяются с помощью идентификатора. В рамках программы лояльности это номер телефона. | ||
|
|
||
| Процесс выглядит так: | ||
|
|
||
| 1. Выполняется проверка активности флага `use_personal_certificates` и наличия идентификатора | ||
| 2. Cистема находит все сертификаты, доступные пользователю, включая персональные | ||
| 3. Система рассчитывает возможность применения найденных сертификатов к корзине. | ||
|
|
||
| ::: tip Для справки | ||
|
|
||
| Акции обрабатываются отдельным процессором. Поэтому сертификаты, включая персональные, не влияют на выбор акций. И наоборот. | ||
|
|
||
| ::: | ||
|
|
||
| ## Типы сертификатов и ограничения | ||
|
|
||
| Метод `checkout/estimate` работает со всеми сертификатами, доступными пользователю. | ||
|
|
||
| Из-за этого для сертификатов действуют правила выбора и ограничения применения. Три типа сертификатов: | ||
|
|
||
| 1. Обычный | ||
| 2. Промо | ||
| 3. Персональный | ||
|
|
||
| ::: warning Ключевое ограничение | ||
|
|
||
| К корзине может быть применён только один промо-сертификат | ||
|
|
||
| ::: | ||
|
|
||
| Обычные сертификаты могут применяться сразу по несколько штук за раз. Но есть ограничения: | ||
|
|
||
| 1. Стоимость товара не может быть полностью оплачена сертификатом. Даже если настройки на стороне магазина предусматривают максимальную долю оплаты сертификатом, покупателю в любом случае нужно будет заплатить хотя бы один рубль // TODO проверить | ||
| 2. Максимальная доля оплаты сертификатами настраивается на стороне магазина. Допустимая доля оплаты сертификатами определяется настройками | ||
|
|
||
| // TODO Иллюстрация настроек в админке магазина плюс описание | ||
|
|
||
| Промо сертификаты нельзя применить больше одного раза к конкретной корзине. | ||
|
|
||
| Персональные сертификаты учитываются только после идентификации покупателя по номеру телефона. | ||
|
|
||
| ## Алгоритм выбора сертификата | ||
|
|
||
| Метод `checkout/estimate` работает сразу со всеми доступными сертификатами. | ||
|
|
||
| Система выбирает сертификат с помощью многоуровневой сортировки: | ||
|
|
||
| 1. Доля оплаты с помощью сертификата. Чем меньший процент стоимости товара можно оплатить с помощью сертификата, тем выше его приоритет на применение к корзине | ||
| 2. Срок годности. Чем ближе сертификат к сроку истечения годности, тем выше его приоритет // TODO - подумать над формулировкой срока годности | ||
| 3. Дата активации. Приоритет получают сертификаты с более ранней датой активации. | ||
| 4. Остаток на балансе. Чем меньше оставшаяся сумма, тем вероятнее будет использован сертификат | ||
| 5. ID (сортировка по возрастанию) | ||
|
|
||
| Алгоритм направлен на то, чтобы минимизировать риск истечения сертификатов и потери оставшихся на них средств. | ||
|
|
||
| ## Жизненный цикл сертификата | ||
|
|
||
| | Этап | Метод | Действие | Статус сертификата | | ||
| |---------------|---------------------|---------------------------------------------------------------------------------------|--------------------------------------------------------------------| | ||
| | Расчет | `checkout/estimate` | Проверка, какие сертификаты можно применить | `active` (не меняется) | | ||
| | Применение | `checkout/apply` | Создание транзакций списания | `active` → `finished` (баланс меняется) | | ||
| | Подтверждение | `checkout/confirm` | Подтверждение (статус сертификата не меняется) | `finished` (не меняется) | | ||
| | Отмена | `checkout/cancel` | Возврат баланса, создание возвратных транзакций | `finished` → `active` (баланс восстанавливается) | | ||
| | Изменение | `checkout/change` | Изменение суммы списания ( в связи с изменением состава/количества товаров в корзине) | `finished` → `active` (частично, если баланс не обнулен полностью) | |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Может коротко сказать что такое персональный сертификат (или дать ссылку на описание)
главное - может быть принят к оплате только при предъявлении номера телефона юзера, на которого оформлен этот сертификат (доп функция проверки)
Ну и допом, может быть использован для оплаты только по предъявлению номера телефона
какая цель статьи - она описывает перс сертификат или логику его применения?
со старта не вполне понятно - по названию и по тексту
7: В настройках чего - то есть эта параметр метода который нам передают , но не настройки
9: "персональные в этом подсчете" - пропущено слово сертификаты
13: вот здесь исходит от отрицания (тройное), а я бы построила наоборот, например: чтобы перс сертификаты применились (а он может быть применен не только один, а несколько сразу - что очень важно) должны быть соблюдены условия: выигрыш сертификата в арбитраже в лучшей комбинации, в том числе и перед другими сертификатами ( и дать ссылку на арбитраж) + телефон юзера и
я бы вообще ушла от отрицания в текстах (по стилистике текста), если это не прямой запрет - не должно быть...
Саш, начала править, а потом поняла ,мне кажется - здесь логический принцип не тот
перс сертификат можно применить насколько я помню - без какого либо разрешения
если введен код сертификатов И и введен телефон юзера, владельца сертификатов, тогда сертификаты играют в арбитраже
Параметр в запросе " персональный сертификат" - это только для того, чтобы персональные сертификаты юзера ( код которого передан в запросе) участвовали в оплате и арбитраже без предъявления кодов
достаточно номера телефона и TRUE по параметру "use_personal_certificates"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
И мне кажется, если позволишь, можно проще - сейчас сложно читается
если ты говоришь про идентификатор, потом номер телефона - это как-то длинный путь
в запросах есть параметр "identifier"
в нем должен быть номер телефона юзера, на которого оформлен перс сертификат - только тогда он (они) становятся доступными к применению в заказе
или должен быть флаг, тогда\а номера сертификатов не надо пеедавать в запросе: система пойдет в юзера, увидит его сертификаты все и разрешит их применить в рамках возможностей по заказу
если что можем созвонится - может голосом проще?