Category oxsort automatisch in die Artikelnummer einfügen

Gibt es eine Möglichkeit beim anlegen eines Artikel die Kategorienummer in die Artikelnummer zu includieren?
Wenn ich nicht ganz falsch denke sollte das doch ohne großen Aufwand mögllich sein oder?

Definiere “ohne großen Aufwand”…
Wofür soll soetwas gut sein?
Müsstest du selbst programmieren (lassen).

Bin ja noch nicht wirklich fit und kann es nicht genau abschätzen was ich da gerade heraufbeschwöre aber so wäre mein Gedankegang gewesen. Kuck mal auf das angehängete Bild samt Erklärung :frowning:
Hoffe man kann da was lesen.

Da sich meine Artikelnummern aus Kategorie und Artikelnummern zusammensetzen soll! Ist doch kein Problem oder ??
Und wenn man den Artikel anlegt gehts einfach scneller und komfortabler auf diese Art.

Danke für Eure Hilfe

[U]Also auf dem ersten Bild kann keiner was lesen nehme ich mal an.[/U]

[B]Anderes Bild und hier die Erklärung.[/B]

Kategorienummer in Artikelnummer einbeziehen
So wäre es nicht schlecht und hätte auch keine Nachteile fürs System:
Die Auswahl der Kategorie kann man bereits nach der Eingabe des Artikelnamens (hab ich bei mir mal so umgebastelt) machen.
Wenn eine Kat ausgewählt wird sollte die Sortierung der Kat im linken Feld der Art.-Nr. erscheinen.
Im rechten Feld gibt man dann seine eigene Art.-Nr. ein wie gehabt.
Beim speichern sollen die Angaben der beiden Felder in die DB geschrieben werden.
So wäre das ja möglich oder hab ich da einen Denkfehler??

Bitte ehrlich um HIlfe der Profis hier.
Danke

Hey Leute, kann oder will mir da keiner ein bisschen unter die Arme greifen?

Benötige bite echt ein bischen Hilfeee :frowning:

Und jetzt soll dir einer alles schreiben und deine sachen nachbasteln? Glaube kaum, dass einer die Zeit hat. Lad mal deinen Code hoch und übe dich ein wenig in Geduld.

Sehr freundlich

Danke für die Info :o

Wenn dein Code hier steht, ist es doch viel einfacher dir zu helfen. :wink:

Ich brauch ja keinen Code? Ich kann natürlich die gesamte articles_main.tpl hier rein stellen, aber das macht keinen Sinn denke ich mal.
Hast Du das Foto gesehen?
Ich bekomm nur die Abfrage innerhalb der articles_main.tpl nicht auf die Reihe. Irgendwie blick ich jetzt gar nicht durch. :confused:
In der articles_main kann ich ja bereits eine der in Oxid angelegten Kategorien für den neuen Artikel bestimmen. Somit wir die DB ja abgefragt. Nur wie bekomm ich es hin das mir in der articles_main.tpl auch die Sortierungs Nummer der Kat anzeigt wird??
Mehr will ich nicht. Dann geb ich schon wieder Ruhe :o
Danke

PS.: An einen der Admins. Sollten man die Überschrift nicht ändern oder soll ich einen neuen Tread eröffnen zu meiner Sache?
Eigentlich ist das Thema KMUdo ja erledigt!
Und wenn es Interessiert: Deren Support hat auf meine Anfrage sehr schnell ragiert und updated die powertools für 4.10.

Hi,
ich kann dir nur aus Anwender / Nicht-Programmier sicht helfen dein Konzept und die Überlegungen zu verwerfen und zum Standard zurückzukehren.

Der Gedanke ist aus meiner Sicht unausgereift und unlogisch. Eine Artikelnummer hat nur den Zweck den Artikel eindeutig zu identifizieren. Die Kategorien sind etwas ganz anderes und müssen eh immer individuell und Artikelspezifisch hinterlegt werden. Es kann sich ja auchmal eine Kategorie ändern können, die Kategorien aus mehreren Blickwinkeln / unterschliche Usersichten aufgebaut werden, …

