Skip to content

Commit 432e88b

Browse files
author
php-schubser
committed
2 parents 7ee1819 + 370a9a8 commit 432e88b

File tree

7 files changed

+69
-74
lines changed

7 files changed

+69
-74
lines changed

docs/install.md

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,30 @@
77
1. Loggen Sie sich in den Admin-Bereich ein
88
2. Öffnen Sie die **Menüoption Module > Systemmodule**.
99
3. Wählen Sie das Cleverreach Interface und klicken Sie auf Installieren.
10+
4. Im Ordner **/interface** eine **.htaccess**-Datei mit folgendem Inhalt erstellen
11+
12+
```sh
13+
# -----------------------------------------------------------------------------------------
14+
# $Id: .htaccess 11767 2020-09-10 15:29:44Z GTB $
15+
#
16+
# modified eCommerce Shopsoftware
17+
# http://www.modified-shop.org
18+
#
19+
# Copyright (c) 2009 - 2016 [www.modified-shop.org]
20+
# -----------------------------------------------------------------------------------------
21+
# based on:
22+
# (c) 2000-2001 The Exchange Project
23+
# (c) 2002-2003 osCommerce (.htaccess,v 1.4 2001/04/22); www.oscommerce.com
24+
# (c) 2003 nextcommerce (.htaccess,v 1.3 2003/08/13); www.nextcommerce.org
25+
# (c) 2003 XT-Commerce (.htaccess,v 1.3 2003/08/13); www.xt-commerce.com
26+
#
27+
# Released under the GNU General Public License
28+
# -----------------------------------------------------------------------------------------
29+
#
30+
# This is used with Apache WebServers
31+
# The following blocks direct HTTP requests in this directory recursively
32+
33+
Options -Indexes
34+
```
1035

11-
---
1236

13-
#### Für dieses Modul müssen keine Änderungen vorgenommen werden.

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@ public function display()
2222
return [
2323
'text' => '<br /><div align="center">' . xtc_button(BUTTON_SAVE).
2424
xtc_button_link(BUTTON_EXPORT, xtc_href_link("../interface/fs_cleverreach_interface.php")) .
25-
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"') .
2725
xtc_button_link(BUTTON_CANCEL, xtc_href_link(FILENAME_MODULE_EXPORT, 'set=' . $_GET['set'] . '&module=fs_cleverreach_interface')) . "</div>"
2826
];
2927
}

new_files/interface/.htaccess

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# -----------------------------------------------------------------------------------------
2+
# $Id: .htaccess 11767 2020-09-10 15:29:44Z GTB $
3+
#
4+
# modified eCommerce Shopsoftware
5+
# http://www.modified-shop.org
6+
#
7+
# Copyright (c) 2009 - 2016 [www.modified-shop.org]
8+
# -----------------------------------------------------------------------------------------
9+
# based on:
10+
# (c) 2000-2001 The Exchange Project
11+
# (c) 2002-2003 osCommerce (.htaccess,v 1.4 2001/04/22); www.oscommerce.com
12+
# (c) 2003 nextcommerce (.htaccess,v 1.3 2003/08/13); www.nextcommerce.org
13+
# (c) 2003 XT-Commerce (.htaccess,v 1.3 2003/08/13); www.xt-commerce.com
14+
#
15+
# Released under the GNU General Public License
16+
# -----------------------------------------------------------------------------------------
17+
#
18+
# This is used with Apache WebServers
19+
# The following blocks direct HTTP requests in this directory recursively
20+
21+
Options -Indexes

new_files/interface/fs_cleverreach_interface.php

Lines changed: 17 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
$rest = new \CR\tools\rest("https://rest.cleverreach.com/v2");
2121

2222
if (trim(MODULE_FS_CLEVERREACH_INTERFACE_CLIENT_ID) == '' || trim(MODULE_FS_CLEVERREACH_INTERFACE_USERNAME) == '' || trim(MODULE_FS_CLEVERREACH_INTERFACE_PASSWORD) == '') {
23-
die('Please enter all login credentials for Cleverreach!');
23+
die('Bitte geben Sie alle Anmeldedaten für Cleverreach ein!');
2424
}
2525

2626
$token = $rest->post('/login',
@@ -31,23 +31,20 @@
3131
)
3232
);
3333

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

4036
$groups = $rest->get("/groups");
4137

