Brummi1980 Posted January 23, 2021 Share Posted January 23, 2021 Hallo zusammen, ich baue mir zur Zeit einen OnlineShop, da wir Coronabedingt im Offlinegeschäft nicht tätig sein dürfen. Als WaWi nutzen wir Orgamax ein. Bisher hat auch alles soweit funktioniert oder ich konnte Lösungen in diversen Beiträgen finden. Für mein aktuelles Problem finde ich allerdings nichts aktuelles und hoffe hier auf eure Hilfe. Installierte PS-Version: 1.7.7 Problem: Der Lagerbestand bei Artikel mit Varianten kann nicht durch die Wawi verwaltet werden. Einzelne Artikel ohne Varianten ist das kein Problem. Ich habe gelesen das hier ein ähnlichen Fehler hatten. Allerdings handelte es sich bei den PS-Versionen um die 1.6 und man konnte Abhilfe mit der erweiterten Lagerverwaltung einstellen. In 1.7 ist es so anscheinend nicht mehr möglich. Gibt es in 1.7 was womit ich das Problem abhacken kann? LG Link to comment Share on other sites More sharing options...
JBW Posted January 24, 2021 Share Posted January 24, 2021 Natürlich kann Presta 1.7.7 die Bestände auf Variantenebene verwalten. Zumindest im Backoffice. Wenn das nicht klappt wird es wohl an der Integration der Orgamax WaWi liegen. Leider hast du uns nicht genau mitgeteilt was nicht funktioniert, Fehlermeldungen, Screenshots o.ä. Link to comment Share on other sites More sharing options...
Brummi1980 Posted January 24, 2021 Author Share Posted January 24, 2021 3 hours ago, JBW said: Natürlich kann Presta 1.7.7 die Bestände auf Variantenebene verwalten. Zumindest im Backoffice. Wenn das nicht klappt wird es wohl an der Integration der Orgamax WaWi liegen. Leider hast du uns nicht genau mitgeteilt was nicht funktioniert, Fehlermeldungen, Screenshots o.ä. Ja im Backoffice funktioniert die Verwaltung. Jedoch funktioniert der Bestandsabgleich mit der WaWi nicht. Das heißt wenn Orgamax die Artikelliste von Prestashop abruft um zu Prüfen ob die Artikel bereits im Shop gelistet sind, beachtet Orgamax nicht die Artikelnummern aus den Varianten und gibt aus das die entsprechenden Artikel nicht im Shop gelistet sind. Somit ist ein Bestandsabgleich auch nicht möglich. Ich habe mir gestern noch die Schnittstelle von Orgamx angesehen, hier werden die Varianten anscheinend wohl berücksichtig aber ich denke das hier ein Fehler in der Schnittstelle ist. Hier mal die entsprechenden CODE Teile aus der Shopschnittstelle, vielleicht sieht ja schon jemand hier einen Fehler. Morgen kontaktiere ich mal den Support bei Orgamax evtl. wurde die Schnittstelle ja für PS 1.7.7 noch nicht aktualisiert. // Variantenartikelnummer generieren if ($GLOBALS['attributes_import']) { if ($row['attributeId'] > 0) { $row['ArtikelnummerShop'] = generiereVariantenNummer($row['attributeId']); } } return $row; } /* Artikeldaten OMX -> Webshop */ function artikeldaten_orgamax_zu_shop() { $articleFile = file_get_contents('php://input'); if($articleFile != null && strlen($articleFile) > 0) { $articles = simplexml_load_string(($articleFile)); $amount_successfully_created = 0; $amount_articles = count($articles); foreach($articles as $article) { // Prüfen, ob Artikel im Webshop schon vorhanden ist $query = ' SELECT id_product FROM `' . _DB_PREFIX_ . 'product` WHERE reference = "' . mysqli_real_escape_string($GLOBALS['sql_con'], $article->ArtikelnummerWebshop) . '" '; $result = mysqli_query($GLOBALS['sql_con'], $query); $amount = mysqli_num_rows($result); if ($amount > 0) { continue; } /* Lagerbestände aktualisieren */ function setze_lagerbestand_im_shop() { // InputStream für Datei mit Artikeln und neuen Lagerbeständen öffnen $articleFile = file_get_contents('php://input'); // Anzahl Artikel und erfolgreich ersteller Artikel bereitstellen $amount_successfully_created = 0; $amount_articles = 0; // Prüfen ob Datei mit Artikeln erfolgreich bzw. überhaupt etwas übermittelt wurde if($articleFile != null && strlen($articleFile) > 0) { $articles = simplexml_load_string(($articleFile)); $amount_articles = count($articles); // Wenn Artikelvarianten genutzt werden, die Pseudo-Artikelnummer vorher für alle einmal generieren $articleVariants = array(); if($GLOBALS['attributes_import']) { $variantQuery = ' SELECT id_product_attribute, id_product FROM ' . _DB_PREFIX_ . 'product_attribute '; $result = mysqli_query($GLOBALS['sql_con'], $variantQuery); while($data = mysqli_fetch_assoc($result)) { $variant = array(); $variant['productId'] = $data['id_product']; $variant['attributeId'] = $data['id_product_attribute']; $variant['reference'] = generiereVariantenNummer($variant['attributeId']); $articleVariants[] = $variant; } } foreach($articles as $article) { $articleNr = $article->ArtikelnummerWebshop; $attributeID = 0; $product_id = -1; if ($GLOBALS['attributes_import']) { // id_product_attribute ermitteln $find_query = ' SELECT id_product_attribute AS attributeId, ' . _DB_PREFIX_ . 'product_attribute.id_product AS productId FROM ' . _DB_PREFIX_ . 'product_attribute WHERE reference = "' . mysqli_real_escape_string($GLOBALS['sql_con'], $articleNr) . '" '; $result = mysqli_query($GLOBALS['sql_con'], $find_query); if($result && mysqli_num_rows($result) == 1) { $result = mysqli_fetch_assoc($result); $product_id = $result['productId']; $attributeID = $result['attributeId']; } else { foreach($articleVariants as $variant) { if($variant['reference'] == $articleNr) { $product_id = $variant['productId']; $attributeID = $variant['attributeId']; break; } } } } if($product_id == -1) { $find_query = ' SELECT id_product FROM `' . _DB_PREFIX_ . 'product` WHERE reference = "' . mysqli_real_escape_string($GLOBALS['sql_con'], $articleNr) . '" '; $result_id = mysqli_query($GLOBALS['sql_con'], $find_query); $result_id = mysqli_fetch_assoc($result_id); $product_id = $result_id['id_product']; } if ($product_id > -1) { // ArtikelMenge einfügen oder aktualisieren $find_query = ' SELECT id_product FROM `' . _DB_PREFIX_ . 'stock_available` WHERE id_product = ' . $product_id . ' '; $result_count = mysqli_query($GLOBALS['sql_con'], $find_query); if (mysqli_num_rows($result_count) > 0) { $query = ' UPDATE `' . _DB_PREFIX_ . 'stock_available` SET quantity = "' . str_replace(',', '.', $article->LagerBestandAktuell) . '" WHERE id_product = "' . $product_id . '" AND id_product_attribute = ' . $attributeID . ' '; } else { $query = ' INSERT INTO `' . _DB_PREFIX_ . 'stock_available` (id_product, id_product_attribute, id_shop, id_shop_group, quantity, depends_on_stock, out_of_stock) VALUES (' . $product_id .', ' . $attributeID . ', 1, 0, ' . str_replace(',', '.', $article->LagerBestandAktuell) . ', 0, 2) '; } $result = mysqli_query($GLOBALS['sql_con'], $query); if($result) { $amount_successfully_created++; } } } } WriteXMLResult($amount_articles, $amount_successfully_created); Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now