Built system / further development
Store Reporting.
From orders to decisions.
How it works
Orders
A daily and monthly report gathers orders, checks their consistency, and produces a clear summary. The team does not have to combine several exports manually.
History and scope of the work
Define the result first
The report covers the previous day in the Europe/Warsaw time zone or the previous complete calendar month. It excludes canceled orders. It counts order value, orders, and units separately. Account registration is not treated as a first purchase.
Separate store versions, shared rules
JANE PL and CZ have separate sections. The mechanism also covers e-Fontanna, with further stores planned. The order language is mapped to the correct version, and section totals must agree with the whole. The amount is labeled according to the currency of the source data without pretending that an exchange-rate conversion took place.
Products and coupons without double counting
Products are grouped by a stable identifier, including across translations. The number of line items and the number of units are separate pieces of information. Coupon analysis belongs to the monthly report: it shows the share of orders with a code and their final value, not an assumed discount amount.
Do not send data that does not reconcile
Checks verify completeness, language, currency, and agreement between summaries. When an error remains unresolved, the report should not be sent as reliable. In the demonstration, you can introduce an intentional discrepancy and see the result being stopped.
Automation has its own lifecycle
The generator was prepared for scheduling and deployment on Cloud Run. Development also includes delivery tracking and retrying only failed attempts. “Accepted for sending,” “pending,” and “delivered” are different states; one server response is not enough to consider a report delivered.
A clear result for a person
I also developed the summaries for clear reading in email and on a phone. They should first answer the questions of period and store, and only then present details. The same model can generate a preview before sending so that the layout can be checked without passing data to recipients.
What this work makes possible
The team receives a report based on consistent rules instead of manually combining several exports. Checks reveal a problem before an incorrect result is used.
The demonstration does not retrieve data from an API, send messages, or present client results. It shows how the actual automation works.