|
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