4238
$group_id = MODULE_FS_CLEVERREACH_INTERFACE_GROUP_ID;
4339

4440
if (!isset($group_id)) {
45-
die('No groups found! Please create one in the Cleverreach backend');
41+
die('Keine Empfänger-Gruppen gefunden! Bitte erstellen Sie eine im Cleverreach-Backend');
4642
}
4743

44+
$receivers = array();
45+
4846
if (MODULE_FS_CLEVERREACH_INTERFACE_IMPORT_SUBSCRIBERS == 'true') {
4947

50-
$receivers = array();
5148

5249
$manual_registered_customers = xtc_db_query("SELECT
5350
customers_id,
@@ -73,7 +70,7 @@
7370
);
7471
}
7572

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");
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, ab.entry_company as company FROM " . TABLE_CUSTOMERS . " c JOIN ".TABLE_ADDRESS_BOOK." ab ON c.customers_id = ab.customers_id WHERE c.customers_id = '" . $customer['customers_id'] . "' AND c.customers_default_address_id = ab.address_book_id AND c.customers_email_address NOT LIKE '%@marketplace.amazon.de%'");
7774
$customers_data = xtc_db_fetch_array($gender_query);
7875
$country = xtc_get_country_name($customers_data['country']);
7976

@@ -93,16 +90,7 @@
9390
"company" => $customers_data["company"]
9491
),
9592
"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-
}
93+
);
10694
}
10795
}
10896

@@ -126,13 +114,12 @@
126114
"source" => STORE_NAME //optional
127115
);
128116

129-
$flagged_customers = xtc_db_query(" SELECT c.customers_date_added as registered, c.customers_gender as gender, c.customers_dob as dob FROM " . TABLE_CUSTOMERS . " c WHERE c.customers_id = '" . $order_row["customers_id"] . "' " . $where_clause);
130-
$receivers = array('postdata' => array());
117+
$flagged_customers = xtc_db_query("SELECT c.customers_date_added as registered, c.customers_gender as gender, c.customers_dob as dob FROM " . TABLE_CUSTOMERS . " c WHERE c.customers_id = '" . $order_row["customers_id"] . "' AND customers_email_address NOT LIKE '%@marketplace.amazon.de%'");
131118

132119
if (xtc_db_num_rows($flagged_customers) > 0) {
133120
while ($customer = xtc_db_fetch_array($flagged_customers)) {
134121

135-
$receivers["postdata"][] = array(
122+
$receivers[] = array(
136123
"email" => $order_row["email"],
137124
"activated" => strtotime($customer["registered"]),
138125
"registered" => strtotime($customer["registered"]),
@@ -149,51 +136,22 @@
149136
),
150137
"orders" => $orders
151138
);
152-
153-
if ($update_receivers) {
154-
$rest->delete("/groups.json/".$group_id."/receivers/".$order_row["email"]);
155-
}
156-
157-
if (count($receivers) > 1000) {
158-
$rest->post("/groups.json/".$group_id."/receivers", $receivers);
159-
$receivers = array();
160-
}
161-
}
162-
} else {
163-
$receivers["postdata"][] = array(
164-
"email" => $order_row["email"],
165-
"activated" => strtotime($order_row["date_purchased"]),
166-
"registered" => strtotime($order_row["date_purchased"]),
167-
"source" => STORE_NAME,
168-
"attributes" => array(
169-
"nachname" => utf8_encode($order_row["firstname"]),
170-
"vorname" => utf8_encode($order_row["lastname"]),
171-
"m__nnlich_weiblich" => $customer["gender"],
172-
"geburtsdatum" => $customer['dob'],
173-
"ort" => utf8_encode($order_row["city"]),
174-
"street" => utf8_encode($order_row["street"]),
175-
"zip" => $order_row["zip"],
176-
"country" => utf8_encode($order_row["country"])
177-
),
178-
"orders" => $orders
179-
);
180-
181-
if ($update_receivers) {
182-
$rest->delete("/groups.json/".$group_id."/receivers/".$order_row["email"]);
183-
}
184-
185-
if (count($receivers) > 1000) {
186-
$rest->post("/groups.json/".$group_id."/receivers", $receivers);
187-
$receivers = array();
188139
}
189140
}
190141
}
191142
}
192143