Viel Spaß
:wink:
cya

Hallo Firefax

Und wozu denkst du soll das mit der vorangesetzten Kategeie sein?!?
Na, Na, Na :confused:
Ja genau, um den Artikel eindeutig zu identifizieren :eek:
Auf diese Art ist es eigentlichs ehr leicht, auch für Leute die das System nun erst erlernen oder auch nicht, der Artikel zu idetifizieren und auch der Kategorie zuzuordenen.
Also was nun unausgereift ist versteh ich nicht. Ich will ja eigentlich nur eine kleine Automatik, damit ich nicht bei jedem Artikel die Kat Nummer händisch einschreiben muss.

Irgendwie versteht mein Vorhaben keiner oder ich hab es total falsch ausgedrückt!

[QUOTE=kazaa2;182535]
Irgendwie versteht mein Vorhaben keiner oder ich hab es total falsch ausgedrückt![/QUOTE]

Ja, weil die Datei fehlt und keiner genau weiß, was du gemacht hast.

[B]Lade die Datei hoch und beschreibe die Anforderungen möglichst genau.[/B]

Bsp: Wann soll was erscheinen und wie? Nach dem Reload, per jquery usw.

was Du vorhast, versteht wohl jeder - nur ist es in einem Onlineshop ‘unüblich’ :slight_smile:

Man kann es so machen:

  • in einem cronjob wird alle 10 Minuten geprüft, ob ein neuer Artikel angelegt wurde
  • wenn ja wird der Artikel der Kategorie entsprechend der ersten beiden Ziffern aus der Art.-Nummer zugeordnet

@adamweber
OK, so wird es wohl werden.
Gemacht hab ich noch nicht viel da ich ja schon gesagt habe das ich eigentlich gar nicht mehr durch blicke und mir neben dem Job auch leider die Zeit fehlt um mich da aus neue voll einzuarbeiten damit ich keine Fragen stellen muß.

