Skip to content

Commit 2a2f6a1

Browse files
author
php-schubser
committed
feat:added update receivers button
1 parent b8e9435 commit 2a2f6a1

File tree

4 files changed

+73
-56
lines changed

4 files changed

+73
-56
lines changed

new_files/admin/includes/modules/system/fs_cleverreach_interface.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ public function display()
2323
'text' => '<br /><div align="center">' . xtc_button(BUTTON_SAVE).
2424
xtc_button_link(BUTTON_EXPORT, xtc_href_link("../interface/fs_cleverreach_interface.php")) .
2525
xtc_button_link(BUTTON_EXPORT_FILTER_AMAZON, xtc_href_link("../interface/fs_cleverreach_interface.php", 'export_filter_amazon=1'), 'name="export_filter_amazon"') .
26+
xtc_button_link(BUTTON_UPDATE_RECEIVERS, xtc_href_link("../interface/fs_cleverreach_interface.php", 'update_receivers=1'), 'name="update_receivers"') .
2627
xtc_button_link(BUTTON_CANCEL, xtc_href_link(FILENAME_MODULE_EXPORT, 'set=' . $_GET['set'] . '&module=fs_cleverreach_interface')) . "</div>"
2728
];
2829
}

new_files/interface/fs_cleverreach_interface.php

Lines changed: 68 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
11
<?php
2-
ini_set('display_errors', 1);
3-
ini_set('display_startup_errors', 1);
4-
error_reporting(E_ALL);
52

63
require_once('fs_cleverreach_interface_rest_client.php');
74
require("../includes/application_top_export.php");
@@ -34,6 +31,10 @@
3431
)
3532
);
3633

34+
if ($_GET['update_receivers']) {
35+
$update_receivers = $_GET['update_receivers'];
36+
}
37+
3738
$rest->setAuthMode("bearer", $token);
3839

3940
$groups = $rest->get("/groups");
@@ -44,62 +45,67 @@
4445
die('No groups found! Please create one in the Cleverreach backend');
4546
}
4647

