private function runHelloCashPull(&$messages) { if (!defined('HELLOCASH_SYNC_IN_PROGRESS')) { define('HELLOCASH_SYNC_IN_PROGRESS', true); } $token = trim($this->params->get('api_token', '')); if (empty($token)) { $messages[] = "FEHLER: Kein API-Token konfiguriert."; return; } $db = JFactory::getDbo(); // 1. Auto-Mapping ausführen $this->runBulkAutoMapping($token, $db, $messages); // 2. Alle Mappings aus der DB laden (product_id => hellocash_id) $query = $db->getQuery(true) ->select(array($db->quoteName('product_id'), $db->quoteName('hellocash_id'))) ->from($db->quoteName('#__hikashop_hellocash_map')); $db->setQuery($query); $mappings = $db->loadObjectList(); if (empty($mappings)) { $messages[] = "Keine verknüpften Artikel vorhanden."; return; } $hcToHikaMap = array(); foreach ($mappings as $m) { $hcToHikaMap[(int)$m->hellocash_id] = (int)$m->product_id; } $updatedCount = 0; $headers = array("Authorization: Bearer " . $token, "Accept: application/json"); // 3. Bestände seitenweise von helloCash abrufen (100 Artikel pro Request) for ($page = 1; $page <= 25; $page++) { $url = "https://api.hellocash.business/api/v2/articles?limit=100&page=" . $page; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); $response = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if ($httpCode == 429) { usleep(1500000); $page--; continue; } if ($httpCode != 200 || empty($response)) { break; } $data = json_decode($response, true); $articles = isset($data['data']) ? $data['data'] : (is_array($data) ? $data : array()); if (empty($articles)) { break; } foreach ($articles as $art) { $hcId = isset($art['id']) ? (int)$art['id'] : 0; if ($hcId <= 0 || !isset($hcToHikaMap[$hcId])) { continue; } $stock = null; if (isset($art['stocks'])) $stock = (int)$art['stocks']; elseif (isset($art['stock'])) $stock = (int)$art['stock']; if ($stock !== null) { $pId = $hcToHikaMap[$hcId]; $updateQuery = $db->getQuery(true) ->update($db->quoteName('#__hikashop_product')) ->set($db->quoteName('product_quantity') . ' = ' . $stock) ->where($db->quoteName('product_id') . ' = ' . $pId); $db->setQuery($updateQuery); try { $db->execute(); $updatedCount++; } catch (Exception $e) {} } } if (count($articles) < 100) { break; } usleep(100000); } // Kompakte Erfolgsmeldung ohne unendliche Einzelausgaben $messages[] = "SYNC FERTIG: Insgesamt " . $updatedCount . " Artikelbestände von helloCash nach HikaShop synchronisiert."; }

Produkt Kategorie

27,60 €
49,00 € 220/BR minoSharp Schleifer Global
16,00 € 222 Ersatzrolle weiss / Schleifer 220/BR
25,00 € 222/3 Rollenset für 220BR + 220GB
16,00 € 223 Ersatzrolle pink / Schleifer 220/BR
69,00 € 440/BR minoSharp Schleifer Universal
18,00 € 444 Ersatzrolle weiss / Schleifer 440/BR
29,00 € 444/5 Rollenset für 440BR + 440GB
18,00 € 445 Ersatzrolle pink / Schleifer 440/BR
79,00 € 459 minoSharp Schleifstein 240, grün
99,00 € 460 minoSharp Schleifstein 1000, braun
119,00 € 461 minoSharp Schleifstein 6000, beige
9,90 € 463 minoSharp Schleifhilfe 2 Größen
138,00 € 471 minoSharp Schleifstein 220/1000
194,00 € 472 minoSharp Schleifstein 1000/8000
15,90 € 503 minoSharp Clip-on Schleifhilfe 2 Größen
79,00 € 550/BR minoSharp PLUS 3 Universal
19,00 € 555 Ersatzrolle blau / Schleifer 550/BR
44,00 € 555/7 Rollenset für 550BR + 550GB
19,00 € 556 Ersatzrolle braun / Schleifer 550/BR
19,00 € 557 Ersatzrolle gelb / Schleifer 550/GB
138,00 € AS-01 Santoku, 16,5 cm
149,00 € AS-03 Kochmesser, 21 cm
105,00 € AS-04 Universalmesser, 13,5 cm
144,00 € AS-05 Sashimimesser, 24 cm
138,00 € BD-01 Schälmesser, 8 cm
143,00 € BD-02 Universalmesser, 12 cm
163,00 € BD-03 Kleines Kochmesser, 14,3 cm
219,00 € BD-04 Santokumesser, 16,5 cm
233,00 € BD-05 Kochmesser, 20 cm
209,00 € BD-07 Sashimi, 21 cm
213,00 € BD-08 Bunkamesser, 16,4 cm
229,00 € BD-09 Bunkamesser, 20cm
259,00 € BD-10 Nakiri Messer, 17cm
9,95 € Böker Cordura-Etui Optima
54,95 € BÖKER CORE PROFESSIONAL SPICKMESSER
29,95 € Böker Leder-Etui Schwarz Groß
4,80 € Böker Logo Baum
Gratis | Kostenlos Böker Plus Mini D.A.D. 10 verfügbar
9,95 € Böker Plus Nylon-Etui
4,80 € Böker Red Tree Patch
9,95 € Böker Small Knife Holder Set
8,40 € Clip
42,00 € D-101 Gemüsemesser, 13 cm
29,95 € Etui Böker Französisches Leder-Etui Schwarz Groß
34,96 € HAMBURGER POUCH
185,00 € Hogue Deka 3.25 WC Flat Dark Earth 5 verfügbar
25,96 € LEDER-ETUI SCHWARZ KLEIN
Ergebnisse 1 – 48 von 2485