Order Completed
v1eventsUna orden de compra se completó exitosamente. Es el evento de conversión del negocio.
1{
2 "type": "record",
3 "name": "OrderCompleted",
4 "namespace": "payments.order",
5 "doc": "Emitido cuando una orden se completa exitosamente en bigbox-backend (payments). Consumido por el servicio analytics para reenviar la conversion a GA4, Meta, Google Ads y Customer.io.",
6 "fields": [
7 {
8 "name": "order_id",
9 "type": "string",
10 "doc": "Id de la orden. Se emite como string aunque el id sea numerico (str(order.id))."
11 },
12 {
13 "name": "channel",
14 "type": ["null", "string"],
15 "default": null,
16 "doc": "Canal de la orden (Order.CHANNEL): biglife | corporate_send | corporative | internal | maleva | manual_corporative | stock_entry | web. analytics descarta todo lo que no sea 'web'."
17 },
18 {
19 "name": "price",
20 "type": "string",
21 "doc": "Precio final de la orden. Se emite como string (str(order.get_final_price())); el consumer lo castea a float >= 0."
22 },
23 {
24 "name": "currency",
25 "type": {
26 "type": "enum",
27 "name": "Currency",
28 "symbols": ["USD", "ARS", "UYU", "PEN", "CLP", "COP", "MXN", "EUR"]
29 },
30 "doc": "Codigo de moneda derivado del pais de la orden (CurrentSiteMapper.currency_code). Los simbolos son los que acepta el consumer."
31 },
32 {
33 "name": "items",
34 "type": {
35 "type": "array",
36 "items": {
37 "type": "record",
38 "name": "Item",
39 "fields": [
40 {
41 "name": "item_id",
42 "type": "string",
43 "doc": "Id del producto, emitido como string."
44 },
45 {
46 "name": "item_name",
47 "type": "string",
48 "doc": "Nombre del producto."
49 },
50 {
51 "name": "short_description",
52 "type": ["null", "string"],
53 "default": null,
54 "doc": "Descripcion corta del producto hijo, si existe."
55 },
56 {
57 "name": "price",
58 "type": "string",
59 "doc": "Precio del item, emitido como string; el consumer lo castea a float."
60 },
61 {
62 "name": "quantity",
63 "type": "int",
64 "doc": "Siempre 1: se emite una entrada por item de la orden."
65 },
66 {
67 "name": "currency",
68 "type": "Currency",
69 "doc": "Misma moneda que la orden."
70 },
71 {
72 "name": "shipping_type",
73 "type": ["null", "string"],
74 "default": null,
75 "doc": "typename del shipping del item; null si el item no tiene shipping."
76 }
77 ]
78 }
79 },
80 "doc": "Items activos de la orden (order_line.date_removed is null). El consumer exige al menos 1."
81 },
82 {
83 "name": "email",
84 "type": "string",
85 "doc": "Email del comprador. El consumer lo valida como EmailStr y aplica una whitelist de dominios."
86 },
87 {
88 "name": "phone",
89 "type": ["null", "string"],
90 "default": null,
91 "doc": "Telefono del comprador."
92 },
93 {
94 "name": "first_name",
95 "type": ["null", "string"],
96 "default": null,
97 "doc": "Nombre del comprador."
98 },
99 {
100 "name": "last_name",
101 "type": ["null", "string"],
102 "default": null,
103 "doc": "Apellido del comprador."
104 },
105 {
106 "name": "event_source_url",
107 "type": ["null", "string"],
108 "default": null,
109 "doc": "URL de origen de la conversion. Hoy el publisher siempre envia string vacio."
110 },
111 {
112 "name": "country_id",
113 "type": ["null", "int"],
114 "default": null,
115 "doc": "Id del pais de la orden."
116 },
117 {
118 "name": "coupon",
119 "type": ["null", "string"],
120 "default": null,
121 "doc": "Codigo de descuento aplicado; null si no hubo."
122 },
123 {
124 "name": "items_with_change_or_extension",
125 "type": ["null", "boolean"],
126 "default": null,
127 "doc": "True si algun item de la orden es una Extension (cambio o extension)."
128 },
129 {
130 "name": "amount_payed_with_credit",
131 "type": ["null", "string"],
132 "default": null,
133 "doc": "Monto pagado con credito, emitido como string (str(order.get_total_credit()))."
134 },
135 {
136 "name": "analytics_client",
137 "type": {
138 "type": "record",
139 "name": "AnalyticsClient",
140 "doc": "Identidad del cliente para analytics. Se arma con los campos fijos mas el spread de AnalyticsSession.data_session, por lo que puede traer claves extra no listadas aca.",
141 "fields": [
142 {
143 "name": "internal_id",
144 "type": ["null", "string"],
145 "default": null,
146 "doc": "Id interno del usuario, emitido como string."
147 },
148 {
149 "name": "ga4_client_id",
150 "type": ["null", "string"],
151 "default": null,
152 "doc": "client_id de GA4 tomado de data_session."
153 },
154 {
155 "name": "gclid",
156 "type": ["null", "string"],
157 "default": null,
158 "doc": "Google Click Id."
159 },
160 {
161 "name": "ga_user_properties",
162 "type": ["null", { "type": "map", "values": ["null", "string", "boolean", "double"] }],
163 "default": null,
164 "doc": "User properties libres que se reenvian a GA4."
165 },
166 {
167 "name": "ga_session",
168 "type": [
169 "null",
170 {
171 "type": "record",
172 "name": "GASession",
173 "fields": [
174 { "name": "ga_session_id", "type": ["null", "string"], "default": null },
175 { "name": "ga_session_number", "type": ["null", "string"], "default": null }
176 ]
177 }
178 ],
179 "default": null
180 },
181 {
182 "name": "meta_session",
183 "type": [
184 "null",
185 {
186 "type": "record",
187 "name": "MetaSession",
188 "fields": [
189 { "name": "fbp", "type": ["null", "string"], "default": null },
190 { "name": "fbc", "type": ["null", "string"], "default": null },
191 { "name": "gclicl", "type": ["null", "string"], "default": null, "doc": "Nombre tal cual esta en el consumer (posible typo de gclid)." }
192 ]
193 }
194 ],
195 "default": null
196 },
197 {
198 "name": "location",
199 "type": [
200 "null",
201 {
202 "type": "record",
203 "name": "LocationSession",
204 "fields": [
205 { "name": "client_ip_address", "type": ["null", "string"], "default": null },
206 { "name": "client_user_agent", "type": ["null", "string"], "default": null }
207 ]
208 }
209 ],
210 "default": null
211 }
212 ]
213 },
214 "doc": "Datos de sesion/identidad del cliente."
215 },
216 {
217 "name": "occurred_at",
218 "type": "string",
219 "doc": "ISO-8601 naive en hora local del proceso. Lo inyecta events.event.Event.__init__ en todos los eventos del monolito."
220 }
221 ]
222}
223Details
- Format
- JSON Schema
- Resource
- events
- Filename
- schema.json