Nein, von Haus aus kann der Shop das nicht.
Es gibt jedoch einen sog. Hook in der Methode
insert_product() in
/admin/includes/classes/categories.php:
$sql_data_array = $this->catModules->insert_product_before($sql_data_array,$products_data);
Wenn du dir eine Klassenerweiterung baust kannst du
$products_data['products_model']überschreiben, bzw. bestimmen und
$sql_data_array['products_model'] entsprechend setzen.
Die Datei mit der Klassenerweiterung muß unter
/admin/includes/modules/categories/ abgespeichert werden.
Unter
Backend=> Module => Klassenenerweiterungen Module => TAB "categories"kannst du das Modul dann installieren und aktivieren.
Beispiel der Funktion in der Klassenerweiterung:
function insert_product_before($sql_data_array, $products_data) {
if($products_data['products_model'] == '') { //wenn keine Artikelnummer angegeben ist
$automatic_prod_model = DEINE_ROUTINE_WIE_DIE_NUMMER_VERGEBEN_WERDEN_SOLL;
$sql_data_array['products_model'] = $automatic_prod_model;
}
return $sql_data_array;
}
Die Frage ist wie die Artikelnummer generiert werden soll.
Damit es keine doppelten Nummern geben kann und man eine komplexe Routine vermeidet ist die Idee die interne Produkt-ID mit einem Pre- oder Suffix versehen zu verwenden sinnvoll.
Hier im Forum gibt es eine andere Herangehensweise als die von mir genannte Klassenerweiterung, mit einem anderen Hook (
auto_include()). Da wird die Artikelnummer aus der zu vergebenden Produkt-ID generiert plus Prefix:
Artikelnummer automatischDiese Methode hat den Nachteil, daß sie nur funktioniert wenn das Feld für die Artikelnummer beim Öffnen der Bearbeitungsmaske leer ist, z.B. wenn man einen Artikel neu anlegt.
Mit der von mir vorgeschlagene Klassenerweiterung kann man auch bei einem bereits vorhandenen Artikel das Feld händisch leer machen, z.B. weil eine alte oder verkehrte Artikelnummer vorhanden ist, und es wird beim Speichern dann die neue Nummer vergeben. Bei einem neuen Artikel wird ebenfalls die neue Nummer vergeben. Allerdings sieht man das Vergeben der Nummer in beiden Fällen nicht weil es im Hintergrund passiert. Erst wenn man den Artikel erneut öffnet oder im Frontend anschaut sieht man die vergebene Nummer.
Bei der oben verlinkten Methode sieht man die ins leere Feld vergebene Nummer durch den Javascript-Einsatz, allerdings eben nur dann wenn das Feld bei Öffnen der Maske leer war.
Nochmals zum Verständis in Kurzform:
- Die verlinkte Methode vergibt die automatische Artikelnummer nur wenn bei Öffnen der Bearbeitungsmakse keine Nummer vergeben ist.
- Mein Vorschlag mit der Klassenerweiterung vergibt die automatische Artikelnummer im Moment des Speicherns wenn das Feld leer ist. Man kann also jederzeit die Nummer neu generieren, auch wenn es bereits eine Nummer gab, indem man das Feld eben vor Speichern leert.
Gruß,
noRiddle