"Also Purchased" und "Cross Selling" überladen

Thema wurde von Cyrus (LeGong), 1. August 2016 erstellt.

  1. Cyrus (LeGong)

    Cyrus (LeGong) Erfahrener Benutzer

    Registriert seit:
    21. Dezember 2011
    Beiträge:
    1.382
    Danke erhalten:
    315
    Danke vergeben:
    162
    Wie kann man in der Datei "../includes/classes/product.php" die Funktionen:
    "getAlsoPurchased()" und "getCrossSells()" überladen?
    Das Ziel ist es diese Ansichten mit einer Zeile mit "products_model", also Art-Nr.: zu erweitern.
    Um Listenansichten (List und Kachel) zu überladen benutze ich den folgenden Overload:
    ../GXUserComponents/overloads/product/cp_art_nr_product.inc.php" mit dem Inhalt:
    PHP:
    <?php

    class cp_art_nr_product extends cp_art_nr_product_parent
    {
       function 
    buildDataArray(&$array$image 'thumbnail')
       {
         global 
    $xtPrice$main;
         
         
    $t_data_array=parent::buildDataArray($array$image);
             
         
    //Additional info in $t_data_array
         
    $t_data_array['PRODUCTS_MODEL']=$array['products_model'];
         
    //Additional info in $t_data_array

         
    return $t_data_array;
         
       }
    }
    Zur zeit um die beiden Funktionen zu überladen, benutze ich die komplette Funktionen erweitert mit dem gewünschten Feld und das funktioniert auch:
    PHP:
    function getAlsoPurchased()
       {
         
    // BOF YOOCHOOSE
         
    if(defined('YOOCHOOSE_ACTIVE') && YOOCHOOSE_ACTIVE)
         {
           require_once (
    DIR_WS_INCLUDES 'yoochoose/recommendations.php');
           require_once (
    DIR_WS_INCLUDES 'yoochoose/functions.php');
           return 
    recommendData(getAlsoPurchasedStrategy(), $this->pIDMAX_DISPLAY_ALSO_PURCHASED);
         }
         
    // EOF YOOCHOOSE

         
    global $xtPrice;

         
    $module_content = array();
         
    $t_query=parent::getAlsoPurchased();

         
    $fsk_lock "";
         if(
    $_SESSION['customers_status']['customers_fsk18_display'] == '0')
         {
           
    $fsk_lock ' and p.products_fsk18!=1';
         }
         
    $group_check "";
         if(
    GROUP_CHECK == 'true')
         {
           
    $group_check " and p.group_permission_" $_SESSION['customers_status']['customers_status_id'] . "=1 ";
         }

         
    // BOF GM_MOD:
         
    $t_query "SELECT
                 p.products_fsk18,
                 p.products_id,
                 p.products_price,
                 p.products_tax_class_id,
                 p.products_image,
                 p.products_model,
                 pd.gm_alt_text,
                 pd.products_name,
                 pd.products_meta_description,
                 p.products_vpe,
                 p.products_vpe_status,
                 p.products_vpe_value,
                 pd.products_short_description
               FROM
                 " 
    TABLE_ORDERS_PRODUCTS " opa,
                 " 
    TABLE_ORDERS_PRODUCTS " opb,
                 " 
    TABLE_ORDERS " o,
                 " 
    TABLE_PRODUCTS " p,
                 " 
    TABLE_PRODUCTS_DESCRIPTION " pd
               WHERE
                 opa.products_id = '" 
    $this->pID "'
                 AND opa.orders_id = opb.orders_id
                 AND opb.products_id != '" 
    $this->pID "'
                 AND opb.products_id = p.products_id
                 AND opb.orders_id = o.orders_id
                 AND p.products_status = '1'
                 AND pd.language_id = '" 
    . (int)$_SESSION['languages_id'] . "'
                 AND opb.products_id = pd.products_id
                 AND o.date_purchased > DATE_SUB(NOW(),INTERVAL " 
    MAX_DISPLAY_ALSO_PURCHASED_DAYS " DAY)
                 " 
    $group_check "
                 " 
    $fsk_lock "
               GROUP BY
                 p.products_id
               ORDER BY
                 o.date_purchased desc
               LIMIT
                 " 
    MAX_DISPLAY_ALSO_PURCHASED;
         
    $t_query xtc_db_query($t_query);
         while(
    $orders xtc_db_fetch_array($t_querytrue))
         {
           
    $module_content[] = $this->buildDataArray($orders);
         }

         return 
    $module_content;
       }
    da soll nur "p.products_model" zusätzlich abgerufen werden. Aber das ist doch nicht Sinn der Überladung.
    Hat jemand eine Idee, wie ich diese beide Funktionen überladen kann?
     
  2. Anonymous

    Anonymous Beta-Held

    Registriert seit:
    22. März 2015
    Beiträge:
    2.381
    Danke erhalten:
    640
    Danke vergeben:
    412
    Welche html-Datei muss ich bearbeiten um in der Artikelansicht bei "Kunden, welche diesen Artikel bestellten, haben auch folgende Artikel gekauft:" zusätzliche Daten (z.B. EAN) einzufügen. Die products.php habe ich bereits geändert.

    gekauft.JPG

    Danke
     
  3. Cyrus (LeGong)

    Cyrus (LeGong) Erfahrener Benutzer

    Registriert seit:
    21. Dezember 2011
    Beiträge:
    1.382
    Danke erhalten:
    315
    Danke vergeben:
    162
    #3 Cyrus (LeGong), 2. August 2016
    Zuletzt bearbeitet: 2. August 2016
    Um einen Feld wie "products_ean" in der Listenansichten, "default", "tiled", "also purchased", "UnsereEmpfehlung", "new" und "special" anzeigen zu lassen, müssen diese Informationen zuerst mal per Overload für die HTML-Dateien zur Verfügung stehen. Das geht wie folgt:
    PHP:
    <?php

    class cp_art_nr_product extends cp_art_nr_product_parent
    {
       function 
    buildDataArray(&$array$image 'thumbnail')
       {
         global 
    $xtPrice$main;
       
         
    $t_data_array=parent::buildDataArray($array$image);
           
         
    //Additional info in $t_data_array
         
    $t_data_array['PRODUCTS_MODEL']=$array['products_model'];
         
    //Additional info in $t_data_array

         
    return $t_data_array;
       
       }
     
       function 
    getAlsoPurchased()
       {
         
    // BOF YOOCHOOSE
         
    if(defined('YOOCHOOSE_ACTIVE') && YOOCHOOSE_ACTIVE)
         {
           require_once (
    DIR_WS_INCLUDES 'yoochoose/recommendations.php');
           require_once (
    DIR_WS_INCLUDES 'yoochoose/functions.php');
           return 
    recommendData(getAlsoPurchasedStrategy(), $this->pIDMAX_DISPLAY_ALSO_PURCHASED);
         }
         
    // EOF YOOCHOOSE

         
    global $xtPrice;

         
    $module_content = array();
         
    $t_query=parent::getAlsoPurchased();

         
    $fsk_lock "";
         if(
    $_SESSION['customers_status']['customers_fsk18_display'] == '0')
         {
           
    $fsk_lock ' and p.products_fsk18!=1';
         }
         
    $group_check "";
         if(
    GROUP_CHECK == 'true')
         {
           
    $group_check " and p.group_permission_" $_SESSION['customers_status']['customers_status_id'] . "=1 ";
         }

         
    // BOF GM_MOD:
         
    $t_query "SELECT
                 p.products_fsk18,
                 p.products_id,
                 p.products_price,
                 p.products_tax_class_id,
                 p.products_image,
                 p.products_model,
                 p.products_ean,
                 pd.gm_alt_text,
                 pd.products_name,
                 pd.products_meta_description,
                 p.products_vpe,
                 p.products_vpe_status,
                 p.products_vpe_value,
                 pd.products_short_description
               FROM
                 " 
    TABLE_ORDERS_PRODUCTS " opa,
                 " 
    TABLE_ORDERS_PRODUCTS " opb,
                 " 
    TABLE_ORDERS " o,
                 " 
    TABLE_PRODUCTS " p,
                 " 
    TABLE_PRODUCTS_DESCRIPTION " pd
               WHERE
                 opa.products_id = '" 
    $this->pID "'
                 AND opa.orders_id = opb.orders_id
                 AND opb.products_id != '" 
    $this->pID "'
                 AND opb.products_id = p.products_id
                 AND opb.orders_id = o.orders_id
                 AND p.products_status = '1'
                 AND pd.language_id = '" 
    . (int)$_SESSION['languages_id'] . "'
                 AND opb.products_id = pd.products_id
                 AND o.date_purchased > DATE_SUB(NOW(),INTERVAL " 
    MAX_DISPLAY_ALSO_PURCHASED_DAYS " DAY)
                 " 
    $group_check "
                 " 
    $fsk_lock "
               GROUP BY
                 p.products_id
               ORDER BY
                 o.date_purchased desc
               LIMIT
                 " 
    MAX_DISPLAY_ALSO_PURCHASED;
         
    $t_query xtc_db_query($t_query);
         while(
    $orders xtc_db_fetch_array($t_querytrue))
         {
           
    $module_content[] = $this->buildDataArray($orders);
         }

         return 
    $module_content;
       }

       
    /**
        *
        *
        *  Get Cross sells
        *
        *
        */
       
    function getCrossSells()
       {
         global 
    $xtPrice;
       
         
    $t_query "SELECT
                 products_xsell_grp_name_id
               FROM
                 " 
    TABLE_PRODUCTS_XSELL "
               WHERE
                 products_id = '" 
    $this->pID "'
               GROUP BY
                 products_xsell_grp_name_id"
    ;
         
    $cs_groups xtc_db_query($t_query);
         
    $cross_sell_data = array();
         if(
    xtc_db_num_rows($cs_groupstrue) > 0)
         {
           while(
    $cross_sells xtc_db_fetch_array($cs_groupstrue))
           {

             
    $fsk_lock '';
             if(
    $_SESSION['customers_status']['customers_fsk18_display'] == '0')
             {
               
    $fsk_lock ' AND p.products_fsk18!=1';
             }
             
    $group_check "";
             if(
    GROUP_CHECK == 'true')
             {
               
    $group_check " AND p.group_permission_" $_SESSION['customers_status']['customers_status_id'] . "=1 ";
             }

             
    // BOF GM_MOD:
             
    $cross_query "
                     SELECT
                       p.products_fsk18,
                       p.products_tax_class_id,
                       p.products_id,
                       p.products_image,
                       p.products_model,
                       p.products_ean,
                       pd.products_name,
                       pd.products_short_description,
                       pd.products_meta_description,
                       p.products_fsk18,
                       p.products_price,
                       pd.gm_alt_text,
                       p.products_vpe,
                       p.products_vpe_status,
                       p.products_vpe_value,
                       xp.sort_order
                     FROM
                       " 
    TABLE_PRODUCTS_XSELL " xp,
                       " 
    TABLE_PRODUCTS " p,
                       " 
    TABLE_PRODUCTS_DESCRIPTION " pd
                     WHERE
                       xp.products_id = '" 
    $this->pID "'
                     AND
                       xp.xsell_id = p.products_id " 
    .
                       
    $fsk_lock .
                       
    $group_check "
                     AND
                       p.products_id = pd.products_id
                     AND
                       xp.products_xsell_grp_name_id='" 
    $cross_sells['products_xsell_grp_name_id'] . "'             
                     AND
                       pd.language_id = '" 
    . (int)$_SESSION['languages_id'] . "'
                     AND
                       p.products_status = '1'
                     ORDER BY
                       xp.sort_order ASC"
    ;

             
    $cross_query xtDBquery($cross_query);
             if(
    xtc_db_num_rows($cross_querytrue) > 0)
             {
               
    $cross_sell_data[$cross_sells['products_xsell_grp_name_id']] = array('GROUP' => xtc_get_cross_sell_name($cross_sells['products_xsell_grp_name_id']), 'PRODUCTS' => array());
             }

             while(
    $xsell xtc_db_fetch_array($cross_querytrue))
             {
               
    $cross_sell_data[$cross_sells['products_xsell_grp_name_id']]['PRODUCTS'][] = $this->buildDataArray($xsell);
             }
           }
           return 
    $cross_sell_data;
         }
       }

       
    /**
        *
        * get reverse cross sells
        *
        */
       
    function getReverseCrossSells()
       {
         global 
    $xtPrice;


         
    $fsk_lock '';
         if(
    $_SESSION['customers_status']['customers_fsk18_display'] == '0')
         {
           
    $fsk_lock ' and p.products_fsk18!=1';
         }
         
    $group_check "";
         if(
    GROUP_CHECK == 'true')
         {
           
    $group_check " and p.group_permission_" $_SESSION['customers_status']['customers_status_id'] . "=1 ";
         }

         
    // BOF GM_MOD:
         
    $t_query "SELECT
                 p.products_fsk18,
                 p.products_tax_class_id,
                 p.products_id,
                 p.products_image,
                 p.products_model,
                 pd.products_name,
                 pd.products_short_description,
                 pd.products_meta_description,
                 p.products_fsk18,
                 p.products_price,
                 pd.gm_alt_text,
                 p.products_vpe,
                 p.products_vpe_status,
                 p.products_vpe_value,
                 xp.sort_order
               FROM
                 " 
    TABLE_PRODUCTS_XSELL " xp,
                 " 
    TABLE_PRODUCTS " p,
                 " 
    TABLE_PRODUCTS_DESCRIPTION " pd
               WHERE
                 xp.xsell_id = '" 
    $this->pID "'
               AND
                 xp.products_id = p.products_id " 
    .
               
    $fsk_lock .
               
    $group_check "
               AND
                 p.products_id = pd.products_id
               AND
                 pd.language_id = '" 
    . (int)$_SESSION['languages_id'] . "'
               AND
                 p.products_status = '1'
               ORDER BY
                 xp.sort_order ASC"
    ;
       
         
    $cross_query xtc_db_query($t_query);

         while(
    $xsell xtc_db_fetch_array($cross_querytrue))
         {
           
    $cross_sell_data[] = $this->buildDataArray($xsell);
         }

         return 
    $cross_sell_data;
       }
    }
     
    ?>
    Allerdings, wie oben erwähnt, suche ich eine bessere Methode um die Funktionen "getAlsoPurchased()", "getCrossSells()" und "get ReverseCrossSells()" zu überladen. Obwohl, ist es manchmal nicht anderes möglich. Man muss die ganze Funktion kopieren, erweitern und als Overload benutzen.
    Um die Listenansicht beim Aufruf einer Kategorie zu erweitern (Vorausgesetzt man setzt den Swiper nicht ein), reicht es, wenn man die HTML-Datei "/SHOP-ORDNER/templates/Honeygrid/snippets/product_listing/product.html" kopiert, als "product-USERMOD.html" speichert und dann an den gewünschten Stellen erweitert.

    swiper-einstellung.jpg
    HTML:
    <div class="title">
       <a href="{$p_url}"{if $p_meta} title="{$p_meta}"{/if} class="product-url">
          {$p_headline}
          <!-- BOF EAN-Feld -->
          &nbsp;&nbsp;<span class="products_model hidden-grid" style="font-size:12px; color:grey;">{$txt.text_products_model}{$module_data.PRODUCTS_MODEL}</span>
          <!-- EOF -->
       </a>
    </div>
    
    listenansicht.jpg
    Der Code ist nur für den Listenansicht "default". Hier muss der Tag "span" die class "hidden-grid" bekommen, damit es nur in "Default-Modus" angezeigt wird und nicht in dem "Tiled-Modus"
    Für den "Tiled-Modus" (In der selben Datei, weiter unten) sieht der Code dann so aus:
    HTML:
    <div class="price">
       <span class="current-price-container"{if $p_meta} title="{$p_meta}"{/if}>
          {$p_price}{if $p_vpe}<br /><span class="gm_products_vpe products-vpe">{$p_vpe}</span>{/if}
       </span>
                   
       <!-- BOF EAN-Feld -->
       <span class="gm_products_vpe products-vpe hidden-list">
          {$txt.text_products_model}
          {$module_data.PRODUCTS_MODEL} 
       </span>             
       <!-- EOF -->
    </div>
    
    Hier bekommt der Tag "span" die class "hidden-list", damit es in der Listenansicht "default" nicht sichtbar wird.
    kachelansicht.jpg
    Nun, möchtet man die Listenansichten "UnsereEmpfehlung", "AlsoPurchased" und "CrossSells" auch erweitern, dann muss man die HTML-Datei "/SHOP-ORDNER/templates/Honeygrid/snippets/product_listing/product_grid_only.html" kopieren, als "product_grid_only-USERMOD.html" speichern und folgendermaßen erweitern:

    HTML:
    <div class="price">
       <span class="current-price-container"{if $p_meta} title="{$p_meta}"{/if}>
          {$p_price}{if $p_vpe}<br /><span class="gm_products_vpe products-vpe">{$p_vpe}</span>{/if}
       </span>
                 
       <!-- BOF Erweiterung-->
       <span class="gm_products_vpe products-vpe hidden-list">
          {$txt.text_products_model}
          {$PRODUCT.PRODUCTS_MODEL} 
       </span>             
       <!-- EOF -->
    </div>
    
    Hier wird es nur einmal eingetragen.
    Startseite:
    unserEmpf.jpg

    Cross Sells:
    crossSells.jpg

    Also Purchased:
    alsoPurch.jpg

    Hat man in der Template-Einstellungen "Swiper" auf On:
    swiper-on.jpg
    dann muss man auch diese HTML-Datei erweitern:
    "/SHOP-ORDNER/templates/Honeygrid/snippets/product_listing/product_listing_swiper.html". Kopieren, als "product_listing_swiper-USERMOD.html" speichern und erweitern:
    HTML:
    {foreach item=PRODUCT from=$content_data.SWIPER_DATA.products}
    
               {product_images product_id=$PRODUCT.PRODUCTS_ID p_name=$PRODUCT.PRODUCTS_NAME p_image=$PRODUCT.PRODUCTS_IMAGE out=p_imgs }
               {product_ribbons showManufacturerImages=$PRODUCT.showManufacturerImages showProductRibbons=$PRODUCT.showProductRibbons product_id=$PRODUCT.PRODUCTS_ID out=ribbons}
               {include file="get_usermod:{$content_data.SWIPER_DATA.productTemplate}"
                 is_swiper="true"
                 showRating=$content_data.SWIPER_DATA.showRating
                 ribbons=$ribbons
                 p_image=$PRODUCT.PRODUCTS_IMAGE
                 p_imgs=$p_imgs
                 p_url=$PRODUCT.PRODUCTS_LINK
                 p_img_title=$PRODUCT.PRODUCTS_IMAGE_ALT
                 p_img_alt=$PRODUCT.PRODUCTS_IMAGE_ALT
                 p_meta=$PRODUCT.SHORTENED_META_DESCRIPTION
                 p_name_full=$PRODUCT.PRODUCTS_NAME
                 p_headline=$PRODUCT.HEADLINE
                 p_short_desc=$PRODUCT.SHORTENED_PRODUCTS_DESCRIPTION
                 p_price=$PRODUCT.PRODUCTS_PRICE
                 p_vpe=$PRODUCT.PRODUCTS_VPE
                 p_model=$PRODUCT.PRODUCTS_MODEL <!-- Hier die Erweiterung -->
                 p_shipping_name=$PRODUCT.DELIVERY
                 data_index=$PRODUCT.INDEX
                 p_id=$PRODUCT.PRODUCTS_ID
               }
    
             {/foreach}
    
    Auch die Sprachdatei muss erweitert werden. Dazu eine PHP-Datei in der folgende Ordner anlegen:
    "/SHOP-ORDNER/lang/german/user_sections/product/product_listing.lang.inc.php".
    Man kann auch den Ordner "product" ganz weg lassen und die Datei "product_listing.lang.inc.php" direkt in dem Ordner "user_sections" speichern. Ich mag es so, da ich die Dateien schneller zu ordnen kann.
    PHP:
    <?php
    $t_language_text_section_content_array 
    = array
    (
       
    'text_products_model' => 'Art-Nr.: '
    );
    Das war es auch.
    Viel Erfolg.
     
  4. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    33.570
    Danke erhalten:
    10.414
    Danke vergeben:
    1.498
    Also, die products.php habe ich überladen, aber egal wo ihc etwas in der
    honeygrid/ snippets/ product_listing/ product.html oder product_grid-only.html
    eintrage, auf den Seiten products_new.php und specials.php
    und auch uf der Startseite, wenn keine swiper aktiviert sind, kommt keine Anzeige.
     
  5. Cyrus (LeGong)

    Cyrus (LeGong) Erfahrener Benutzer

    Registriert seit:
    21. Dezember 2011
    Beiträge:
    1.382
    Danke erhalten:
    315
    Danke vergeben:
    162
    Denk daran, dass in der Datei product.html heißt die Erweiterung:
    {$module_data.PRODUCTS_MODEL}
    in der Datei product_grid_only.html heißt es aber:
    {$PRODUCT.PRODUCTS_MODEL}
     
  6. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    33.570
    Danke erhalten:
    10.414
    Danke vergeben:
    1.498
    Oh man...in der products_grid_only.html war die Bezeichnung anders.
    Jetzt geht alles - freu
     
  7. richardhoehn

    richardhoehn Erfahrener Benutzer

    Registriert seit:
    17. Januar 2013
    Beiträge:
    48
    Danke erhalten:
    0
    Hallo,

    ich habe den gleichen Wunsch, alles gemacht wie beschrieben, bei mir ist jetzt auch die Artikel-Nr. zu sehen. Wie bekomme ich zudem unter dem Artikel-Namen die Kurzbeschreibung hin, die in der Listenansicht zu sehen ist.

    Gibt es außerdem die Möglichkeit, unter dem Preis einen Grundpreis darzustellen? Wenn ja, wie?

    Vielen Dank im Voraus.

    MfG Höhn
     
  8. richardhoehn

    richardhoehn Erfahrener Benutzer

    Registriert seit:
    17. Januar 2013
    Beiträge:
    48
    Danke erhalten:
    0
  9. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    33.570
    Danke erhalten:
    10.414
    Danke vergeben:
    1.498
    Ich würde nicht die Kurzbeschreibung in die Box setzten. Entweder muss diese nach x Zeichen abgeschnitten werden, oder die Boxen werden unterschiedlich hoch, wodurch unschöne Lücken in der Darstellung auftreten, oder der Text schiebt scih über die Preisangabe.

    Der Grundpreis wird in meinem Testshop angezeigt. Ich schaue da nachher was ich da gemacht habe.
     
  10. Cyrus (LeGong)

    Cyrus (LeGong) Erfahrener Benutzer

    Registriert seit:
    21. Dezember 2011
    Beiträge:
    1.382
    Danke erhalten:
    315
    Danke vergeben:
    162
    Die Idee 2 unterschiedlich aufgebaute Darstellungen zu Programmieren, ist auf die Analyse des Verhaltens der Besucher auf Websites basiert.
    Die Besucher einer Website haben unterschiedliche Vorgehensweisen und Interessen, wenn sie die Produkte einer Kategorie durcharbeiten. Ein Besucher möchtet eine kurze Produktbeschreibung, bevor er die Ware in den Warenkorb legt. Der andere möchtet erst das gewünschte Produkt finden - OHNE MIT VIEL INFO BOMBARDIERT ZU WERDEN - bevor er sich für die Details interessiert.
    Die Kachelansicht ist für diese Klasse von Besuchern konzipiert. Packt man viele Infos von Listenansicht auf Kachelansicht, dann geht der Sinn der Kachelansicht verloren.
    Daher würde ich dich davon abraten, die kurze Beschreibung in der Kachelansicht verfügbar zu machen.
     
  11. richardhoehn

    richardhoehn Erfahrener Benutzer

    Registriert seit:
    17. Januar 2013
    Beiträge:
    48
    Danke erhalten:
    0
    Vielen Dank schon mal für eure Meinungen, allerdings habe ich nach meinem Shop-Update von 3.0.0.0 auf 3.2.0.1 eine Fehlermeldung:
    Fatal error: Class 'cp_art_nr_product_parent' not found in /homepages/11/d451176088/htdocs/plotterfolie/GXUserComponents/user_classes/overloads/product/cp_art_nr_product.inc.php on line 4
    FATAL ERROR(1): "Class 'cp_art_nr_product_parent' not found"

    Wo liegt genau mein Fehler?
     
  12. Cyrus (LeGong)

    Cyrus (LeGong) Erfahrener Benutzer

    Registriert seit:
    21. Dezember 2011
    Beiträge:
    1.382
    Danke erhalten:
    315
    Danke vergeben:
    162
    Die Ordnerangabe stimmt nicht. Die Datei "cp_art_nr_product.inc.php" muss in dem Ordner "GXUserComponents/overloads/product" liegen. Evtl. irgendwas bei der Update falsch gelaufen.
     
  13. #13 postel, 7. Dezember 2017
    Zuletzt von einem Moderator bearbeitet: 7. Dezember 2017
    Hallo Cyrus, muss das Thema noch mal hochholen, vielleicht kannst du mir helfen.
    Möchte eigentlich nur getCrossSells und getReverseCrossSells mit den products_tax_info
    überladen, da ich bei diesen Button in den Warenkorb habe. Momentan habe ich das einfach über Html eingebaut und das Problem ist, das bei Händlern die Netto-Preise sehen, dann incl.MWST steht.
    Beim Überladen der product.php bekommen ich nur SLQ-Error 256?

    Nachtrag: Erledigt, habs hinbekommen :)