feat(generator): торговые события — корзина, покупка, сырой ecommerce
- Зачем:
- клиентская сторона мира становится целой: без add_to_cart и purchase
в данных нет ни таксономии событий, ни вложенного JSON, ни денег,
а метка «покупатель» из плана состава ни на что не влияла (#40).
- Что:
- добавлен модуль commerce: корзина шире заказа, номер заказа вида
ГГГГММДД-NNNN, промокод без скидки в сумме, сырой ecommerce через orjson;
- метка покупателя получила два рычага — долгую жизнь куки в плане и
свою воронку в дне; CART_PERCENT опущен с 8 до 6, чтобы конверсия
мира осталась около 2%;
- часть цен каталога получила копейки: productPrice округляется форматом,
purchaseRevenue несёт точную сумму — расхождение живёт внутри события;
- граница суток забирает страницу подтверждения вместе с её покупкой:
потерь на клиентской стороне этот этап не заводит;
- решения и перемеренные числа мира записаны в спеку генератора, §9.
- Проверка:
- make lint && make typecheck && make test — 383 passed (было 353).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -5,8 +5,10 @@
|
||||
пересобрать: `make docs`.
|
||||
|
||||
Одно событие — одна строка: хит по образцу облачной выгрузки Яндекс Метрики.
|
||||
Многозначное лежит в параллельных массивах одной длины, плюс одно сырое
|
||||
JSON-поле `ecommerce`. Отдельной сущности «визит» в выгрузке нет — визиты
|
||||
Многозначное лежит в параллельных массивах, плюс одно сырое JSON-поле
|
||||
`ecommerce`. Длина у массивов общая **внутри группы**, а не по всему
|
||||
событию: `purchase*` — по элементу на заказ (у нас всегда один), `product*` —
|
||||
по элементу на товар. Отдельной сущности «визит» в выгрузке нет — визиты
|
||||
собирают на стороне хранилища, а `VisitID` дан как эталон для самопроверки.
|
||||
|
||||
Имена и типы колонок — стороны источника. Хранилище принимает их как есть и
|
||||
@@ -21,6 +23,10 @@ JSON-поле `ecommerce`. Отдельной сущности «визит» в
|
||||
`add_to_cart` несёт один товар, `purchase` — состав заказа и блок
|
||||
`purchase*`. У остальных событий они пусты.
|
||||
|
||||
Деньги: `productPrice` — целые рубли, округление формата. Точная сумма
|
||||
заказа живёт в `purchaseRevenue` и в сыром `ecommerce`, поэтому пересчитать
|
||||
выручку по разобранным массивам нельзя — цены каталога бывают с копейками.
|
||||
|
||||
Всего колонок: 47.
|
||||
|
||||
## Идентификаторы и время
|
||||
|
||||
Reference in New Issue
Block a user