solidus_meta 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/app/models/solidus_meta/event.rb +20 -13
- data/lib/solidus_meta/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 044a17f1c1fdef34776d69dbe95547093d93d73f43c763a7a3f555f2d8e5535f
|
|
4
|
+
data.tar.gz: 33591806f54b6c78a27d6ad43392831fd6c902116558fa2d5208a59c758b9fb6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ef0cc87a051cab5febdf71dce909f22564cfd89b8a273485d9838b388b461e3d47582ad00494f791c260126d2f9df3cfa40db66d9b080958ef084f1d30eecd72
|
|
7
|
+
data.tar.gz: 1b59ad6378d171953d54da71aab06bf74ea17b54b1a969910cd426ec1216da24cbed70daf1e4ef660cf1486ee713467ad8c0dd7be37cf03395609777a8a0a3f6
|
data/README.md
CHANGED
|
@@ -44,7 +44,7 @@ E dispare o `EventJob` nos pontos do fluxo da loja. O `meta_tracking_data` lê o
|
|
|
44
44
|
```ruby
|
|
45
45
|
SolidusMeta::EventJob.perform_later("AddToCart", line_item_id: line_item.id, quantity:, **meta_tracking_data)
|
|
46
46
|
SolidusMeta::EventJob.perform_later("InitiateCheckout", order_id: order.id, **meta_tracking_data)
|
|
47
|
-
SolidusMeta::EventJob.perform_later("AddPaymentInfo",
|
|
47
|
+
SolidusMeta::EventJob.perform_later("AddPaymentInfo", order_id: order.id, **meta_tracking_data)
|
|
48
48
|
SolidusMeta::EventJob.perform_later("Purchase", order_id: order.id, **meta_tracking_data)
|
|
49
49
|
```
|
|
50
50
|
|
|
@@ -54,4 +54,4 @@ O `event_time` enviado à Meta é o momento em que o job foi enfileirado.
|
|
|
54
54
|
|
|
55
55
|
### Adicionando um evento
|
|
56
56
|
|
|
57
|
-
Inclua o nome em `SolidusMeta::Event::EVENTS` e crie um método privado em `SolidusMeta::Event` com o nome em snake_case (`ViewContent` → `view_content`). Ele recebe as opções passadas ao job, define `@order` e retorna `
|
|
57
|
+
Inclua o nome em `SolidusMeta::Event::EVENTS` e crie um método privado em `SolidusMeta::Event` com o nome em snake_case (`ViewContent` → `view_content`). Ele recebe as opções passadas ao job, define `@order` e retorna `path` e, opcionalmente, `event_id`, `fallback` e `custom_data` (que sobrescreve os campos padrão). Sem `event_id`, o id é `<número do pedido>-<event_time>`, então cada disparo conta como um evento separado. Defina um `event_id` fixo quando o evento só pode contar uma vez por pedido, como o `Purchase`.
|
|
@@ -11,11 +11,12 @@ module SolidusMeta
|
|
|
11
11
|
def track(event_name, cookies_meta:, ahoy_visit_id: nil, event_time: Time.current, **options)
|
|
12
12
|
raise Error, "evento não suportado: #{event_name}" unless EVENTS.include?(event_name)
|
|
13
13
|
event = send(event_name.underscore, **options)
|
|
14
|
+
event_id = event[:event_id] || "#{order.number}-#{event_time.to_time.to_i}"
|
|
14
15
|
|
|
15
16
|
@client.send_event(
|
|
16
17
|
event_name,
|
|
17
18
|
event_time:,
|
|
18
|
-
event_id
|
|
19
|
+
event_id:,
|
|
19
20
|
event_source_url: File.join(SolidusMeta.config.store_url(order.store), event[:path]),
|
|
20
21
|
user_data: user_data(cookies_meta, ahoy_visit_id, fallback: event[:fallback]),
|
|
21
22
|
custom_data: {
|
|
@@ -37,7 +38,7 @@ module SolidusMeta
|
|
|
37
38
|
@order = line_item.order
|
|
38
39
|
|
|
39
40
|
{
|
|
40
|
-
event_id: "#{line_item.id}
|
|
41
|
+
event_id: "#{line_item.id}-#{line_item.updated_at.to_i}",
|
|
41
42
|
path: "carrinho",
|
|
42
43
|
fallback: "sem usuário",
|
|
43
44
|
custom_data: {
|
|
@@ -52,23 +53,22 @@ module SolidusMeta
|
|
|
52
53
|
@order = Spree::Order.find(order_id)
|
|
53
54
|
|
|
54
55
|
{
|
|
55
|
-
event_id: order.number,
|
|
56
56
|
path: "checkout/address/edit",
|
|
57
|
-
custom_data: {
|
|
57
|
+
custom_data: {
|
|
58
|
+
num_items: order.line_items.count
|
|
59
|
+
}
|
|
58
60
|
}
|
|
59
61
|
end
|
|
60
62
|
|
|
61
|
-
def add_payment_info(
|
|
62
|
-
|
|
63
|
-
@order = payment.order
|
|
63
|
+
def add_payment_info(order_id:)
|
|
64
|
+
@order = Spree::Order.find(order_id)
|
|
64
65
|
|
|
65
66
|
{
|
|
66
|
-
event_id: order.number,
|
|
67
67
|
path: "checkout/payment",
|
|
68
68
|
custom_data: {
|
|
69
|
-
currency:
|
|
70
|
-
value:
|
|
71
|
-
content_id:
|
|
69
|
+
currency: "BRL",
|
|
70
|
+
value: order.total.to_f,
|
|
71
|
+
content_id: order.id
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
74
|
end
|
|
@@ -76,7 +76,10 @@ module SolidusMeta
|
|
|
76
76
|
def purchase(order_id:)
|
|
77
77
|
@order = Spree::Order.find(order_id)
|
|
78
78
|
|
|
79
|
-
{
|
|
79
|
+
{
|
|
80
|
+
event_id: order.number,
|
|
81
|
+
path: "pedidos"
|
|
82
|
+
}
|
|
80
83
|
end
|
|
81
84
|
|
|
82
85
|
def user_data(cookies_meta, ahoy_visit_id, fallback: nil)
|
|
@@ -112,7 +115,11 @@ module SolidusMeta
|
|
|
112
115
|
end
|
|
113
116
|
|
|
114
117
|
def content_line_item(line_item, quantity)
|
|
115
|
-
{
|
|
118
|
+
{
|
|
119
|
+
id: line_item.sku,
|
|
120
|
+
quantity:,
|
|
121
|
+
item_price: line_item.price.to_f
|
|
122
|
+
}
|
|
116
123
|
end
|
|
117
124
|
|
|
118
125
|
def address
|
data/lib/solidus_meta/version.rb
CHANGED