# Шов торговых событий Этот документ отвечает на вопрос, что день передает торговой части и что получает от нее назад. [`day.stream`](../../../generator/src/clickstream_generator/day.py) сначала собирает выровненные по строкам ряды трафика: - `columns` — готовые колонки просмотров страниц; - `page` — вид страницы магазина; - `product` — номер товара у карточки; - `person` — человек за кукой строки. `page` указывает, куда может сесть торговое событие, а `product` — какой товар посетитель действительно открыл. `person` в кликстрим не выходит: он нужен только для второй проекции покупки — заказа бэкенда. [`commerce.weave`](../../../generator/src/clickstream_generator/commerce.py) принимает эти ряды, вплетает `add_to_cart` и `purchase`, снова упорядочивает поток и возвращает обновленные `columns`, `page`, `product` вместе с [`commerce.Purchases`](../../../generator/src/clickstream_generator/commerce.py). `Purchases` — узкая передача следующей стороне. В ней лежат номер заказа, купленные товары и количества, клиентская выручка, промокод, момент события и человек. Все они получены из тех же покупок, что уехали в поток, а не разобраны назад из JSON. [`orders.of_day`](../../../generator/src/clickstream_generator/orders.py) принимает `Purchases`, а [`day.Day`](../../../generator/src/clickstream_generator/day.py) отдает заказы рядом с колонками событий. Здесь поток дня расходится на две ветви, показанные в индексе. За этой границей начинается [устройство заказов](../orders/README.md). Судьба, слепки и деньги бэкенда описаны там.