Ausschnitt der articles_main.tpl wo die Abfrage rein soll (laut Foto) lade ich hier mal hoch. Abfrage sollte via jquery erfolgen (also mann oben die kategorie auswählt, soll in der Artikelnummer die Sortierung der Kat. voran stehen.
Ich versuch es mal noch besser zu umschreiben wenn die Datei hochgeladen ist.

@patchwork
Also unüblich für einen Online Shop weis ich nicht, warum auch?
Ist doch ein Vorteil in jeglicher hinsicht wenn sich in der Artikelliste oder in der Rechnung die Artikelnummer aus Kat und Artikel zusammensetzt. Wenn jemand anruf und eine Frage hat zu einem Artikel, ist der sicher schneller zugeordnet finde ich.
Bsp.: Du bestellst den Artikel 1450_1001, Dann weis ich oder ein Mitarbeiter wenn du eine Frage dazu hast schon mal das es sich um einen Artikel aus der 14 = Kat. Sonstige Teile, 50 = U-Kat Kunststoffteile handelt.

Das finde ich schon mal nicht schlecht wenn jemnd eine FRage zum Material oder zur Verarbeitung hat was nicht explizit in der Beschreibung steht.

Bitte berichtigen wenn mein Gedankengang da falsch ist, aber die Buchhaltungsoftware (Österreichische Software Firma) welche ich kenne ist auch nach diesem Schema aufgebaut und ich finde sie gut zum Arbeiten.

Das mit Cronjob bringt eigentlich nicht den gewünschten Effekt bzw. die Erleichterung beim Artikel anlegen.
Trotzdem danke für den Tip.

[B]hier der Code der articles_main.tpl[/B]


[{if $oxid == -1}]
                <tr>
                  <td class="edittext">
                [{ oxmultilang ident="ARTICLE_MAIN_INCATEGORY" }]
                </td>
                <td class="edittext">
                <select name="art_category" class="editinput" onChange="Javascript:top.oxid.admin.changeLstrt()" [{ $readonly }]>
                <option value="-1">[{ oxmultilang ident="ARTICLE_MAIN_NONE" }]</option>
                [{foreach from=$oView->getCategoryList() item=pcat}]
                <option value="[{ $pcat->oxcategories__oxid->value }]">[{ $pcat->oxcategories__oxtitle->value|oxtruncate:40:"..":true }]</option>
                [{/foreach}]
                </select>
                [{ oxinputhelp ident="HELP_" }]
                </td>
              </tr>
              [{/if}]
              <tr>
                <td class="edittext" colspan="2"><br>
                [{include file="language_edit.tpl"}]<br>
                </td>
              </tr>
              [{if $oxid!=-1 && $thisvariantlist}]
              <tr>
                <td class="edittext">[{ oxmultilang ident="ARTICLE_MAIN_GOTO" }]</td>
                <td class="edittext">
                [{include file="variantlist.tpl"}]
                </td>
              </tr>
              [{/if}]
					
                    <tr>
                      <td class="edittext">
                        [{ oxmultilang ident="ARTICLE_MAIN_ARTNUM" }] 
                      </td>
                      <td class="edittext">
                        <input type="text" class="editinput" size="32" maxlength="[{$edit->oxarticles__oxartnum->fldmax_length}]" name="editval[oxarticles__oxartnum]" value="[{$edit->oxarticles__oxartnum->value}]" [{ $readonly }]>
                        [{ oxinputhelp ident="HELP_ARTICLE_MAIN_ARTNUM" }]
                      </td>
                    </tr>

Der Kategorie Name wird ja abgefragt und bei Auswahl angezeigt.
Wie schaffe ich es nun das nach Auswahl der Kategorie und Anzeige des Names im Formfeld, zusätzlich die Sortierung der Kategorie in das Formfeld der Artikelnummer eingetragen wird??

Danke für die Hilfe :slight_smile:

Der Nutzen erschließt sich für mich immer noch nicht.

Dir ist bewusst, das sich deine Warengruppenzusammensetzung aus diversen Gründen ändern kann bzw. wird?
Sei es wegen Sortimentsveränderungen, Umstrukturierungen, SEO-Maßnahme, Shopsystemwechsel etc.
Wechselst du dann immer die Artikelnummer? Hat der gleiche Artikel dann im Laufe der Jahre “ständig” andere Artikelnummern?

Warum vergibst du die Artikelnummern nicht einfach so:
345*** - alle Schrauben
3456** - alle Schrauben aus Edelstahl
236*** - alle Muttern
237*** - alle Unterlegscheiben

In welchen Warengruppen die Artikel dann sind ist völlig flexibel.

Klär mich mal bitte auf wo da ein Ploblem kommen soll bzw kann!
Eigentlich wollte ich die Kategorien nach diesem Schema aufbauen bzw. hab ich die im Testshop mal so aufgebaut.

Steh ich da jetz auf der Leitung oder bin ich sowas von Blind das ich da was nicht versteh ?!?

Das einzige wo ich vielleicht ein Prob mit der Art Nummer bekommen könnte ist, wenn ich die Hauptkategorie umbenennen würde und für die Artikel in eine andere Kat nehmen würde. Wird aber nie passieren da ich da eine etwas andere Art Shop Übersicht aufbaue mit max 4 Haupt Kategorien welche miteinander eigentlich nichts zu tun haben! Darum würde ich das auch gerne so machen.

Sollte kein Prob sein so. Und wenn es bei den Test nicht funktioniert wie es soll, muss die geänderte articles_main der orig. wieder weichen und ich wieder grübeln wie das anstelle das es passt.

Darum benötige auch nur bitte den Schups in die richtige Richtung innerhalb der .tlp Datei

über Sinn und Zweck möchte ich nicht diskutieren sonder über Lösungen bzw. Lösungsansätze.

  1. über ajax ist das möglich. Dazu mß man in oxid.js den Funktionsaufruf bei changeLstrt erweitern oder articles_main.tpl überschreiben und ein eigenes script einbinden. Wird alles sehr aufwändig.
  2. Einfacher ist es beim Speichern des Artikels die Nummer ggf. mit der Kategorienr. zu erweitern. Dazu muss nur die function save() in article_main.php erweitert werden. Läßt sich sehr einfach in ein Modul packen und ist auch (einigermassen) updatesicher.

PS läßt sich übrigens auch in einen cronjob packen mit deutlich weniger Schreibarbeit :slight_smile:

Hmmm, genau Deinen Punkt 2 wollte ich ja, aber wie machen wenn man sich ganz schlecht mit sowas auskennt? :confused::confused:
Ich hätte halt versucht die Abfrage für die Kat nummer zum erweitern der Artikelnummer in der tpl direkt einzubinden.
Bekomms aber ohne die Hilfe von Leuten die sich mit sowas auskennen leider nicht gebacken!

Dann erstell im Marktplatz eine Anfrage für einen Programmierauftrag.

[QUOTE=patchwork.de;182561]über Sinn und Zweck möchte ich nicht diskutieren … [/QUOTE]

Schade :wink:

Du würdest nur die oxArtNum ändern und die oxId ist weiter ein Hashwert? Dann ist die Lösung gut.

Eine etwas andere Lösung könnte auch sein, die Artikel, inkl. der komischen Artikelnummerkombi, in LibreOffice zu erstellen und dann einzulesen (Gen.Import). Würde die aufwändige Basispflege im Shop erleichtern und benötigt keine Anpassungen :cool:

cya

Kannst ja mal so anfangen, indem einfach die ersten beiden Buchstaben einer Kategorie bei Auswahl in Artnum eingetragen werden. Vielleicht baut Dir ja noch einer das 2.:

[{if $oxid == -1}]
					<tr>
					<td class="edittext">
					[{ oxmultilang ident="ARTICLE_MAIN_INCATEGORY" }]
					</td>
					<td class="edittext">
					<select name="art_category" class="editinput" onChange="Javascript:top.oxid.admin.changeLstrt()" [{ $readonly }]>
					<option value="-1">[{ oxmultilang ident="ARTICLE_MAIN_NONE" }]</option>
					[{foreach from=$oView->getCategoryList() item=pcat}]
					<option value="[{ $pcat->oxcategories__oxid->value }]">[{ $pcat->oxcategories__oxtitle->value|oxtruncate:40:"..":true }]</option>
					[{/foreach}]
					</select>
					[{ oxinputhelp ident="HELP_" }]
					</td>
					</tr>
[{oxscript include="js/libs/jquery.min.js"}]
[{capture assign=pageScript}]
	$(document).ready( function(){
		var artnum = "";
		$("select[name='art_category']").change(function() {
			/*artnum = $("#artnum").val(); //adding check existing artnum*/
			$("#artnum").val($("option:selected", this).text().replace(/[\. ,:-]+/g, "").substr(0, 2) + artnum); //add id="artnum"
		});
	});
[{/capture}]

[{oxscript add=$pageScript}]
[{/if}]
                    <tr>
                      <td class="edittext">
                        [{ oxmultilang ident="ARTICLE_MAIN_ARTNUM" }] 
                      </td>
                      <td class="edittext">
                        <input id="artnum" type="text" class="editinput" size="32" maxlength="[{$edit->oxarticles__oxartnum->fldmax_length}]" name="editval[oxarticles__oxartnum]" value="[{$edit->oxarticles__oxartnum->value}]" [{ $readonly }]>
                        [{ oxinputhelp ident="HELP_ARTICLE_MAIN_ARTNUM" }]
                      </td>
                    </tr>

PS: Das macht man normalerweise über ein Modul.