Przejdź do treści

Python. Dekorator dataclasses.dataclass. Struktura payloadu konwersji e-commerce.

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.