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 duplizieren - Details des alten Artikels werden verändert

    amimoto

    • Fördermitglied
    • Beiträge: 43
    Hallo.
    Ich bin gerade über etwas gestolptert:
    Im modified shop v1.06 rev 4642 habe ich einen Artikel dupliziert. Danach komme ich in die Bearbeitungsmaske der Artikeldetails, dort habe ich einige Details geändert und gespeichert. Soweit so gut...
    ABER: Da ich den alten Artikel noch im Warenkorb hatte und er auch als Sonderangebot eingestellt war, habe ich festgestellt, daß ich den ALTEN Artikel verändert habe, der neue wurde direkt als 1:1 Kopie des alten gespeichert.
    Das ist doch eigentlich ein Fehler, ODER???

    Linkback: https://www.modified-shop.org/forum/index.php?topic=26124.0
    rechtstexte für onlineshop

    web28

    • modified Team
    • Beiträge: 9.404
    Der Sprung geht zum Originalartikel nicht zum neuen duplizierten. Das ist ein Fehler.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Zufällig gelesen und nicht verstanden.
    Aus Interesse:
    Fehler von wem ?
    Vom User oder vom Shopsystem und was genau ist der Fehler.

    Gruß,
    noRiddle

    web28

    • modified Team
    • Beiträge: 9.404
    Nach dem Duplizieren wird statt dem neuen (duplizierten) Artikel der Originalartikel aufgerufen -> Fehler

    Wenn man das anhand der Artikel-ID nicht kontrolliert (URL) und einfach Daten ändert -> auch ein Fehler

    xxhappyxx

    • Viel Schreiber
    • Beiträge: 829
    • Geschlecht:
    Sorry web28,

    aber

    Wenn man das anhand der Artikel-ID nicht kontrolliert (URL) und einfach Daten ändert -> auch ein Fehler

    da machst du es dir ein wenig zu leicht.

    Gruß Thomas

     

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Schaue mir das gerade an.
    Wenn ich das richtig sehe ist das gar nicht so einfach zu lösen, da die neue products_id ja erst durch autoincrement generiert wird und dann erst aus der DB geholt werden müsste und sich vorher nicht im array $_POST['multi_products'] befindet.

    web28 hat mir das ja nur erklärt und nicht gesagt, daß das so in Ordnung ist.

    Gruß,
    noRiddle

    *NACHTRAG*
    Wenn man das nicht checkt
    Seitenaufruf nach dem Kopieren/Verlinken
    muß man ja auch aufpassen nicht den verkehrten Artikel zu bearbeiten.
    Darf natürlich, wenn man es checkt, nicht so bleiben da es zu blindem Vertrauen verführt, klar.

    web28

    • modified Team
    • Beiträge: 9.404
    Sorry web28,

    aber

    Wenn man das anhand der Artikel-ID nicht kontrolliert (URL) und einfach Daten ändert -> auch ein Fehler

    da machst du es dir ein wenig zu leicht.

    Gruß Thomas

    Das Problem mit der "falschen" Weiterleitung habe ich bereits gefixt, trotzdem sollte man ein Auge auf die Produkt-ID haben! Beim Kopieren muss man besonders aufpassen und sollte auch umgehend die Artikelnummer ändern.

    web28

    • modified Team
    • Beiträge: 9.404
    @noRiddle

    Nötige Änderungen:

    admin/includes/classes/categories.php

    Suchen nach

    Code: PHP  [Auswählen]
        //get duplicate id
        $dup_products_id = xtc_db_insert_id();

    Danach einfügen:

    Code: PHP  [Auswählen]
        $this->dup_products_id = $dup_products_id;

    Schon hat man Zugriff auf die neue ID

    in admin/categories.php den Teil von //copy multi_products bis // --- MULTI COPY ENDS ---

    damit ersetzen:

    Code: PHP  [Auswählen]
    //copy multi_products
                                    if (is_array($_POST['multi_products']) && (is_array($_POST['dest_cat_ids']) || xtc_not_null($_POST['dest_category_id']))) {
                                            foreach ($_POST['multi_products'] AS $product_id) {
                                                    $product_id = xtc_db_prepare_input($product_id);
                                                    if (is_array($_POST['dest_cat_ids'])) {
                                                            foreach ($_POST['dest_cat_ids'] AS $dest_category_id) {
                                                                    $dest_category_id = xtc_db_prepare_input($dest_category_id);
                                                                    if ($_POST['copy_as'] == 'link') {
                                                                            $catfunc->link_product($product_id, $dest_category_id);
                      $pID = $product_id;
                                                                    } elseif ($_POST['copy_as'] == 'duplicate') {
                                                                            $catfunc->duplicate_product($product_id, $dest_category_id);
                      $pID = $catfunc->dup_products_id;
                                                                    } else {
                                                                            $messageStack->add_session('Copy type not specified.', 'error');
                                                                    }
                                                            }
                                                    } elseif (xtc_not_null($_POST['dest_category_id'])) {
                                                            $dest_category_id = xtc_db_prepare_input($_POST['dest_category_id']);
                                                            if ($_POST['copy_as'] == 'link') {
                                                                    $catfunc->link_product($product_id, $dest_category_id);
                    $pID = $product_id;
                                                            } elseif ($_POST['copy_as'] == 'duplicate') {
                                                                    $catfunc->duplicate_product($product_id, $dest_category_id);
                    $pID = $catfunc->dup_products_id;
                                                            } else {
                                                                    $messageStack->add_session('Copy type not specified.', 'error');
                                                            }
                                                    }
                                            }
                                    }

            $action = is_array($_POST['multi_products']) && isset($_POST['link_to_product']) ? '&action=new_product' : '';
            $pID = isset($pID) && $pID > 0 ? '&pID='. $pID : '';
                                    xtc_redirect(xtc_href_link(FILENAME_CATEGORIES, xtc_get_all_get_params(array ('cPath', 'action', 'pID', 'cID')).'cPath='.$dest_category_id.$pID.$action));
                            }
                            // --- MULTI COPY ENDS ---

    [EDIT Tomcraft 06.12.2015: Fehler in Code korrigiert.]

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Ah, doch so einfach.
    Danke dir.

    Gruß,
    noRiddle

    xxhappyxx

    • Viel Schreiber
    • Beiträge: 829
    • Geschlecht:
    Hallo web28,

    Danke für den Fix, werde ich noch heute Abend ändern.  :thumbs:

    Gruß Thomas

    amimoto

    • Fördermitglied
    • Beiträge: 43
    Hat ein bißchen gedauert, aber jetzt habe ich das mal eingebaut und getestet: Funzt!!!
    Danke, web28!

    Zaldoran

    • Fördermitglied
    • Beiträge: 417
    Hmmm. Ist der Fehler in der 4642 neu? Ich in meiner 4356 hab ich auch schon Artikel dupliziert, und ich meine da gabs keine Probleme... :nixweiss:

    web28

    • modified Team
    • Beiträge: 9.404
    Es wurde nur auf den Originalartikel weitergeleitet nicht auf den neuen Kopierten, das Kopieren an sich funktioniert fehlerfrei.

    Zaldoran

    • Fördermitglied
    • Beiträge: 417
    Ah jetzt sehe ich... Da das immer nur ein leerer Artikel mit vorbereiteten Texten war, war mit das nie aufgefallen.

    Namaqualand

    • Neu im Forum
    • Beiträge: 8
    Ist das in der aktuellen Version nicht gefixt worden?

    Gruß Namaqualand