hansjuerg.arnold Posted October 22, 2014 Share Posted October 22, 2014 Hallo zusammen In meinem Shop (1.6.0.9) habe ich Artikel mit Varianten, wie FARBE und LÄNGE. Die einzelnen Basisartikel haben für sich eine Artikelnummer. Lässt sich die finale Artikelnummer während dem Bestellprozess in Abhängigkeit der gewählten Variante generieren ? Artikel: Holz, Blech, Gummi Farben (als Variante) schwarz, braun, gelb Länge (als Variante) 2m, 3m, 4m Die finale Artikelnummer sollte in der Art wie folgt aussehen: Holz-rot-2 Kann ich das mit PS machen? Beste Grüsse Hansjürg Link to comment Share on other sites More sharing options...
thepan Posted October 22, 2014 Share Posted October 22, 2014 Du kannst jeder Kombination manuell eine Artikelnummer hinzufügen. Eine automatische Generierung gibt es nicht, es sei den du findest ein Modul dafür. Habe schon mal gesucht, aber leider nichts gefunden. Link to comment Share on other sites More sharing options...
hansjuerg.arnold Posted October 22, 2014 Author Share Posted October 22, 2014 Ich danke Dir für die schnelle Antwort. Hat man ein paar hundert Artikel mit mit ein paar Varianten sieht das nach ziemlich viel Arbeit aus. Gibt es hierfür bzw. für Deinen Vorschlag eine effiziente Lösung? Beste Grüsse Hansjürg Link to comment Share on other sites More sharing options...
thepan Posted October 22, 2014 Share Posted October 22, 2014 Versuch mal den Prestashop Manager, den gibt es auch als Testversion: LINK Hab den schon lange nicht mehr benutzt, aber Ich glaube da kann man alle Artikel Nr in einer Tabelle editieren und dann in die Datenbank pushen. 1 Link to comment Share on other sites More sharing options...
Mutabor Posted October 22, 2014 Share Posted October 22, 2014 (edited) Ich danke Dir für die schnelle Antwort. Hat man ein paar hundert Artikel mit mit ein paar Varianten sieht das nach ziemlich viel Arbeit aus. Gibt es hierfür bzw. für Deinen Vorschlag eine effiziente Lösung? Beste Grüsse Hansjürg Hallo Hansjürg, wieso nutzt du nicht den Artikelimport via CSV-Datei und reizt einfach Excel dabei ein bißchen aus? Artikel: Holz, Blech, Gummi Farben (als Variante) schwarz, braun, gelb Länge (als Variante) 2m, 3m, 4m Die finale Artikelnummer sollte in der Art wie folgt aussehen: Holz-rot-2 Artikel Farbe Länge Artikel-Nr. Holz rot 2 Holz-rot-2 Holz rot 3 Holz-rot-3 Holz rot 4 Holz-rot-4 Das Feld Artikel-Nr. generierst du mit dem Excel-Befehler verketten, und zwar so: =VERKETTEN(A2;"-";B2;"-";C2) Die Zellenmatrix kann natürlich anders lauten, je nachdem, wieviele Spalten deine Import-Tabelle hat. Statt des Semikolons gehen auch ein doppeltes Ampersand (&&). Dieser Befehl wird dann einfach - "dynamisch" - auf einen Rutsch in die folgenden Zellen kopiert. Bevor du dann allerdings die Datei importierst, muss diese Formel-Spalte in eine normale Testspalte umgewandelt werden. Dazu klickst du einfach auf den Spaltename zur Markierung der ganzen Spalte und klickst dann im Menü Bearbeiten zunächst auf kopieren (alternativ Tastenkombination STRG+C) und anschließend nach einem Mausklick rechts wählst du Inhalte einfügen ... und änderst die Standardauswahl "Alles" auf "Werte". Danach ist die Importdatei, die ja wahrscheinlich bei dir noch andere Felder enthält, in Bezug auf die Artikel-Nr. fertig und du kannst sie als CSV-Datei abspeichern. Wichtig ist nur, dass du diese Funktion nicht in einer bereits bestehenden CSV-Datei anwendest, da das eine reine Textversion ist und Excel-Befehle hier nicht funktionieren. Gruß Mutabor Edited October 22, 2014 by Mutabor (see edit history) 1 Link to comment Share on other sites More sharing options...
hansjuerg.arnold Posted October 22, 2014 Author Share Posted October 22, 2014 Hallo Mutabor Das mit dem Excel - Import gefällt mir sehr, funktioniert auch in den Grundzügen, ausser dass nich neu Kategorien, bestehend aus Zahlen habe.... Besten Dank Hansjürg Link to comment Share on other sites More sharing options...
Don Cappello Posted February 25, 2016 Share Posted February 25, 2016 Hallo, ich bin gerade auch auf dieses Problem gestoßen. Allerdings habe ich bisher mit JTL gearbeitet und bin es nicht gewohnt, mit Tabellen solche aufwendigen Artikelnummern zu generieren. Mich wundert es schon etwas, dass solch eine elementare Funktion nicht im Prestashop 1.6.x.x integriert wurde. Schließlich müssen Artikelnummern bei fast jedem Marktplatz eindeutig sein. Vielleicht gibt es ja doch schon etwas neues. Gruß Domenico. Link to comment Share on other sites More sharing options...
eleazar Posted February 25, 2016 Share Posted February 25, 2016 Prestashop erzeugt natürlich automatisch eindeutige Artikelnummern. Nur ging es hier um ein ganz besonderes Format. Link to comment Share on other sites More sharing options...
Don Cappello Posted February 25, 2016 Share Posted February 25, 2016 Hallo, eigentlich habe ich auch mein eigenes System bei der Vergabe von Artikelnummern. Wenn ich unter den Varianten nachsehe, haben jedoch alle die Artikelnummer des Vaters. Gruß Domenico Link to comment Share on other sites More sharing options...
eleazar Posted February 25, 2016 Share Posted February 25, 2016 Ich glaube, da liegt ein Missverständnis vor: ID = (fortlaufend) hochgezählte, eindeutige interne Nummer der Datenbank-Tabelle ps_product Reference (dt Artikel-Nr.) = frei definierbare beliebig lange Artikel-Nummer Nur auf das letztgenannte Feld bezog sich dieser Topic. Denn PrestaShop schreibt dir schließlich nicht vor, nach welchem System du deine Artikel-Nummern vergibst. Link to comment Share on other sites More sharing options...
Don Cappello Posted February 26, 2016 Share Posted February 26, 2016 Hallo, na ja, Fakt ist, dass bei der generierung von Varianten immer eine automatische Generierung von fortlaufenden oder auch benutzerdefinierte Artikelnummern generiert werden sollten. Da dies Prestashop anscheinend nicht kann, ist dies ein riesen Manko und wertet das ganze natürlich ab. Ich habe bisher noch keinen Shop oder Software gesehen, welche/r Varianten mit der gleichen Artikelnummer generiert. Und ich meine hier Artikelnummer, nicht die ID. Da ich nicht für jede Kleinigkeit ein Modul kaufen möchte, muss ich hier nach einer Lösung in Form von PHP Skript oder sonstigem SQL Code suchen, um automatisch fortlaufende Artikelnummern zu generieren. Gruß Domenico Link to comment Share on other sites More sharing options...
eleazar Posted February 26, 2016 Share Posted February 26, 2016 Na ja, es gibt durchaus Shop-Systeme, die das nicht können. Aber ich gebe dir recht: Shopware beispielsweise beherrscht diese Vergabe von Artikelnummern einschließlich der Varianten. Nur kannst du hier außer einem globalen Präfix keinerlei eigenes System verwenden! Das ist dann wiederum der Nachteil. PrestaShop erlaubt eine völlig freie Definition - dafür ist die Vergabe der Artikelnummer nicht automatisiert. Was hättest du also lieber? Wenn du auf ein starres Verfahren wie etwa bei Shopware nicht verzichten möchtest, dann dürfte PrestaShop wohl nicht das richtige für dich sein. Es kommt immer darauf an, wo man die Prioritäten setzt. Link to comment Share on other sites More sharing options...
Whiley Posted February 26, 2016 Share Posted February 26, 2016 (edited) Ich habe bisher noch keinen Shop oder Software gesehen, welche/r Varianten mit der gleichen Artikelnummer generiert. Und ich meine hier Artikelnummer, nicht die ID. Ich auch nicht - auch bei PrestaShop noch nie!, Vlt. machst du ein paar Angeben: Welche Prestashopversion, Wie erzeugst du die Varianten, ... und schau dir im Backoffice bei deinen Varianten das Feld "Artikelnummer" einfach mal an. Grüsse Whiley Edit: Uups Überschneidung, Rainer Edited February 26, 2016 by Whiley (see edit history) Link to comment Share on other sites More sharing options...
Don Cappello Posted February 26, 2016 Share Posted February 26, 2016 Hallo, nett das alle hier mitwirken. Also ich habe die letzte Version 1.6.1.4 vom prestashop. Ich lege einen neuen Artikel an, gebe diesem die schon vorher genutzte Artikelnummer (z, B. AT26258) und lasse an Hand der hinterlegten Variantenwerte automatisch die Varianten generieren. Danach haben alle Varianten die Artikelnummer AT26258 des Vaters. Gruß Domenico Link to comment Share on other sites More sharing options...
Whiley Posted February 26, 2016 Share Posted February 26, 2016 Und hast du das im Backoffice bei der Varianten im Feld "Artikelnummer" überprüft? Link to comment Share on other sites More sharing options...
Don Cappello Posted February 26, 2016 Share Posted February 26, 2016 Ja, da stehen alle Varianten schön aufgelistet und bei Artikelnummer haben alle die gleiche. Eigentlich kontraproduktiv, da man bei Amazon ja für jede Variante eine eigene SKU / Artikelnummer benötigt. Auch werden meine laufenden Angebote so nicht erkannt. Gruß Domenico Link to comment Share on other sites More sharing options...
Whiley Posted February 26, 2016 Share Posted February 26, 2016 (edited) Ja, da stehen alle Varianten schön aufgelistet und bei Artikelnummer haben alle die gleiche. Bei der PS 1.6.1.4 kannst du den Effekt nur erreichen wenn du die Varianten über den Generator erzeugst und ganz unten bei "Standard-Referenz" (müßte eigentlich Standard-Artikelnummer heißen) einen Wert (default Artikelnummer des Grundprodukts) einträgst, dieser Wert wird dann in der Tat gewollt bei jeder Variante gleich (Standard halt) eingetragen. Üblicherweise läßt man das Feld offen und füllt die Artikelnummern falls die je Variante unterschiedlich sein sollen manuell ein (nach eigenem Schema, eigenen Vorgaben). Gängige Praxis ist es die Artikel, Varianten u. dazugehörige Artikelnummern via csv einzulesen. Grüsse Whiley Edited February 26, 2016 by Whiley (see edit history) Link to comment Share on other sites More sharing options...
Don Cappello Posted February 26, 2016 Share Posted February 26, 2016 Aber wenn man für jeden Artikel, welchen man im Prestashop generiert, die Artikelnummern per csv einlesen muss, dann ist es einfach unnötiger Arbeitsaufwand. Auch müsste man die Artikeldaten erst ein mal exportieren um sie dann mit der korregierten Nummer wieder zu importieren. Bitte nicht böse sein, aber das ist einfach der Stand vor 2010, als Varianten noch gar nicht üblich waren bei Ebay und CO. Ich werde mir hier etwas zusammenbastlen, um die Artikelnummern aus der Nr. des Vaters und den Werten der Varianten zusammenstetzt und einfügr. Gruß Domenico Link to comment Share on other sites More sharing options...
Whiley Posted February 26, 2016 Share Posted February 26, 2016 Hallo Domenico, nicht alle Versandhändler arbeiten mit Ebay & CO Aber wenn du meinst diese Lösung zu brauchen findest du hier die komplette Anleitung: http://itheadaches.com/prestashop-create-unique-reference-id-product-combinations-generator/ Grüsse Whiley Link to comment Share on other sites More sharing options...
eleazar Posted February 26, 2016 Share Posted February 26, 2016 Das ist aber zu sehr auf die Standardvarianten bezogen, Jörg. Und zu allem Überfluss funktioniert es nicht mal, zumindest nicht als Override. Link to comment Share on other sites More sharing options...
Whiley Posted February 27, 2016 Share Posted February 27, 2016 Das ist aber zu sehr auf die Standardvarianten bezogen, Jörg. Und zu allem Überfluss funktioniert es nicht mal, zumindest nicht als Override. Der Code ist doch sehr einfach u. nachvollziehbar aufgebaut und kann bei Bedarf ganz einfach angepasst/modifiziert werden. Auch deine Einschätzung, daß das Ganze nicht funktioniert kann ich nicht teilen, Rainer - was genau soll denn nicht funktionieren? Ich habe das im Demo-Shop mal eingebaut, Beispiel hier: http://quintilius-varus.de/home/8-testshirt.html#/2-size-m/10-color-red Grüsse Whiley Link to comment Share on other sites More sharing options...
eleazar Posted February 27, 2016 Share Posted February 27, 2016 Seltsam! Ich habe es mehrfach getestet und auch andre Varianteen durchprobiert, aber die Variablen selbst werden nicht angezeigt. Allerdings hatte ich das auch nur als Override laufen. Link to comment Share on other sites More sharing options...
Don Cappello Posted February 27, 2016 Share Posted February 27, 2016 Hallo, danke erst ein mal für den Link zur Lösung. Allerdings muss ich mich erst ein mal duch meine Bücher arbeiten, um dies nach meinen Bedürfnissen anzupassen. Mir würde es ausreichen, wenn bei der automatischen Erstellung der Varianten einfach Nummern generiert würden. Beispiel: AtNr.Vater-001 AtNr.Vater-002 AtNr.Vater-002 AtNr.Vater-002 Das dürfte auch etwas einfacher sein, da hier keine Werte aus den Varianten ausgelesen werden müssen. Ich finde die Daten aus den verschiedenen Tabellen, welche zu den Produkten gehören auch nicht so leicht. Habe mich ein mal per SQL-Workbench verbunden, um die Striktur zu verstehen. Was bedeutet eigentlich dieses "Override"? Gruß Domenico Link to comment Share on other sites More sharing options...
Don Cappello Posted March 1, 2016 Share Posted March 1, 2016 Hallo, ich bekomme die Lösung aus dem Link nicht hin. Die Trennzeichen (bei mir -) werden beim Generieren der varianten hinzugefügt. Meine Werte für Farbe und Größe nicht. Ich habe die ID für Farbe und Größe aus der Tabelle `ps1611_attribute_group_lang` genommen. protected function addAttribute($attributes, $price = 0, $weight = 0) { foreach ($attributes as $attribute) { $price += (float)preg_replace('/[^0-9.-]/', '', str_replace(',', '.', Tools::getValue('price_impact_'.(int)$attribute))); $weight += (float)preg_replace('/[^0-9.]/', '', str_replace(',', '.', Tools::getValue('weight_impact_'.(int)$attribute))); //get attribute name $sqltest = 'SELECT * FROM `attribute_lang` WHERE `id_attribute` = '. $attribute .' LIMIT 0 , 1'; if ($resultstest = Db::getInstance()->ExecuteS($sqltest)) foreach ($resultstest as $rowtest) $id_attribute_name = $rowtest[name]; //echo $id_attribute_name; //get attribute color or size $sqltest2 = 'SELECT * FROM `attribute` WHERE `id_attribute` = '. $attribute .' LIMIT 0 , 1'; if ($resultstest2 = Db::getInstance()->ExecuteS($sqltest2)) foreach ($resultstest2 as $rowtest2) $id_attribute_colorsize = $rowtest2[id_attribute_group]; if ($id_attribute_colorsize== 5) { $id_attribute_color=$id_attribute_name; } elseif ($id_attribute_colorsize == 6) { $id_attribute_size=$id_attribute_name; } } if ($this->product->id) { return array( 'id_product' => (int)$this->product->id, 'price' => (float)$price, 'weight' => (float)$weight, 'ecotax' => 0, 'quantity' => (int)Tools::getValue('quantity'), 'reference' => pSQL($_POST['reference']).'-'.$id_attribute_color.'-'.$id_attribute_size, 'default_on' => 0, 'available_date' => '0000-00-00' ); } return array(); } Ausgegeben wird dann bei mir folgendes: 123456-- Nach jedem Trennzeichen sollte eigentlich der Wert stehen. Gruß Domenico Link to comment Share on other sites More sharing options...
Whiley Posted March 1, 2016 Share Posted March 1, 2016 (edited) Hallo Domenico, die IDs für Farbe u. Größe holst du am schnellsten aus dem Backoffice Katalog -->Attribute u. Gruppen Bei deinem Code fällt mir als erstes auf, daß deine Tabellen kein prefix haben, ist das richtig? Auch kannst du die Funktion so nicht in den Override-Ordner speichern! Anbei mal meine Datei, die mußt du ggfs. an 4 Stellen (2 x ID und 2 x Prefix /rot markiert) anpassen, dann unter dem Namen AdminAttributeGeneratorController.php in den Ordner /override/controllers/admin speichern <?phpclass AdminAttributeGeneratorController extends AdminAttributeGeneratorControllerCore{ protected function addAttribute($attributes, $price = 0, $weight = 0) { foreach ($attributes as $attribute) { $price += (float)preg_replace('/[^0-9.-]/', '', str_replace(',', '.', Tools::getValue('price_impact_'.(int)$attribute))); $weight += (float)preg_replace('/[^0-9.]/', '', str_replace(',', '.', Tools::getValue('weight_impact_'.(int)$attribute))); //get attribute name $sqltest = 'SELECT * FROM `ps_attribute_lang` WHERE `id_attribute` = '. $attribute .' LIMIT 0 , 1'; if ($resultstest = Db::getInstance()->ExecuteS($sqltest)) foreach ($resultstest as $rowtest) $id_attribute_name = $rowtest[name]; // echo 'hallo world'; // echo $id_attribute_name; // die (); //get attribute color or size $sqltest2 = 'SELECT * FROM `ps_attribute` WHERE `id_attribute` = '. $attribute .' LIMIT 0 , 1'; if ($resultstest2 = Db::getInstance()->ExecuteS($sqltest2)) foreach ($resultstest2 as $rowtest2) $id_attribute_colorsize = $rowtest2[id_attribute_group]; if ($id_attribute_colorsize== 3) { $id_attribute_color=$id_attribute_name; } elseif ($id_attribute_colorsize == 1) { $id_attribute_size=$id_attribute_name; } } if ($this->product->id) { return array( 'id_product' => (int)$this->product->id, 'price' => (float)$price, 'weight' => (float)$weight, 'ecotax' => 0, 'quantity' => (int)Tools::getValue('quantity'), 'reference' => pSQL($_POST['reference']).$id_attribute_color.'_'.$id_attribute_size, 'default_on' => 0, 'available_date' => '0000-00-00' ); } return array(); } } Dann noch die Datei: /cache/class_index.php löschen. Dann müsste das auch bei dir laufen. Grüsse Whiley Edited March 1, 2016 by Whiley (see edit history) Link to comment Share on other sites More sharing options...
Don Cappello Posted March 2, 2016 Share Posted March 2, 2016 Hallo, danke für den Hinweis. Natürlich fehlt der Prefix "ps_". Hatte den Code einfach aus dem Link für die Lösung kopiert und nur die Werte-ID geändert. So kann er die Werte nicht finden. Allerdings habe ich die "AdminAttributeGeneratorController.php" unter controllers/admin/ geändert. Im Ordner override/controllers/admin/ ist die Datei "AdminAttributeGeneratorController.php" nicht vorhanden. Oder muss ich diese da selbst einfügen? Gruß Domenico Link to comment Share on other sites More sharing options...
Whiley Posted March 2, 2016 Share Posted March 2, 2016 Hallo Domenico, die von dir geänderte Datei solltest du wieder in den Ursprungszustand versetzen. Dann meine Datei mit deinen Werten abändern u. wie oben beschrieben in den Override-Ordner speichern. Grüssse Whiley Link to comment Share on other sites More sharing options...
Don Cappello Posted March 2, 2016 Share Posted March 2, 2016 Ja, habe ich jetzt auch so gemacht. Es ist also eine Art Ersatz, damit die originalen Daten nicht verändert werden. Allerdings denke ich, dass bei meinen zahlreichen unterschiedlichen Varianten doch eher der Einsatz von Hochzählungen geeignet wäre. Sonst müsste man diesen Code noch um einiges erweitern, da nicht nur Farbe und Größe vorhanden sein können, sondern auch Anzahlt, Höhe, Ausführung, ... Für mich wäre da ein Code einfacher, welcher nur hoch zählt in 3stelligen Bereich: Beispiel: AtNr.Vater-001 AtNr.Vater-002 AtNr.Vater-002 AtNr.Vater-002 Da braucht man dann nicht mehr testen, welche Werte vorhanden sind. Einfach nur Nummern generieren. Gruß Domenico Link to comment Share on other sites More sharing options...
Whiley Posted March 2, 2016 Share Posted March 2, 2016 Ja, habe ich jetzt auch so gemacht. Es ist also eine Art Ersatz, damit die originalen Daten nicht verändert werden. Damit schützt du deine Änderungen vor versehentlichem Überschreiben beim nächsten Update! Für mich wäre da ein Code einfacher, welcher nur hoch zählt in 3stelligen Bereich: Wenn du die Änderung fertig hast, wäre es nicht schlecht wenn du sie hier posten würdest Grüsse Whiley Link to comment Share on other sites More sharing options...
Don Cappello Posted March 2, 2016 Share Posted March 2, 2016 Das mache ich auf jeden Fall. Gruß Domenico Link to comment Share on other sites More sharing options...
kazaa2 Posted September 14, 2016 Share Posted September 14, 2016 Das mache ich auf jeden Fall. Gruß Domenico Und er wurde nie wieder gehört zu diesem Thema Schade eigentlich, hätte sich ganz gut angehört die Sache Link to comment Share on other sites More sharing options...
Don Cappello Posted September 15, 2016 Share Posted September 15, 2016 Hallo, leider ist es in diesem Forum etwas ruhig, was den Besuch auch davon abhält, regelmäßig hereinzusehen. Was das Thema angeht, so hat unser Softwareanbieter JTL die Connektoren für alle Drittanbietershops freigegeben, was für mich natürlich ein Grund war, nicht mehr direkt im Shop herumzuwurschteln. Wer also noch keine WAWI hat, kann diese kostenlos bei JTL herunterladen und einen Connektor für Prestashop integrieren. Ansonsten hatte ich im Openoffice ein Makro geschrieben, welches an Hand der vorab in einer Tabelle ausgewählten Variantenwerte kombiniert, die Hochzählung hinter die SKU schreibt und entsprechende Werte in die Tabelle schreibt. Diese habe ich dann exportiert und zu im Shop erstellten Vaterartikeln hochgeladen. Auch die Bildpositionen werden automatisch hinterlegt, was sehr hilfreich ist. Denn vorher musste ich für jede Variante ein Bild hochladen. Jetzt werden nur ein Bild pro Farbe hochgeladen und für entsprechende Variante zugeordnet. Gruß NICO 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