193144
if (count($receivers) > 0) {
194-
$rest->post("/groups.json/".$group_id."/receivers", $receivers);
145+
foreach ($receivers as $receiver) {
146+
$response = $rest->get("/groups.json/".$group_id."/receivers/", $receiver["email"]);
147+
if(!$response) {
148+
$rest->post("/groups.json/".$group_id."/receivers", $receiver);
149+
} else {
150+
$rest->put("/groups.json/".$group_id."/receivers/".$receiver["email"], json_encode($receiver));
151+
}
152+
}
195153
} else {
196-
die('No new receivers found');
154+
die('Keine neuen Daten gefunden');
197155
}
198156
$receivers = array();
199157

new_files/interface/fs_cleverreach_interface_rest_client.php

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,12 +72,13 @@ public function get($path, $data = false, $mode = "get")
7272
{
7373
$this->resetDebug();
7474
if (is_string($data)) {
75-
if (!$data = json_decode($data)) {
76-
throw new \Exception("data is string but no JSON");
75+
if (is_string($data)) {
76+
$url = sprintf("%s%s", $this->url . $path, ($data ? $data : ""));
77+
} else {
78+
$url = sprintf("%s?%s", $this->url . $path, ($data ? http_build_query($data) : ""));
7779
}
7880
}
7981

80-
$url = sprintf("%s?%s", $this->url . $path, ($data ? http_build_query($data) : ""));
8182
$this->debug("url", $url);
8283

8384
$curl = curl_init($url);
@@ -278,7 +279,7 @@ private function returnResult($in, $header = false)
278279
}
279280

280281
if ($this->throwExceptions) {
281-
throw new \Exception('' . $header["http_code"] . ';' . $message);
282+
// throw new \Exception('' . $header["http_code"] . ';' . $message);
282283
}
283284
$in = null;
284285

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

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,3 @@
1616
define('MODULE_FS_CLEVERREACH_INTERFACE_IMPORT_BUYERS_DESC', '');
1717
define('MODULE_FS_CLEVERREACH_INTERFACE_GROUP_ID_TITLE', 'CleverReach Group ID');
1818
define('MODULE_FS_CLEVERREACH_INTERFACE_GROUP_ID_DESC', '');
19-
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: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?php
22
define('MODULE_FS_CLEVERREACH_INTERFACE_TITLE', 'CleverReach Interface © by <a href="https://www.shopbetreuung.com/" target="_blank" style="color: #007bff; font-size: inherit; font-weight: inherit;">FishnetServices</a>');
3-
define('MODULE_FS_CLEVERREACH_INTERFACE_LONG_DESCRIPTION', 'Dieses Modul f&uuml;gt eine Schnittstelle zum Newsletteranbieter <a href="http://www.cleverreach.de/?rk=xcetomni" target="_blank"><strong>CleverReach</strong></a> hinzu. Im Admin k&ouml;nnen Sie dann unter <strong>Module</strong> -> <strong>System Module</strong> Ihre Daten eintragen. Es ist der Export in eine Kundengruppe m&oouml;glich.');
3+
define('MODULE_FS_CLEVERREACH_INTERFACE_LONG_DESCRIPTION', 'Dieses Modul f&uuml;gt eine Schnittstelle zum Newsletteranbieter <a href="http://www.cleverreach.de/?rk=xcetomni" target="_blank"><strong>CleverReach</strong></a> hinzu. Im Admin k&ouml;nnen Sie dann unter <strong>Module</strong> -> <strong>System Module</strong> Ihre Daten eintragen. Es ist der Export in eine Kundengruppe m&ouml;glich.');
44
define('MODULE_FS_CLEVERREACH_INTERFACE_STATUS_TITLE', 'Modul aktivieren?');
55
define('MODULE_FS_CLEVERREACH_INTERFACE_STATUS_DESC', 'Modul status');
66

@@ -16,6 +16,3 @@
1616
define('MODULE_FS_CLEVERREACH_INTERFACE_IMPORT_BUYERS_DESC', '');
1717
define('MODULE_FS_CLEVERREACH_INTERFACE_GROUP_ID_TITLE', 'CleverReach Gruppen-ID');
1818
define('MODULE_FS_CLEVERREACH_INTERFACE_GROUP_ID_DESC', '');
19-
20-
define('BUTTON_EXPORT_FILTER_AMAZON', 'Amazon Kunden ausfiltern');
21-
define('BUTTON_UPDATE_RECEIVERS', 'Update Empf&auml;ger');

0 commit comments

Comments
 (0)