|
20 | 20 | $rest = new \CR\tools\rest("https://rest.cleverreach.com/v2");
|
21 | 21 |
|
22 | 22 | 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!'); |
24 | 24 | }
|
25 | 25 |
|
26 | 26 | $token = $rest->post('/login',
|
|
31 | 31 | )
|
32 | 32 | );
|
33 | 33 |
|
34 |
| -if ($_GET['update_receivers']) { |
35 |
| - $update_receivers = $_GET['update_receivers']; |
36 |
| -} |
37 |
| - |
38 | 34 | $rest->setAuthMode("bearer", $token);
|
39 | 35 |
|
40 | 36 | $groups = $rest->get("/groups");
|
41 | 37 |
|
42 | 38 | $group_id = MODULE_FS_CLEVERREACH_INTERFACE_GROUP_ID;
|
43 | 39 |
|
44 | 40 | 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'); |
46 | 42 | }
|
47 | 43 |
|
| 44 | +$receivers = array(); |
| 45 | + |
48 | 46 | if (MODULE_FS_CLEVERREACH_INTERFACE_IMPORT_SUBSCRIBERS == 'true') {
|
49 | 47 |
|
50 |
| - $receivers = array(); |
51 | 48 |
|
52 | 49 | $manual_registered_customers = xtc_db_query("SELECT
|
53 | 50 | customers_id,
|
|
73 | 70 | );
|
74 | 71 | }
|
75 | 72 |
|
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%'"); |
77 | 74 | $customers_data = xtc_db_fetch_array($gender_query);
|
78 | 75 | $country = xtc_get_country_name($customers_data['country']);
|
79 | 76 |
|
|
93 | 90 | "company" => $customers_data["company"]
|
94 | 91 | ),
|
95 | 92 | "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 | + ); |
106 | 94 | }
|
107 | 95 | }
|
108 | 96 |
|
|
126 | 114 | "source" => STORE_NAME //optional
|
127 | 115 | );
|
128 | 116 |
|
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%'"); |
131 | 118 |
|
132 | 119 | if (xtc_db_num_rows($flagged_customers) > 0) {
|
133 | 120 | while ($customer = xtc_db_fetch_array($flagged_customers)) {
|
134 | 121 |
|
135 |
| - $receivers["postdata"][] = array( |
| 122 | + $receivers[] = array( |
136 | 123 | "email" => $order_row["email"],
|
137 | 124 | "activated" => strtotime($customer["registered"]),
|
138 | 125 | "registered" => strtotime($customer["registered"]),
|
|
149 | 136 | ),
|
150 | 137 | "orders" => $orders
|
151 | 138 | );
|
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(); |
188 | 139 | }
|
189 | 140 | }
|
190 | 141 | }
|
191 | 142 | }
|
192 | 143 |
|
193 | 144 | 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 | + } |
195 | 153 | } else {
|
196 |
| - die('No new receivers found'); |
| 154 | + die('Keine neuen Daten gefunden'); |
197 | 155 | }
|
198 | 156 | $receivers = array();
|
199 | 157 |
|
|
0 commit comments