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: Preisliste

    MrGreenlist

    • Frisch an Board
    • Beiträge: 89
    Preisliste
    am: 24. Mai 2016, 15:20:52
    Hallo,

    hat schon jemand ein Preislistenmodul erstellt?
    Ich hatte eins von XTC, ich weiß nicht ob man das umschreiben kann.
    Es zeigt die Artikel einer Kategorie als Liste mit Verfügbarkeitsstatus und Preis.

    Code: PHP  [Auswählen]
    <?php

    include ('includes/application_top.php');
    $smarty = new Smarty;
    // include boxes
    require (DIR_FS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/source/boxes.php');

    $breadcrumb->add(PREISLISTE, xtc_href_link(FILENAME_PREISLISTE));

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

    // Auslesen der anzuzeigenden Produkte wenn eine Kategorie ausgewählt wurde
    if ($_GET['preisliste'] >= 1) {
    $preisliste_query_raw = xtc_db_query("
                                                                    SELECT p.products_id,
                                            pd.products_name,
                                            p.products_price,
                                                                            p.products_quantity,
                                                                            p.products_model,
                                            p.products_tax_class_id,
                                                                            p.products_shippingtime,
                                            p.products_fsk18
                                                                    FROM
                                                                            "
    .TABLE_PRODUCTS." p,
                                                                            "
    .TABLE_PRODUCTS_DESCRIPTION." pd,
                                                                            "
    .TABLE_PRODUCTS_TO_CATEGORIES." p2c
                                    WHERE
                                                                            p.products_status = '1'
                                    AND
                                                                            p.products_id = pd.products_id
                                            "
    .$group_check."
                                            "
    .$fsk_lock."
                                                                    AND
                                                                            p2c.categories_id = '"
    .(int) $_GET['preisliste']."'
                                                                    AND
                                                                            p2c.products_id = p.products_id
                                    AND
                                                                            pd.language_id = '"
    .(int) $_SESSION['languages_id']."'
                                    ORDER BY
                                                                            p.products_model ASC"
    );
                                                                   
    $module_content = '';
            while ($preisliste = xtc_db_fetch_array($preisliste_query_raw)) {
                    $module_content[] = $product->buildDataArray($preisliste);
            }
    }


    // Kategorien auslesen (nur die, die Produkte enthalten)
    $preisliste_cat_raw = xtc_db_query(
                                                                    "SELECT DISTINCT
                                                                            cd.categories_name, cd.categories_id
                                                                    FROM
                                                                            "
    .TABLE_PRODUCTS." p,
                                                                            "
    .TABLE_CATEGORIES_DESCRIPTION." cd,
                                                                            "
    .TABLE_PRODUCTS_TO_CATEGORIES." p2c
                                                                    WHERE
                                                                            p2c.products_id = p.products_id
                                                                    AND
                                                                            p2c.categories_id = cd.categories_id
                                                                    AND
                                                                            cd.language_id = '"
    .(int) $_SESSION['languages_id']."'
                                                                    ORDER BY
                                                                            cd.categories_name asc"
    );

    // Kategorie-Dropdown erzeugen
    $dropdown = '<select name="preisliste" onchange="document.preisliste.submit();">';
    $dropdown .= "<option value=\"\">".PREISLISTE_AUSWAHL."</option>";
    while ($categories = xtc_db_fetch_array($preisliste_cat_raw)) {
            $dropdown .= "<option value=\"".$categories['categories_id']."\"";
            if ($categories['categories_id'] == $_GET['preisliste']) {
                    $dropdown .= "selected=\"selected\"";
                    $smarty->assign('CATNAME', $categories['categories_name']);     // Ausgabe des Kategorienamens, sobald eine Kategorie gewählt wurde
            }
            $dropdown .= ">".$categories['categories_name']."</option>";
    }
    $dropdown .= '</select>';

    // Prüfung ob die Lagerhaltung verwendet wird
    $preisliste_query_stock = xtc_db_query("
                                                                            SELECT
                                                                                    configuration_value
                                                                            FROM
                                                                                    "
    .TABLE_CONFIGURATION."
                                                                            WHERE
                                                                                    configuration_key = 'STOCK_CHECK'"
    );
    $stockcheck = xtc_db_fetch_array($preisliste_query_stock);


    $smarty->assign('LAGER', $stockcheck['configuration_value']);


    require (DIR_WS_INCLUDES.'header.php');
    $smarty->assign('BUTTON_CONTINUE', xtc_image_submit('button_auswahl.gif', BUTTON_AUSWAHL));
    $smarty->assign('FORM_START', '<form name="preisliste" method="get" action="'.xtc_href_link(FILENAME_PREISLISTE).'">');
    $smarty->assign('FORM_END', '</form>');
    $smarty->assign('CATDROPDOWN', $dropdown);
    $smarty->assign('language', $_SESSION['language']);
    $smarty->assign('module_content', $module_content);
    $smarty->caching = 0;
    $main_content = $smarty->fetch(CURRENT_TEMPLATE.'/module/preisliste.html');

    $smarty->assign('language', $_SESSION['language']);
    $smarty->assign('main_content', $main_content);
    $smarty->caching = 0;
    if (!defined(RM))
            $smarty->load_filter('output', 'note');
    $smarty->display(CURRENT_TEMPLATE.'/index.html');
    include ('includes/application_bottom.php');
    ?>
     

    Code: PHP  [Auswählen]
    {config_load file="$language/preisliste.conf" section="preisliste"}
    <h3>{#heading#}</h3>
    <br />
    {$FORM_START}
    <div style="width: 320px; overflow: hidden; float: left; padding-top: 3px;">{#auswahl#} {$CATDROPDOWN}</div>
    <noscript>
    <div style="float: left; width: 110px;">{$BUTTON_CONTINUE}</div>
    </noscript>
    <div style="clear: both; height: 0; overflow: hidden;">&nbsp;</div>
    {$FORM_END}
    {if $module_content != ''}
    <div style="border: 1px solid #000000; padding: 10px 0 10px 0; margin: 10px 0 0 0;">
    <p style="font-weight: bold; padding-left: 4px;">{$CATNAME}</p>
    <table cellpadding="2" cellspacing="0">
            <tr>
                <th width="70">{#artnr#}</th>
           <th width="60" style="text-align: left;">{#lieferzeit#}</th>
            <th width="200" style="text-align: left;">{#artikel#}</th>
           <th width="110" style="text-align: right;">{#preis#}</th>
           <th width="80">{#kaufen#}</th>
            </tr>
      {foreach name=aussen item=module_data from=$module_content}
      {php} $col++;  {/php}
            <tr style="background-color: {cycle values="#eeeeee,#ffffff"}">
            <td style="text-align: right; padding: 0 10px 0 3px;">{$module_data.PRODUCTS_MODEL}</td>
            <td>{if $module_data.PRODUCTS_SHIPPING_NAME}{if $module_data.PRODUCTS_SHIPPING_IMAGE}<img src="{$module_data.PRODUCTS_SHIPPING_IMAGE}" alt="{$module_data.PRODUCTS_SHIPPING_NAME}" title="{$module_data.PRODUCTS_SHIPPING_NAME}" />{/if}&nbsp;{/if}</td>        
            <td><a href="{$module_data.PRODUCTS_LINK}">{$module_data.PRODUCTS_NAME}</a></td>
            <td style="text-align: right;">{$module_data.PRODUCTS_PRICE}*</td>
            <td style="text-align: center;">
           {if $LAGER == 'true'}
                    {if $module_data.PRODUCTS_QUANTITY <= 0}
                    {#anfrage#}
                    {else}
                            <a href="{$module_data.PRODUCTS_TEXT_BUY_NOW}">{#korb#}</a>
                    {/if}
           {else}
                            <a href="{$module_data.PRODUCTS_TEXT_BUY_NOW}">{#korb#}</a>
          {/if}
            </td>
            </tr>                                                          
     {/foreach}

      </table>
      <p style="text-align: right;">{#preiseohneversand#}&nbsp;</p>
     </div>
    {/if}


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

    webald

    • modified Team
    • Beiträge: 2.791
    Re: Preisliste
    Antwort #1 am: 25. Mai 2016, 08:20:38
    Wie wäre es mit einem einfachen Link?

    https://demo.modified-shop.org/tags/modified-1.06/advanced_search_result.php?keywords=%25%25%25&x=0&y=0

    Das ist die Suche nach %%% und listet alle Artikel auf.

    MrGreenlist

    • Frisch an Board
    • Beiträge: 89
    Re: Preisliste
    Antwort #2 am: 25. Mai 2016, 10:29:37
    Das trifft leider nicht den Zweck.
    Die alte Liste lieferte alle Artikel nach Artikelnummer sortiert in extrem kompakter Form,
    Jede Zeile ein anderer Artikel, dutzende Artikel auf einen Blick. Für mich war das sehr wichtig, um den Überblick zu behalten, welchen Verfügbarkeitsstatus die Artikel haben und welchen Preis.
    Nach jeder Warenbestellung habe ich die Liste durchgesehen und konnte so sehr schnell Änderungen vornehmen.
    Für die Kunden war das natürlich auch super.
    Zitat
    {#artnr#}{#lieferzeit#}{#artikel#}{#preis#}{#kaufen#}

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Re: Preisliste
    Antwort #3 am: 25. Mai 2016, 11:01:55
    Das geht über einen einzigen SQL Query, den Du Dir als VIEW abspeichern kannst. Den aufrufen und Export nach Excel ....
    Tabellen products, products_description und specials
    Code: SQL  [Auswählen]
    SELECT p.products_model, p.products_quantity, pd.products_name, p.products_price, IF( ps.specials_new_products_price < p.products_price, ps.specials_new_products_price, p.products_price ) AS smaller_price
    FROM products p
    LEFT JOIN products_description pd ON p.products_id = pd.products_id
    LEFT JOIN specials ps ON ps.products_id = p.products_id
    WHERE p.products_status = '1'
    AND pd.language_id =2
    ORDER BY p.products_model;

    Wenn auch deaktivierte Artikel angezeigt werden sollen, das Löschen:
    Code: SQL  [Auswählen]
    p.products_status = '1'
    AND

    Wenn Du bevorzugst das ganze direkt im Backend des Shops zu haben, müsste man den Query danach in eine HTML Tabelle packen, fertig.

    MrGreenlist

    • Frisch an Board
    • Beiträge: 89
    Re: Preisliste
    Antwort #4 am: 25. Mai 2016, 11:07:45
    Ohne das vorherige Posting genauer gelesen zu haben, noch ein neues Ergebnis:
    Ich hatte ein paar Dateien falsch abgelegt, jetzt funktioniert es schon fast.
    Der Link zum Kauf geht nicht, und die Kategorieauswahl oben auch nicht.
    Ansonsten genau wie gewünscht.

    [EDIT Tomcraft 25.05.2016: Screenshot auf Wunsch des Benutzers überarbeitet.]

    MrGreenlist

    • Frisch an Board
    • Beiträge: 89
    Re: Preisliste
    Antwort #5 am: 25. Mai 2016, 11:51:59
    Hier mal die Anleitung für alle, die das auch ausprobieren wollen. Vielleicht kriegen wir das Modul ja wieder sauber zum Laufen. Viel fehlt ja nicht mehr.

    Nach /templates/xtc5/module
    kommt die preisliste.html. Die läuft bisher aber noch gar nicht, wenn man sie mit dem content manager einbindet..

    preisliste.html
    Code: PHP  [Auswählen]
    {config_load file="$language/preisliste.conf" section="preisliste"}
    <h3>{#heading#}</h3>
    <br />
    {$FORM_START}
    <div style="width: 320px; overflow: hidden; float: left; padding-top: 3px;">{#auswahl#} {$CATDROPDOWN}</div>
    <noscript>
    <div style="float: left; width: 110px;">{$BUTTON_CONTINUE}</div>
    </noscript>
    <div style="clear: both; height: 0; overflow: hidden;">&nbsp;</div>
    {$FORM_END}
    {if $module_content != ''}
    <div style="border: 1px solid #000000; padding: 10px 0 10px 0; margin: 10px 0 0 0;">
    <p style="font-weight: bold; padding-left: 4px;">{$CATNAME}</p>
    <table cellpadding="2" cellspacing="0">
            <tr>
                <th width="70">{#artnr#}</th>
           <th width="60" style="text-align: left;">{#lieferzeit#}</th>
            <th width="200" style="text-align: left;">{#artikel#}</th>
           <th width="110" style="text-align: right;">{#preis#}</th>
           <th width="80">{#kaufen#}</th>
            </tr>
      {foreach name=aussen item=module_data from=$module_content}
      {php} $col++;  {/php}
            <tr style="background-color: {cycle values="#eeeeee,#ffffff"}">
            <td style="text-align: right; padding: 0 10px 0 3px;">{$module_data.PRODUCTS_MODEL}</td>
            <td>{if $module_data.PRODUCTS_SHIPPING_NAME}{if $module_data.PRODUCTS_SHIPPING_IMAGE}<img src="{$module_data.PRODUCTS_SHIPPING_IMAGE}" alt="{$module_data.PRODUCTS_SHIPPING_NAME}" title="{$module_data.PRODUCTS_SHIPPING_NAME}" />{/if}&nbsp;{/if}</td>        
            <td><a href="{$module_data.PRODUCTS_LINK}">{$module_data.PRODUCTS_NAME}</a></td>
            <td style="text-align: right;">{$module_data.PRODUCTS_PRICE}*</td>
            <td style="text-align: center;">
           {if $LAGER == 'true'}
                    {if $module_data.PRODUCTS_QUANTITY <= 0}
                    {#anfrage#}
                    {else}
                            <a href="{$module_data.PRODUCTS_TEXT_BUY_NOW}">{#korb#}</a>
                    {/if}
           {else}
                            <a href="{$module_data.PRODUCTS_TEXT_BUY_NOW}">{#korb#}</a>
          {/if}
            </td>
            </tr>                                                          
     {/foreach}

      </table>
      <p style="text-align: right;">{#preiseohneversand#}&nbsp;</p>
     </div>
    {/if}

    Die preisliste.php liegt direkt im root Verzeichnis
    Code: PHP  [Auswählen]
    <?php

    include ('includes/application_top.php');
    $smarty = new Smarty;
    // include boxes
    require (DIR_FS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/source/boxes.php');

    $breadcrumb->add(PREISLISTE, xtc_href_link(FILENAME_PREISLISTE));

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

    // Auslesen der anzuzeigenden Produkte wenn eine Kategorie ausgewählt wurde
    if ($_GET['preisliste'] >= 1) {
    $preisliste_query_raw = xtc_db_query("
                                                                    SELECT p.products_id,
                                            pd.products_name,
                                            p.products_price,
                                                                            p.products_quantity,
                                                                            p.products_model,
                                            p.products_tax_class_id,
                                                                            p.products_shippingtime,
                                            p.products_fsk18
                                                                    FROM
                                                                            "
    .TABLE_PRODUCTS." p,
                                                                            "
    .TABLE_PRODUCTS_DESCRIPTION." pd,
                                                                            "
    .TABLE_PRODUCTS_TO_CATEGORIES." p2c
                                    WHERE
                                                                            p.products_status = '1'
                                    AND
                                                                            p.products_id = pd.products_id
                                            "
    .$group_check."
                                            "
    .$fsk_lock."
                                                                    AND
                                                                            p2c.categories_id = '"
    .(int) $_GET['preisliste']."'
                                                                    AND
                                                                            p2c.products_id = p.products_id
                                    AND
                                                                            pd.language_id = '"
    .(int) $_SESSION['languages_id']."'
                                    ORDER BY
                                                                            p.products_model ASC"
    );
                                                                   
    $module_content = '';
            while ($preisliste = xtc_db_fetch_array($preisliste_query_raw)) {
                    $module_content[] = $product->buildDataArray($preisliste);
            }
    }


    // Kategorien auslesen (nur die, die Produkte enthalten)
    $preisliste_cat_raw = xtc_db_query(
                                                                    "SELECT DISTINCT
                                                                            cd.categories_name, cd.categories_id
                                                                    FROM
                                                                            "
    .TABLE_PRODUCTS." p,
                                                                            "
    .TABLE_CATEGORIES_DESCRIPTION." cd,
                                                                            "
    .TABLE_PRODUCTS_TO_CATEGORIES." p2c
                                                                    WHERE
                                                                            p2c.products_id = p.products_id
                                                                    AND
                                                                            p2c.categories_id = cd.categories_id
                                                                    AND
                                                                            cd.language_id = '"
    .(int) $_SESSION['languages_id']."'
                                                                    ORDER BY
                                                                            cd.categories_name asc"
    );

    // Kategorie-Dropdown erzeugen
    $dropdown = '<select name="preisliste" onchange="document.preisliste.submit();">';
    $dropdown .= "<option value=\"\">".PREISLISTE_AUSWAHL."</option>";
    while ($categories = xtc_db_fetch_array($preisliste_cat_raw)) {
            $dropdown .= "<option value=\"".$categories['categories_id']."\"";
            if ($categories['categories_id'] == $_GET['preisliste']) {
                    $dropdown .= "selected=\"selected\"";
                    $smarty->assign('CATNAME', $categories['categories_name']);     // Ausgabe des Kategorienamens, sobald eine Kategorie gewählt wurde
            }
            $dropdown .= ">".$categories['categories_name']."</option>";
    }
    $dropdown .= '</select>';

    // Prüfung ob die Lagerhaltung verwendet wird
    $preisliste_query_stock = xtc_db_query("
                                                                            SELECT
                                                                                    configuration_value
                                                                            FROM
                                                                                    "
    .TABLE_CONFIGURATION."
                                                                            WHERE
                                                                                    configuration_key = 'STOCK_CHECK'"
    );
    $stockcheck = xtc_db_fetch_array($preisliste_query_stock);


    $smarty->assign('LAGER', $stockcheck['configuration_value']);


    require (DIR_WS_INCLUDES.'header.php');
    $smarty->assign('BUTTON_CONTINUE', xtc_image_submit('button_auswahl.gif', BUTTON_AUSWAHL));
    $smarty->assign('FORM_START', '<form name="preisliste" method="get" action="'.xtc_href_link(FILENAME_PREISLISTE).'">');
    $smarty->assign('FORM_END', '</form>');
    $smarty->assign('CATDROPDOWN', $dropdown);
    $smarty->assign('language', $_SESSION['language']);
    $smarty->assign('module_content', $module_content);
    $smarty->caching = 0;
    $main_content = $smarty->fetch(CURRENT_TEMPLATE.'/module/preisliste.html');

    $smarty->assign('language', $_SESSION['language']);
    $smarty->assign('main_content', $main_content);
    $smarty->caching = 0;
    if (!defined(RM))
            $smarty->load_filter('output', 'note');
    $smarty->display(CURRENT_TEMPLATE.'/index.html');
    include ('includes/application_bottom.php');
    ?>

    /lang/german/preisliste.conf:  hinzufügen
    Code: PHP  [Auswählen]
    [preisliste]
    heading = 'Preisliste'
    auswahl = 'Warengruppe ausw&auml;hlen:'
    artnr = 'Art-Nr.'
    lieferzeit = 'Status'
    artikel = 'Artikel'
    preis = 'Preis*'
    kaufen = 'Kaufen'
    anfrage = 'Auf Anfrage'
    korb = 'In den Korb'
    preiseohneversand = '&nbsp; &#42; inkl. 19% Ust., exkl. Versandkosten (f&uuml;r regul&auml;re Kunden)<br>Bei H&auml;ndlerstatus sind dies Nettopreise exkl. Ust. und Versandkosten<br>'

    /lang/english/preisliste.conf: hinzufügen
    Code: PHP  [Auswählen]
    [preisliste]
    heading = 'Pricelist'
    auswahl = 'Select a category:'
    artnr = 'Art-No.'
    lieferzeit = 'Status'
    artikel = 'Product'
    preis = 'Price*'
    kaufen = 'Buy now'
    anfrage = 'Request'
    korb = 'Add to Cart'
    preiseohneversand = '&nbsp; &#42;excl. shipping costs'

    /lang/german/german.php: hinzufügen
    Code: PHP  [Auswählen]
    // Modul Preisliste
    define('PREISLISTE','Preisliste');     
    define('PREISLISTE_AUSWAHL','Bitte ausw&auml;hlen');   
    define('BUTTON_AUSWAHL','Auswahl');
     

    /lang/english/english.php: hinzufügen
    Code: PHP  [Auswählen]
    // Modul Pricelist
    define('PREISLISTE','Pricelist');      
    define('PREISLISTE_AUSWAHL','Please select');  
    define('BUTTON_AUSWAHL','Select');

    Das ganze geht momentan nur aufzurufen, indem man im Content Manager unter Preisliste einen Link angibt: http://www.shopxyz.com/preisliste.php?preisliste=2

    Im alten Shop wurde die preisliste.html aufgerufen und angezeigt, aber die läuft noch nicht. Vielleicht habe ich noch eine Änderung vergessen, eine Anleitung habe ich nicht mehr, ich hab nach Suchbegriffen im alten Shop geguckt.

    Anbei ein Screenshot, was die Preisliste.html ausspuckt.

    [EDIT Tomcraft 25.05.2016: Screenshot auf Wunsch des Benutzers überarbeitet.]
    2 Antworten
    2504 Aufrufe
    25. Oktober 2011, 17:01:37 von Tomcraft
    2 Antworten
    2360 Aufrufe
    10. Dezember 2011, 13:39:49 von cisco82
               
    anything