Na czym to polega w sklepie
Dekorator @dataclass generuje __init__, __repr__ i porównania dla klas danych. W integracjach e-commerce zastępuje luźne słowniki przy budowie payloadów konwersji - mniej literówek w kluczach.
Przykład ze sklepu internetowego
Backend sklepu buduje obiekt konwersji przed serializacją do JSON dla webhooka sGTM:
from dataclasses import dataclass, asdict
@dataclass
class ConversionPayload:
transaction_id: str
value: float
currency: str
items_count: int
order = ConversionPayload(
transaction_id="ORD-88421",
value=349.90,
currency="PLN",
items_count=3,
)
payload = asdict(order)
# {'transaction_id': 'ORD-88421', 'value': 349.90, ...}
Co zrobić po stronie biznesu
- Kontrakt purchase między ERP a workerem wysyłającym hit GA4 MP.
- Walidacja wymaganych pól przed enqueue do kolejki konwersji.
- Mapowanie wielu typów eventów (lead, purchase) z wspólną bazą pól.
W skrócie
dataclass dokumentuje schemat payloadu w kodzie. Do JSON użyj asdict - unikasz ręcznego składania słownika klucz po kluczu.