Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Artikel & Attribut Eigenschaften von mehreren Artikeln gleichzeitig bearbeiten

    JuergenS

    • Fördermitglied
    • Beiträge: 60
    • Geschlecht:
    Hallo in die Runde,

    Frage 1: (Foto 1)
    Besteht die Möglichkeit, evtl. auch in der neuen Shopversion, dass man mehrere Artikel gleichzeitig mit einer Artikeleigenschaft oder einem Attribut belegen kann.

    Z.B. wie beim "Löschen". Man wählt links über die Editkästchen mehrere Artikel aus und wählt dann die Artikeleigenschaft um für die ausgewählten Artikel die identische Eigenschaften zu hinterlegen.

    Gerade im Hinblick auf Shops die jede Menge Artikel beinhalten, wäre das schon eine super Erleichterung.

    Frage 2: (Foto 2)
    Wäre es möglich, wenn bei einem Artikel eine Eigenschaft oder ein Attribut hinterlegt ist, dass die beiden Icons farbig hinterlegt wären. Aktuell muss man jeden Artikel erst anklicken und nachschauen, ob dort eine Artikeleigenschaft oder ein Attribut hinterlegt ist.

    Viele Grüße
    Jürgen

    Linkback: https://www.modified-shop.org/forum/index.php?topic=43097.0
    Marktplatz - Eine große Auswahl an neuen und hilfreichen Modulen sowie modernen Templates für die modified eCommerce Shopsoftware

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.748
    • Geschlecht:
    Zu Frage 1:
    So etwas könnte man bauen (relativ aufwändig).
    Dazu müsste man jedoch eine Art Plan haben wie das aussehen soll, also wie man z.B. die Auswahl der Artikel denen ein und dasselbe Attribut zugeordnet werden soll darstellen möchte, ohne daß es unübersichtlich wird und/oder die Performance leidet, weil zu viele Daten auf ener Seite geladen werden müssen.

    Zu Frage 2:
    Das ließe sich machen, jedoch auch mit Aufwand und einigen Hacks und Tricks um fehlende Hooks im Code auszugleichen und update-sicher zu bleiben.
    Man müsste ähnlich vorgehen wie in diesem Thema (und ff.):
    MODUL: Kommentare in Bestellübersicht als Tooltip anzeigen für Shopversion 2.x | Antwort #10

    Hier ein Versuch
    (kann sich je nach Menge der Anzeige an Artikeln auf einer Seite auf die Ladegeschwindigkeit auswirken):
    Code: PHP  [Auswählen]
    <?php
    /**************************************************************************************************
    * file: mark_prods_with_attribs.php
    * use: mark attributes link in case product has got attributes assigned
    * path: /admin/includes/extra/footer/
    *
    * © copyright noRiddle 09-2023
                 ____
                |    |       |     | |
      __   ___  |____/ °  ___|  ___| |  ___
    |/  | |   | |   \  | |   | |   | | |___|
    |   n |___o |    R i |___d |__ d l |__e

    **************************************************************************************************/


    if(strpos($PHP_SELF, FILENAME_CATEGORIES) && !isset($_GET['action']) && xtc_db_num_rows($products_query) > 0) {
      xtc_db_data_seek($products_query, 0);
      $has_attrib = array();

      while($prods = xtc_db_fetch_array($products_query)) {
        $attribs_verify_qu = xtc_db_query("SELECT * FROM products_attributes WHERE products_id = ".(int)$prods['products_id']);
        if(xtc_db_num_rows($attribs_verify_qu) > 0) {
          $has_attrib[] = $prods['products_id'];
        }
      }

      //echo '<pre style="padding:10px 0 0;">'.print_r($has_attrib, true).'</pre>';
      if(count($has_attrib) > 0) {
    ?>
    <style>
    .mark-attr {
      display:inline-block;
      padding-right:0 !important;
      margin-right:8px;
      border:1px solid #c00 !important;
    }
    </style>
    <script>
    $(function() {
      let $prid_wth_attribs = <?php echo json_encode($has_attrib); ?>;
          $tbc_dtr = $('.tableBoxCenter tr');
          //console.log($prid_wth_attribs);

      $tbc_dtr.each(function(idx) {
        let $skip_header = $tbc_dtr.eq(idx + 1)
            $cvd_a = $skip_header.find('.categories_view_data.txta-l a[href^="javascript"]'),
            cvd_a_0 = $cvd_a.eq(0),
            cvd_l = cvd_a_0.attr('href');
           
        if(cvd_l !== undefined) {
          //console.log(cvd_l);
          if(cvd_l.indexOf('Attrib') >= 0) {
            let begin_pid = cvd_l.indexOf('show(') + 5,
                end_pid = cvd_l.indexOf(', \''),
                pid = cvd_l.substring(begin_pid, end_pid);
            //console.log(begin_pid + ' | ' + end_pid + ' | pid: ' + pid);
            if($.inArray(pid ,$prid_wth_attribs) !== -1)
              cvd_a_0.find('img').addClass('mark-attr');
          }
        }
      });
    });
    </script>
    <?php
      }
    }
    ?>

    Im Kopf der Datei steht in welches Verzeichnis sie gehört.

    Gruß,
    noRiddle

    JuergenS

    • Fördermitglied
    • Beiträge: 60
    • Geschlecht:
    Hallo noRiddle,

    danke schön für deine Mühe. Ich schaue mir das morgen Abend an und gebe Dir ein Feedback dazu.

    Bin aktuell beruflich unterwegs.

    Viele Grüße
    Jürgen

    JuergenS

    • Fördermitglied
    • Beiträge: 60
    • Geschlecht:
    Hallo noRiddle

    du hattest das Thema ja hier schon einmal beschrieben. Fragen zu Artikeleigenschaften

    Ich hatte mir das dann mal angeschaut. Funktioniert soweit auch. Nur muss man dann immer noch die Produkt IDs raus suchen. Wenn ich die Artikel neu in den Shop einspiele, sind die wieder geändert. Gibt es eine Möglichkeit die z.B. über die EAN Nummer in die Datenbank einzutragen. Somit wäre die Zuordnung zu den Artikeln nicht über die Product ID sondern über eine eindeutige EAN.

    Bisher habe ich es so gemacht.
    Code: PHP  [Auswählen]
    INSERT INTO `products_tags`(`products_id`, `options_id`, `values_id`, `sort_order`, `products_options_id`, `products_options_values_id`) VALUES ('98','2','5','0','0','0');

    Viele Grüße
    Jürgen

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.748
    • Geschlecht:
    Wo ist das Feedback zu meinem Skript bzgl. Markierung von Produkten mit Attributen im Listing im Backend ?

    Klar kannst du Einträge auch über einen anderen eindeutigen Parameter machen, der muß aber wirklich eindeutig sein.

    Da die Tabelle products_tags  lediglich die products_id, nicht jedoch die products_model  oder, wie du möchtest, die products_ean  als Tabellenfeld hat, mußt du die INSERT-Query mit einem SELECT verbinden.
    Code: SQL  [Auswählen]
    INSERT INTO products_tags (products_id, options_id, values_id, sort_order, products_options_id, products_options_values_id)
    SELECT products_id, '', '', '', '', '' FROM products WHERE products_ean = 'DEINE_EAN';

    In die leeren Anführungsstriche mußt du die jeweiligen Werte eingeben für options_id, values_id, sort_order, usw..
    Bei DEINE_EAN ist klar was da hinein muß denke ich.

    Eine solche Query mag ungewöhnlich erscheinen, man kann jedoch bei einem SELECT feste vorgegebene Werte angeben die man nicht aus der Tabelle holt.
    Teste einfach mal mit z.B.:
    Code: SQL  [Auswählen]
    SELECT products_model, 'willkuerlicher Wert 1', 'willkuerlicher Wert 2' FROM products WHERE products_id = 1;

    Und: Immer vorher Tabelle sichern !!

    Gruß,
    noRiddle

    [EDIT Tomcraft 26.09.2023: Code korrigiert.]

    Q

    • Fördermitglied
    • Beiträge: 1.502
    Die Klammer am Schluss könnte einen Syntaxerror werfen. ;-)

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.748
    • Geschlecht:
    Dann mach' sie doch weg. :crazy:

    Q

    • Fördermitglied
    • Beiträge: 1.502
    erledigt  :-D

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.748
    • Geschlecht:
    Hätt' ich jetzt nicht zufällig Tomcrafts "EDIT" gesehen, hätt' ich fast an übernatürliche Fähigkeiten deinerseits geglaubt. :-D

    Merci.

    Gruß,
    noRiddle
    Modulshop - Eine große Auswahl an neuen und hilfreichen Modulen für die modified eCommerce Shopsoftware
    8 Antworten
    5633 Aufrufe
    25. August 2012, 23:06:12 von Buggyboy
    7 Antworten
    1832 Aufrufe
    22. Juli 2016, 14:11:41 von web28
    1 Antworten
    2517 Aufrufe
    07. März 2011, 16:22:40 von fishnet