47-
$receivers = array();
48+
if (MODULE_FS_CLEVERREACH_INTERFACE_IMPORT_SUBSCRIBERS == 'true') {
4849

49-
$manual_registered_customers = xtc_db_query("SELECT
50-
customers_id,
51-
customers_email_address as email,
52-
date_added as registered,
53-
customers_firstname as firstname,
54-
customers_lastname as lastname
55-
FROM " . TABLE_NEWSLETTER_RECIPIENTS . " WHERE mail_status = '1' ");
56-
57-
while ($customer = xtc_db_fetch_array($manual_registered_customers)) {
58-
$orders = array();
59-
$order_rows = xtc_db_query("SELECT o.orders_id, op.products_id, op.products_name, op.products_price, op.products_quantity from " . TABLE_ORDERS . " o JOIN " . TABLE_ORDERS_PRODUCTS . " op ON o.orders_id = op.orders_id WHERE customers_id = '" . $customer['customers_id'] . "' ORDER BY date_purchased ");
60-
while ($order_row = xtc_db_fetch_array($order_rows)) {
50+
$receivers = array();
6151

62-
$orders[] = array(
63-
"order_id" => $order_row["orders_id"], //required
64-
"product_id" => $order_row["products_id"], //optional
65-
"product" => $order_row["products_name"], //required
66-
"price" => $order_row["products_price"], //optional
67-
"currency" => "EUR", //optional
68-
"amount" => $order_row["products_quantity"], //optional
69-
"source" => STORE_NAME //optional
70-
);
71-
}
52+
$manual_registered_customers = xtc_db_query("SELECT
53+
customers_id,
54+
customers_email_address as email,
55+
date_added as registered,
56+
customers_firstname as firstname,
57+
customers_lastname as lastname
58+
FROM " . TABLE_NEWSLETTER_RECIPIENTS . " WHERE mail_status = '1' ");
7259

73-
$gender_query = xtc_db_query("SELECT c.customers_gender as gender, ab.entry_country_id as country, ab.entry_city as city, ab.entry_postcode as zip, ab.entry_street_address as street FROM " . TABLE_CUSTOMERS . " c JOIN ".TABLE_ADDRESS_BOOK." ab ON c.customers_id = ab.customers_id WHERE customers_id = '" . $customer['customers_id'] . "' AND c.customers_default_address_id = ab.address_book_id");
74-
$customers_data = xtc_db_fetch_array($gender_query);
75-
$country = xtc_get_country_name($customers_data['country']);
60+
while ($customer = xtc_db_fetch_array($manual_registered_customers)) {
61+
$orders = array();
62+
$order_rows = xtc_db_query("SELECT o.orders_id, op.products_id, op.products_name, op.products_price, op.products_quantity from " . TABLE_ORDERS . " o JOIN " . TABLE_ORDERS_PRODUCTS . " op ON o.orders_id = op.orders_id WHERE customers_id = '" . $customer['customers_id'] . "' ORDER BY date_purchased ");
63+
while ($order_row = xtc_db_fetch_array($order_rows)) {
7664

77-
$receivers[] = array(
78-
"email" => $customer["email"],
79-
"registered" => strtotime($customer["registered"]),
80-
"activated" => strtotime($customer["registered"]),
81-
"source" => STORE_NAME,
82-
"attributes" => array(
83-
"city" => $customer["city"],
84-
"street" => $customer["street"],
85-
"zip" => $customer["zip"],
86-
"country" => $country
87-
),
88-
"global_attributes" => array(
89-
"firstname" => $customer["firstname"],
90-
"lastname" => $customer["lastname"],
91-
"geschlecht" => $customers_data["gender"]
92-
),
93-
"orders" => $orders
94-
);
95-
96-
if (count($receivers) > 1000) {
97-
$rest->post("/groups.json/".$group_id."/receivers", $receivers);
98-
$receivers = array();
65+
$orders[] = array(
66+
"order_id" => $order_row["orders_id"], //required
67+
"product_id" => $order_row["products_id"], //optional
68+
"product" => $order_row["products_name"], //required
69+
"price" => $order_row["products_price"], //optional
70+
"currency" => "EUR", //optional
71+
"amount" => $order_row["products_quantity"], //optional
72+
"source" => STORE_NAME //optional
73+
);
74+
}
75+
76+
$gender_query = xtc_db_query("SELECT c.customers_gender as gender, ab.entry_country_id as country, ab.entry_city as city, ab.entry_postcode as zip, ab.entry_street_address as street, ab.entry_company as company FROM " . TABLE_CUSTOMERS . " c JOIN ".TABLE_ADDRESS_BOOK." ab ON c.customers_id = ab.customers_id WHERE customers_id = '" . $customer['customers_id'] . "' AND c.customers_default_address_id = ab.address_book_id");
77+
$customers_data = xtc_db_fetch_array($gender_query);
78+
$country = xtc_get_country_name($customers_data['country']);
79+
80+
$receivers[] = array(
81+
"email" => $customer["email"],
82+
"registered" => strtotime($customer["registered"]),
83+
"activated" => strtotime($customer["registered"]),
84+
"source" => STORE_NAME,
85+
"attributes" => array(
86+
"city" => $customer["city"],
87+
"street" => $customer["street"],
88+
"zip" => $customer["zip"],
89+
"country" => $country,
90+
"firstname" => $customer["firstname"],
91+
"lastname" => $customer["lastname"],
92+
"geschlecht" => $customers_data["gender"],
93+
"company" => $customers_data["company"]
94+
),
95+
"orders" => $orders
96+
);
97+
98+
if ($update_receivers) {
99+
$deleted = $rest->delete("/groups.json/".$group_id."/receivers/".$customer["email"]);
100+
}
101+
102+
if (count($receivers) > 1000) {
103+
$rest->post("/groups.json/".$group_id."/receivers", $receivers);
104+
$receivers = array();
105+
}
99106
}
100107
}
101108

102-
103109
if (MODULE_FS_CLEVERREACH_INTERFACE_IMPORT_BUYERS == 'true') {
104110
$where_clause = '';
105111
if (isset($_GET['export_filter_amazon']) && $_GET['export_filter_amazon'] == 1) {
@@ -131,7 +137,7 @@
131137
"activated" => strtotime($customer["registered"]),
132138
"registered" => strtotime($customer["registered"]),
133139
"source" => STORE_NAME,
134-
"global_attributes" => array(
140+
"attributes" => array(
135141
"nachname" => utf8_encode($order_row["firstname"]),
136142
"vorname" => utf8_encode($order_row["lastname"]),
137143
"m__nnlich_weiblich" => $customer["gender"],
@@ -143,6 +149,10 @@
143149
),
144150
"orders" => $orders
145151
);
152+
153+
if ($update_receivers) {
154+
$rest->delete("/groups.json/".$group_id."/receivers/".$order_row["email"]);
155+
}
146156

147157
if (count($receivers) > 1000) {
148158
$rest->post("/groups.json/".$group_id."/receivers", $receivers);
@@ -155,7 +165,7 @@
155165
"activated" => strtotime($order_row["date_purchased"]),
156166
"registered" => strtotime($order_row["date_purchased"]),
157167
"source" => STORE_NAME,
158-
"global_attributes" => array(
168+
"attributes" => array(
159169
"nachname" => utf8_encode($order_row["firstname"]),
160170
"vorname" => utf8_encode($order_row["lastname"]),
161171
"m__nnlich_weiblich" => $customer["gender"],
@@ -168,6 +178,10 @@
168178
"orders" => $orders
169179
);
170180

181+
if ($update_receivers) {
182+
$rest->delete("/groups.json/".$group_id."/receivers/".$order_row["email"]);
183+
}
184+
171185
if (count($receivers) > 1000) {
172186
$rest->post("/groups.json/".$group_id."/receivers", $receivers);
173187
$receivers = array();

new_files/lang/english/modules/system/fs_cleverreach_interface.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,5 @@
1717
define('MODULE_FS_CLEVERREACH_INTERFACE_GROUP_ID_TITLE', 'Cleverreach Group ID');
1818
define('MODULE_FS_CLEVERREACH_INTERFACE_GROUP_ID_DESC', '');
1919

20-
define('BUTTON_EXPORT_FILTER_AMAZON', 'Filter Amazon customers');
20+
define('BUTTON_EXPORT_FILTER_AMAZON', 'Filter Amazon customers');
21+
define('BUTTON_UPDATE_RECEIVERS', 'Update receivers');

new_files/lang/german/modules/system/fs_cleverreach_interface.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,5 @@
1919
define('MODULE_FS_CLEVERREACH_INTERFACE_GROUP_ID_TITLE', 'Cleverreach Gruppen-ID');
2020
define('MODULE_FS_CLEVERREACH_INTERFACE_GROUP_ID_DESC', '');
2121

22-
define('BUTTON_EXPORT_FILTER_AMAZON', 'Amazon Kunden ausfiltern');
22+
define('BUTTON_EXPORT_FILTER_AMAZON', 'Amazon Kunden ausfiltern');
23+
define('BUTTON_UPDATE_RECEIVERS', 'Update Empf&auml;ger');

0 commit comments

Comments
 (0)