Shop Hosting
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: MODUL: Cross Selling Produkte im Warenkorb, Checkout und Bestätigungsmail

    xtc-user09

    • Schreiberling
    • Beiträge: 265
    Hallo,
    ich habe das Modul eingebaut und es werden auch wunderbar beim Legen eines Artikels in den Warenkorb die jeweiligen Cross Selling Artikel unterhalb des Warenkorbes angezeigt. Sobald ich einen weiteren ARtikel in den Warenkorb lege, werden auch wieder dessen Cross-Selling Artikel angezeigt, ABER der vorherige Artikel wurde aus dem Warenkorb gelöscht. D.h. mit diesem Modul eingebaut kann man bei mir nur 1 Artikel im Warenkorb haben :-)
    Eingebaut habe ich das Modul in eine Version 1.03. Da das Modul korrekt eingebaut ist, frage ich mich, welche Änderung von 1.03-->1.05 vorhanden ist, die dieses Problem hervorruft?!?

    Danke schon einmal für Hilfe!

    speedy

    • Viel Schreiber
    • Beiträge: 3.214
    Ich hatte auch immer wieder einmal das Problem, dass ein Artikel aus dem Warenkorb verschwunden ist.
    Aktuell teste ich mit Trunk-1400 und derzeit verschwinden keine Artikel mehr.

    Ob dieses Modul hier mit reinspielt(e) kann ich nicht sagen. Es sollten viel mehr Leute generell alles viel intensiver testen.

    xtc-user09

    • Schreiberling
    • Beiträge: 265
    Was auffällt von 1.03 zu 1.05 ist die veränderte shopping_cart.php - bei der 1.03 ist noch viel PayPal/Express Zeug enthalten, in der 1.05er gar nicht mehr. Andere, erhebliche Veränderungen konnte ich in der Datei nicht finden.
    Das Problem ist, dass das Cross Selling Modul natürlich gar nichts bringt, wenn man beim Hinzufügen des Cross Selling Artikels den Hauptartikel verliert. :(
    Leider bin ich bei Updates laufender Systeme, wenn keine Fehler bekannt, immer sehr zurückhaltend, daher update ich für gewöhnlich nur, was wirklich notwendig ist für Module etc.

    xtc-user09

    • Schreiberling
    • Beiträge: 265
    Weiß jemand woran das Problem bei 1.03 liegen kann, d.h. welche Änderungen es an diesen Dateien zu 1.5 gibt?

    Anonym

    • Gast
    Hallo GTB,

    danke für deine Arbeit.
    Verbessern könnte man noch ein wenig (glaube ich zumindest).
    Was mir nicht gefallen hat:
    1.) Der Code in cross_selling.php wird immer ausgeführt.
    2.) Es werden Artikel vorgeschlagen, die schon im Warenkorb sind.

    Ich poste mal einfach eine geänderte Version, falls das nicht ok ist bitte löschen, ansonsten kannst du die Vorschläge (verbessert <- ich schreibe sonst Perl) ev. brauchen / übernehmen.

    Code: PHP  [Auswählen]
    <?php

    /* -----------------------------------------------------------------------------------------
       $Id: cross_selling.php 1243 2005-09-25 09:33:02Z mz $

       XT-Commerce - community made shopping
       http://www.(( Wir dulden keine kommerziellen Werbelinks - Bitte <a href="index.php?topic=3013.0">Forenregeln</a> beachten! ))

       Copyright (c) 2005 XT-Commerce

       Released under the GNU General Public License
       -----------------------------------------------------------------------------------------
       based on:
       (c) 2000-2001 The Exchange Project  (earlier name of osCommerce)
       (c) 2002-2003 osCommerce(also_purchased_products.php,v 1.21 2003/02/12); www.oscommerce.com
       (c) 2003      nextcommerce (also_purchased_products.php,v 1.9 2003/08/17); www.nextcommerce.org
       ---------------------------------------------------------------------------------------*/


    $module_smarty = new Smarty;
    $module_smarty->assign('tpl_path', 'templates/'.CURRENT_TEMPLATE.'/');

    //BOF - GTB - 2010-08-02 - XSELL Products Shopping Cart
    if (!strstr($_SERVER['PHP_SELF'], 'shopping_cart')) {
            $data = $product->getCrossSells();

    if (count($data)> 0) {

            $module_smarty->assign('language', $_SESSION['language']);
            $module_smarty->assign('module_content', $data);
            // set cache ID

            $module_smarty->caching = 0;
            $module = $module_smarty->fetch(CURRENT_TEMPLATE.'/module/cross_selling.html');
            $info_smarty->assign('MODULE_cross_selling', $module);
    }

    // reverse cross selling
    if (ACTIVATE_REVERSE_CROSS_SELLING=='true') {
    $module_smarty = new Smarty;
    //BOF - Dokuman - 2010-01-20: set template path also on activated cross selling
    $module_smarty->assign('tpl_path', 'templates/'.CURRENT_TEMPLATE.'/');
    //EOF - Dokuman - 2010-01-20: set template path also on activated cross selling

    $data = $product->getReverseCrossSells();      

            if (count($data)> 0) {

            $module_smarty->assign('language', $_SESSION['language']);
            $module_smarty->assign('module_content', $data);
            // set cache ID

            $module_smarty->caching = 0;
            $module = $module_smarty->fetch(CURRENT_TEMPLATE.'/module/reverse_cross_selling.html');

            $info_smarty->assign('MODULE_reverse_cross_selling', $module);
            }
    }
    }
    //EOF - GTB - 2010-08-02 - XSELL Products Shopping Cart

    // BOF - Kristian - 2010-11-08 - XSELL Products Shopping Cart - only in shopping cart
    if (strstr($_SERVER['PHP_SELF'], 'shopping_cart')) {
    // EOF - Kristian - 2010-11-08 - XSELL Products Shopping Cart - only in shopping cart

    //BOF - GTB - 2010-08-02 - XSELL Products Shopping Cart
            $xsell_products_cart_array = $_SESSION['cart']->get_products();

            for ($i=0; $i<count($order->products); $i++) {
            $xsell_products_cart_array[] = $order->products[$i];
            }

    // BOF - Kristian - 2010-11-08 -  xsell products may be in cart and reverse
            $seen = array();
    // EOF - Kristian - 2010-11-08 - XSELL Products Shopping Cart -

            for ($i=0; $i<count($xsell_products_cart_array); $i++) {
                    $products_id = preg_replace('/[^0-9\{\}]/', '', $xsell_products_cart_array[$i]['id']);
                    $product = new product($products_id);

    // BOF - Kristian - 2010-11-08 - remember products in cart
                    $seen[$product->data['products_id']]++;
    // EOF - Kristian - 2010-11-08 - remember products in cart

                    $temp[$i] = $product->getCrossSells( $cart = true );
                    if (!empty($temp[$i])) {
                            for ($x=0; $x<count($temp); $x++) {
                                    if (is_array($temp[$x])){
                                            foreach ($temp[$x] as $grp_id => $p_id) {
                                                    if (empty($x_sell_array[$grp_id])) {
                                                            $x_sell_array[$grp_id] .= implode(',' , $p_id);
                                                    } else {
                                                            $x_sell_array[$grp_id] .= ',' . implode(',' , $p_id);
                                                    }
                                            }
                                    }
                            }
                    }
            }      

            if (isset($x_sell_array) && is_array($x_sell_array)) {
                    foreach ($x_sell_array as $group => $value) {
                            $cross_sell_data[$group] = array ('GROUP' => xtc_get_cross_sell_name($group), 'PRODUCTS' => array ());
                            $value_id_array = explode(',' , $value);
                            $xsell_id_array = array_merge(array_unique($value_id_array));
                            for ($i=0; $i<count($xsell_id_array); $i++) {

    // BOF - Kristian - 2010-11-08 - continue if product seen in cart
                                    if($seen[$xsell_id_array[$i]]){
                                            continue;
                                    }
    // EOF - Kristian - 2010-11-08

                                    $product = new product($xsell_id_array[$i]);
                                    $cross_query = xtDBquery("select * from ".TABLE_PRODUCTS." p, ".TABLE_PRODUCTS_DESCRIPTION." pd
                                                    where p.products_id = '"
    .$xsell_id_array[$i]."'
                                                    and p.products_id = pd.products_id
                                                    and pd.language_id = '"
    .$_SESSION['languages_id']."'
                                                    and p.products_status = '1'"
    );
                                    $xsell = xtc_db_fetch_array($cross_query, true);
                                    $cross_sell_data[$group]['PRODUCTS'][] = $product->buildDataArray($xsell);
                            }
                    }
            }

            if (count($cross_sell_data)> 0) {
                    $module_smarty->assign('language', $_SESSION['language']);
                    $module_smarty->assign('module_content', $cross_sell_data);
                    $module_smarty->caching = 0;
                    $module = $module_smarty->fetch(CURRENT_TEMPLATE.'/module/cross_selling.html');
                    $smarty->assign('MODULE_cross_selling', $module);
            }

    //EOF - GTB - 2010-08-02 - XSELL Products Shopping Cart
    // BOF - Kristian - 2010-11-08 - only in shopping cart
    }
    // EOF - Kristian - 2010-11-08 - only in shopping cart
    ?>
    Gruß
     Kristian

    GTB

    • modified Team
    • Gravatar
    • Beiträge: 6.307
    • Geschlecht:
    Hallo Kristian,

    Schön wenn sich Leute acuh mal Gedanken dazu machen und nicht einfach nur blind einbauen !

    Deine Erweiterungen sind nicht verkehrt.

    [...]
    1.) Der Code in cross_selling.php wird immer ausgeführt.
    [...]

    das Module wird ja nur im Warenkorb und den Produkt Details included

    [...]
    2.) Es werden Artikel vorgeschlagen, die schon im Warenkorb sind.
    [...]

    deine Erweiterung hier ist mit Sicherheit Sinnvoll !

    Danke für deine Überlegungen !

    Gruss Gerhard

    xtc-user09

    • Schreiberling
    • Beiträge: 265
    Hallo Kristian,

    habe dein Script gerade eingebaut in eine 1.05 - funktioniert einwandfrei - Danke für die Erweiterungen! In der 1.03er Version tritt leider wieder das selbe Problem wie oben auf. Weißt du vielleicht, was von 1.03 zu 1.05 an diesem Bereich geändert wurde bzw. an welcher Datei das Problem liegen wird?

    MfG,
    xtc-user09

    Anonym

    • Gast
    Hallo,
    kleiner Bugfix zu meinem letzten Post
    Zwischen Zeile 122 und 123 fehlt:

    Code: PHP  [Auswählen]
                            if(count($cross_sell_data[$group]['PRODUCTS']) <1){
                                    unset($cross_sell_data[$group]);
                            }
     
    sonst kann es passieren, das man die Überschrift bekommt aber keine Produkte, wenn man z.B. zwei Artikel im Warenkorb hat, die aussschließlich sich selbst "cross-sellen".

    Gruß
     Kristian

    Anonym

    • Gast
    Hallo Kristian,

    habe dein Script gerade eingebaut in eine 1.05 - funktioniert einwandfrei - Danke für die Erweiterungen! In der 1.03er Version tritt leider wieder das selbe Problem wie oben auf. Weißt du vielleicht, was von 1.03 zu 1.05 an diesem Bereich geändert wurde bzw. an welcher Datei das Problem liegen wird?

    MfG,
    xtc-user09

    Es ist nicht mein Script es sind Vorschläge zur Verbesserung.
    Damit wird dir die Notwendigkeit deinen Shop zu aktualisieren nicht abgenommen.
    Ich habe in den letzten Wochen recht viel Source gelesen und denke die Änderungen von Version 1.03 bis zur aktuellen sind recht umfangreich. Ein paar Stellen updaten, auf dass diese Erweiterung funktioniert ist kein guter Gedanke.
    Erstens würdest du dann etliche andere Fehler produzieren, zweitens ist halbe Arbeit am Ende immer doppelte.

    Gruß
     Kristian

    GTB

    • modified Team
    • Gravatar
    • Beiträge: 6.307
    • Geschlecht:
    @xtc-user09

    Ich habe das mal in einer 1.03 Version eingebaut.

    Auch dort funktioniert das einwandfrei!

    xtc-user09

    • Schreiberling
    • Beiträge: 265
    @GTB: Danke für die Info. Ich habe das Modul nun auch in die Standard 1.03 eingebaut, wo es funktioniert hat. Das Problem liegt wohl an meinen diversen Anpassungen im Code. Bei den Moduldateien unterscheidet sich nur meine product.php von der Standarddatei. Ich habe einmal die Standard-Datei sowie meine Datei (vor Einbau des Moduls) angehängt.
    Ab der "function getGraduated() {" beginnen die Änderungen - der untere Bereich der "RatingStars" ist zusätzlich hinzugekommen.
    Kann hier vielleicht irgendwo der Fehler liegen oder kann es mit einer anderen PHP-Datei zu tun haben?

    Vielen Dank schon einmal!

    Viele Grüße,
    xtc-user09

    GTB

    • modified Team
    • Gravatar
    • Beiträge: 6.307
    • Geschlecht:
    du musst in der Datei nur die Funktion:

    Code: PHP  [Auswählen]
    function getCrossSells()
     
    ersetzen. Sonst habe ich keine Änderungen gemacht!

    Semmelbroesel

    • Frisch an Board
    • Beiträge: 69
    Hallo!

    Wenn ich auf den button_buy_now Button klicke, dann öffnet er bei mir den kompletten Artikel, anstatt diesen in den Warenkorb hinzuzufügen. `:/

    Zuerst dachte ich, ich habe es falsch eingebaut. Dann Backup wieder rübergezogen und mit WinMerge nochmal versucht - selbes Problem :(

    LG

    mantis

    • Viel Schreiber
    • Beiträge: 1.188
    • Geschlecht:
    Der Button Buy now ist nur in der Artikel listing und in der Artikel info wenn du diesen in der Artikel listing klickst tu er den Artikel in den Warenkorb außer du hast Attribute zugewiesen das ist kein Fehler sondern eine Erleichterung und eine Fehler vermeidung da der Artikel wenn Vorhanden die Attribute benötigt um den Checkout sinnvoll zu beenden.

    Gruss
    mantis

    Maria87

    • Mitglied
    • Beiträge: 108
    Jetzt verschiesst er gleich das ganze Pulver. ;-)

    :thx:

    Kleiner Preview auf modified eCommerce Shopsoftware 1.06. :B

    Grüße

    Torsten

    Wann kann man denn mit 1.06 ca. rechnen?

    12 Antworten
    2322 Aufrufe
    20. August 2020, 14:57:44 von lcase
    2 Antworten
    897 Aufrufe
    10. November 2021, 10:10:38 von lullifatz
    9 Antworten
    5310 Aufrufe
    24. Juli 2015, 15:39:58 von woodi24de
    58 Antworten
    23662 Aufrufe
    08. August 2010, 11:43:39 von mroewerd
               
    anything