Ankündigung

Einklappen
Keine Ankündigung bisher.

Automatische Artikelnummer

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Automatische Artikelnummer

    Hallo Community

    Habe da mal ne Frage und hoffe, sie passt hier rein.

    Was ich ganz schmerzlich vermisse, ist die Möglichkeit, wie z.b. in XT-Commerce, eine automatische Vergabe der Artikelnummer. Ich hab da schon ein wenig in Zen-Cart gebastelt, allerdings bräuchte ich nen bisschen Hilfe

    In XT-Commerce wird in einer Datei (new_products.php) folgender Code eingefügt / abgeändert:

    Code:
    <?php
    // Artikelnummer generieren
    if(!$pInfo->products_model)
    {
     $my_product_id_query = xtc_db_query("SELECT MAX(products_id)
                        AS products_id
                        FROM " . TABLE_PRODUCTS . "
                        ");
     $my_product_id = xtc_db_fetch_array($my_product_id_query);
     $my_product_id = $my_product_id["products_id"] + 1;
     $pInfo->products_model = "100-".$my_product_id; // 100- kann editiert werden 
    }
    ?>
    Der Aufbau in Zen-Cart (weiß nicht wie die Datei jetzt genau heißt), ist ja ziemlich gleich. Das eigentlich Problem was ich habe, ist die Funktion
    Code:
    $my_product_id = xtc_db_fetch_array($my_product_id_query);
    Wie rufe ich die fetch_array-Funktion mit den Abfragen in Zen-Cart auf? Weil ich ermittel ja mit der SELECT MAX() Funktion die max. Anzahl, bzw. den letzten Eintrag in der Spalte products_id.

    Hoffe mir kann jemand helfen, das wäre echt einfacher

    Danke und Gruß
    Revoluza

    #2
    generiere in admin/includes/functions/extra_functions eine datei mit folgendem inhalt:
    PHP-Code:
    <?php
        
    function generateProdMod($prodmod){
            global 
    $db;
            global 
    $action;
            global 
    $products_id;
            
    $prefix 'HUGO13-';
            if(!
    $prodmod){
                if(
    $action == 'update_product'){
                    return 
    $prefix $products_id
                }
                
    $sql 'SELECT MAX(products_id)
                                AS products_id
                                FROM ' 
    TABLE_PRODUCTS;
                
    $res $db->Execute($sql);
                return 
    $prefix . ($res->fields['products_id'] + 1); 
            } else {
                return 
    $prodmod;
            }
        }
    in der datei admin/includes/modules/update_product.php änderst du die zeile 32 von
    PHP-Code:
    'products_model' => zen_db_prepare_input($_POST['products_model']), 
    auf
    PHP-Code:
    'products_model' => generateProdMod(zen_db_prepare_input($_POST['products_model'])), // prodmod 
    Zuletzt geändert von hugo13; 03.06.2009, 13:29. Grund: code change

    Kommentar


      #3
      WOW das nenn ich mal ne schnelle Antwort hugo13

      Das werde ich heute abend sofort ausprobieren, und wenn das funktioniert, dann hast du bei mir nen Stein im Brett

      Danke dir vielmals für den Tip
      Zuletzt geändert von Revoluza; 03.06.2009, 18:03.

      Kommentar


        #4
        Also habs jetzt so gemacht wie du beschrieben hast, nur leider funktioniert das nicht so :(

        Es wird keine Artikelnummer + dem Prefix in das Artikelnummernfeld eingefügt und auch in der DB steht dann natürlich nix drin, wenn ich einen neuen Artikel anlege... Entweder hab ich was falsch verstanden jetzt, oder ich hab mich heute morgen falsch ausgedrückt :(

        Kommentar


          #5
          Zitat von Revoluza Beitrag anzeigen
          Also habs jetzt so gemacht wie du beschrieben hast, nur leider funktioniert das nicht so :(

          Es wird keine Artikelnummer + dem Prefix in das Artikelnummernfeld eingefügt und auch in der DB steht dann natürlich nix drin, wenn ich einen neuen Artikel anlege... Entweder hab ich was falsch verstanden jetzt, oder ich hab mich heute morgen falsch ausgedrückt :(
          look at: http://demo.zen-cart.at/index.php?main_page=page&id=26
          ist es das was du haben möchtest ?
          1) leg nen neuen artikel an
          2) ändere bestehenden artikel indem du die artikelnummer löscht
          & wen es das ist, was du dir gewünscht hast, überprüfe die beiden schritte der code-änderung

          Kommentar


            #6
            muahahahha man ich bin sowas von dämlich Wenn man eine Datei ändert, hochlädt, dann wieder ändert und dann die falsche Datei hochlädt, darf man sich nicht wundern das nix geht *rofl*

            Auf deutsch: ES FUUUUUUUUUUUUUUUNZT

            Die Idee von dir ist wirklich gut, aber ich wollte es eigentlich anders haben:

            Ich klicke auf den Button "Neuer Artikel", trage dann dort alle benötigten Artikelinfos an. Nun hab ich bereits in der DB einige Artikel stehen, und die letzte von mir vergebene Nummer ist z.b. die 1015.

            Nun soll JEDESMAL, wenn ich auf neuer Artikel klicke, unten im Feld Artikelnummer bereits eine neue, nächsthöhere Art-Nr. stehen, also die Funktion soll automatisch die letzte Artikelnummer aus der DB (in meinem Beispiel die "1015") finden, und dann +1 dazuzählen, so dass dann dort die "1016" stehen würde, beim nächsten Artikel die 1017 usw.

            Au man, was nen Roman ^^
            Zuletzt geändert von Revoluza; 03.06.2009, 20:36.

            Kommentar


              #7
              Zitat von Revoluza Beitrag anzeigen
              Die Idee von dir ist wirklich gut, aber ich wollte es eigentlich anders haben:

              Ich klicke auf den Button "Neuer Artikel", trage dann dort alle benötigten Artikelinfos an. Nun hab ich bereits in der DB einige Artikel stehen, und die letzte von mir vergebene Nummer ist z.b. die 1015.

              Nun soll JEDESMAL, wenn ich auf neuer Artikel klicke, unten im Feld Artikelnummer bereits eine neue, nächsthöhere Art-Nr. stehen, also die Funktion soll automatisch die letzte Artikelnummer aus der DB (in meinem Beispiel die "1015") finden, und dann +1 dazuzählen, so dass dann dort die "1016" stehen würde, beim nächsten Artikel die 1017 usw.
              ich bin davon ausgegangen, dass du es haben willst wie bei XT; die schauen nach der höchsten automatisch vergebenen internen produktnummer

              so schaut der andere ansatz aus:
              PHP-Code:
              <?php
                  
              function generateProdMod($prodmod){
                      global 
              $db;
                      global 
              $action;
                      global 
              $products_id;
                      
              $prefix 'HUGO13-';
                      if(!
              $prodmod){
                          
              $sql " SELECT MAX(products_model)  
                                      AS products_id
                                      FROM " 
              TABLE_PRODUCTS " WHERE products_model LIKE '$prefix%'";
                          
              $res $db->Execute($sql);
                          
              $newID = (int) str_replace($prefix''$res->fields['products_id']) +1;
                          return 
              $prefix $newID
                      } else {
                          return 
              $prodmod;
                      }
                  }

              Kommentar


                #8
                Ja das stimm Hugo, so wollte ich das haben. Bei dem Code den ich gepostet habe, packt der die ganzen products_model Werte in ein Array, sucht dann den letzten Eintrag und setzt diesen Eintrag dann einen höher.

                Also z.b. der letzte Eintrag in der DB ist 1016, dann ermittelt das Script diesen Wert als "Endwert", und rechnet dann +1 dazu

                Des Weiteren wird dann der neu berechnete Wert im Feld Artikelnummer beim anlegen neuer Artikel direkt unten im Feld Artikelnummer vorab eingetragen Aber deine Funktion find ich auch wirklich sehr gut, kann damit leben das der Wert nicht unten angezeigt wird

                GANZ DICKES DANKESCHÖN nochmal für deine schnelle Hilfe Hugo, findet man leider immer seltener im Netz solche Communitys

                EDIT:

                Sorry hugo, hatte teilweise nen dicken Denkfehler bzgl. der Funktion, ist ja genau das gleiche *rotwerd*
                Zuletzt geändert von Revoluza; 05.06.2009, 08:13.

                Kommentar

                Info zu diesem Forenarchiv:
                Mit Release von 1.5.7 wurde die deutsche Zen Cart Version auf eine reine DIY-Lösung umgestellt.
                Für einen Support via Forum stehen keine personellen und zeitlichen Ressourcen mehr zur Verfügung.
                Dieses Supportforum bleibt im Nur-Lesen-Modus als Wissensarchiv noch online verfügbar.
                PM Funktionalität, Registrierung und Posten neuer Beiträge sind deaktiviert.
                Zugriff auf Anhänge in den Postings ist auch ohne Registrierung/Einloggen möglich.
                FAQ und Downloadbereich des Forums wurden in die neue umfangreiche Knowledgebase auf der zen-cart-pro.at Website übernommen.

                Das Development der deutschen Zen Cart Version geht wie bisher auf Github weiter.
                Wir werden auch weiterhin neue Versionen bereitstellen und die Onlinedokumentation/Knowledgebase aktualisieren.
                Fehler in der Software können auf Github als Issues gemeldet werden.
                Follow us
                aktuelle version
                Zen Cart 1.5.7h deutsch
                vom 15.04.2024
                [Download]
                Lädt...
                X