Versandmodule, Versand

  • Hallo Peter,

    die Fehlermeldung besagt nur, dass die Spalte "products_square" schon vorhanden ist. Kann passieren wenn man die SQL Anweisung mehrfach ausführt.

    Zu der Darstellung, das liegt am Zeichensatz. Der stimmte bei dem Modul anscheinend nicht mit dem des Shops überein. Daher sind dort die Sonderzeichen falsch dargestellt. Einfach durch m² oder qm ersetzen.

    Viele Grüße aus bernau
    matthias

  • Hi Matthias,

    auch hier danke für die Hilfe.

    SQL Datei ok.

    Wo und wie muss ich das/die fehlerhafte/n Zeichen ersetzen? Es sind sind 2 Dateien vorhanden: includes\modules\shipping\ square.php und lang\german\modules\shipping\square.php.

    <?php
    /* -----------------------------------------------------------------------------------------
    $Id: SQUARE.php 899 2005-04-29 02:40:57Z hhgag $

    XT-Commerce - community made shopping
    http://www.xt-commerce.com

    Copyright (c) 2003 XT-Commerce
    -----------------------------------------------------------------------------------------
    based on:
    (c) 2000-2001 The Exchange Project (earlier name of osCommerce)
    (c) 2002-2003 osCommerce(SQUARE.php,v 1.6 2003/02/16); http://www.oscommerce.com
    (c) 2003 nextcommerce (SQUARE.php,v 1.4 2003/08/13); http://www.nextcommerce.org

    Released under the GNU General Public License
    ---------------------------------------------------------------------------------------*/

    define('MODULE_SHIPPING_SQUARE_TEXT_TITLE', 'Berechnung der Versandkosten nach m²');
    define('MODULE_SHIPPING_SQUARE_TEXT_DESCRIPTION', 'Berechnung der Versandkosten nach m²');
    define('MODULE_SHIPPING_SQUARE_TEXT_WAY', 'Versandkosten nach m²');

    define('MODULE_SHIPPING_SQUARE_STATUS_TITLE' , 'Berechnung nach m² aktivieren');
    define('MODULE_SHIPPING_SQUARE_STATUS_DESC' , 'M&ouml;chten Sie eine Berechnung nach m² anbieten?');
    define('MODULE_SHIPPING_SQUARE_ALLOWED_TITLE' , 'Erlaubte Versandzonen');
    define('MODULE_SHIPPING_SQUARE_ALLOWED_DESC' , 'Geben Sie <b>einzeln</b> die Zonen an, in welche ein Versand möglich sein soll. (z.B. AT,DE (lassen Sie dieses Feld leer, wenn Sie alle Zonen erlauben wollen))');
    define('MODULE_SHIPPING_SQUARE_COST_TITLE' , 'Aufpreispauschale für andere Artikel');
    define('MODULE_SHIPPING_SQUARE_COST_DESC' , 'Aufpreispauschale für Artikel ohne m² Berechnung. <i>(0.00 = kein Aufpreis)</i>');
    define('MODULE_SHIPPING_SQUARE_M2_COST_TITLE' , 'Versandkosten pro m²');
    define('MODULE_SHIPPING_SQUARE_M2_COST_DESC' , 'Versandkosten pro m²');
    define('MODULE_SHIPPING_SQUARE_TAX_CLASS_TITLE' , 'Steuerklasse');
    define('MODULE_SHIPPING_SQUARE_TAX_CLASS_DESC' , 'Folgende Steuerklasse an Versandkosten anwenden.');
    define('MODULE_SHIPPING_SQUARE_ZONE_TITLE' , 'Versandzone');
    define('MODULE_SHIPPING_SQUARE_ZONE_DESC' , 'Wenn eine Zone ausgew&auml;hlt ist, wird diese Versandmethode ausschliseslich f&uuml;r diese Zone angewendet.');
    define('MODULE_SHIPPING_SQUARE_SORT_ORDER_TITLE' , 'Sortierreihenfolge');
    define('MODULE_SHIPPING_SQUARE_SORT_ORDER_DESC' , 'Reihenfolge der Anzeige');

    ------------------------------------------------------------------------------------------------------------

    <?php
    /* -----------------------------------------------------------------------------------------
    $Id: square_meter.php 899 2007-06-30 02:40:57Z mk $

    XT-Commerce - community made shopping
    http://www.xt-commerce.com

    Copyright (c) 2003 XT-Commerce
    -----------------------------------------------------------------------------------------
    based on:
    (c) 2000-2001 The Exchange Project (earlier name of osCommerce)
    (c) 2002-2003 osCommerce(flat.php,v 1.40 2003/02/05); http://www.oscommerce.com
    (c) 2003 nextcommerce (flat.php,v 1.7 2003/08/24); http://www.nextcommerce.org

    Copyright (c) 2007 xt-module.de

    Released under the GNU General Public License
    ---------------------------------------------------------------------------------------*/


    class square {
    var $code, $title, $description, $icon, $enabled;


    function square() {
    global $order;

    $this->code = 'square';
    $this->title = MODULE_SHIPPING_SQUARE_TEXT_TITLE;
    $this->description = MODULE_SHIPPING_SQUARE_TEXT_DESCRIPTION;
    $this->sort_order = MODULE_SHIPPING_SQUARE_SORT_ORDER;
    $this->icon = '';
    $this->tax_class = MODULE_SHIPPING_SQUARE_TAX_CLASS;
    $this->enabled = ((MODULE_SHIPPING_SQUARE_STATUS == 'True') ? true : false);

    if ( ($this->enabled == true) && ((int)MODULE_SHIPPING_SQUARE_ZONE > 0) ) {
    $check_flag = false;
    $check_query = xtc_db_query("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_SHIPPING_SQUARE_ZONE . "' and zone_country_id = '" . $order->delivery['country']['id'] . "' order by zone_id");
    while ($check = xtc_db_fetch_array($check_query)) {
    if ($check['zone_id'] < 1) {
    $check_flag = true;
    break;
    } elseif ($check['zone_id'] == $order->delivery['zone_id']) {
    $check_flag = true;
    break;
    }
    }

    if ($check_flag == false) {
    $this->enabled = false;
    }
    }
    }

    function quote($method = '') {
    global $order;

    $square_endpreis = $order->square['square'] * MODULE_SHIPPING_SQUARE_M2_COST;
    if($order->square['square_aufpreis'] == 'true') {
    $square_endpreis = $square_endpreis + MODULE_SHIPPING_SQUARE_COST;
    }

    $this->quotes = array('id' => $this->code,
    'module' => MODULE_SHIPPING_SQUARE_TEXT_TITLE,
    'methods' => array(array('id' => $this->code,
    'title' => MODULE_SHIPPING_SQUARE_TEXT_WAY,
    'cost' => $square_endpreis)));

    if ($this->tax_class > 0) {
    $this->quotes['tax'] = xtc_get_tax_rate($this->tax_class, $order->delivery['country']['id'], $order->delivery['zone_id']);
    }

    if (xtc_not_null($this->icon)) $this->quotes['icon'] = xtc_image($this->icon, $this->title);

    return $this->quotes;
    }

    function check() {
    if (!isset($this->_check)) {
    $check_query = xtc_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_SHIPPING_SQUARE_STATUS'");
    $this->_check = xtc_db_num_rows($check_query);
    }
    return $this->_check;
    }

    function install() {
    xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) values ('MODULE_SHIPPING_SQUARE_STATUS', 'True', '6', '1', 'xtc_cfg_select_option(array(\'True\', \'False\'), ', now())");
    xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_SQUARE_ALLOWED', '', '6', '2', now())");
    xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_SQUARE_COST', '0.00', '6', '3', now())");
    xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_SQUARE_M2_COST', '0.00', '6', '4', now())");
    xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, use_function, set_function, date_added) values ('MODULE_SHIPPING_SQUARE_TAX_CLASS', '0', '6', '5', 'xtc_get_tax_class_title', 'xtc_cfg_pull_down_tax_classes(', now())");
    xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, use_function, set_function, date_added) values ('MODULE_SHIPPING_SQUARE_ZONE', '0', '6', '6', 'xtc_get_zone_class_title', 'xtc_cfg_pull_down_zone_classes(', now())");
    xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_SQUARE_SORT_ORDER', '0', '6', '7', now())");
    }

    function remove() {
    xtc_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')");
    }

    function keys() {
    return array('MODULE_SHIPPING_SQUARE_STATUS', 'MODULE_SHIPPING_SQUARE_M2_COST', 'MODULE_SHIPPING_SQUARE_COST','MODULE_SHIPPING_SQUARE_ALLOWED', 'MODULE_SHIPPING_SQUARE_TAX_CLASS', 'MODULE_SHIPPING_SQUARE_ZONE', 'MODULE_SHIPPING_SQUARE_SORT_ORDER');
    }
    }
    ?>

    Gruß Peter

  • Hi Matthias,

    so habe ich es auch gemacht. In dem Package ist eine Read me, nach der ich vorgegangen bin. Trotzdem erschienen die falschen m² Zeichen:

    ################################

    xt-shopservice.de - Versandkostenberechnung nach m²

    Vielen Dank, dass Sie sich für eines unserer Produkte entschieden haben.
    Mit Ihrer neuen Erweiterung bietet Ihr Shop clevere neue Funktionen, die
    den Einkauf bei Ihnen noch mehr zu einem Erlebnis machen.

    ################################


    ## Vor der Installation:
    ------------------------------------------------
    Das gekaufte Produkt ist für die Version xt:Commerce 3.04

    Fertigen Sie bitte aus Sicherheitsgründen von allen Dateien Ihres Shops
    ein Backup. Wir übernehmen keine Haftung für Schäden, die aus einer
    mangelhaften Datensicherung entstehen.

    Wir gehen davon aus, dass Ihr Shop noch nicht erweitert wurde und sich
    Ihre Dateien im Originalzustand befinden.


    ## Die Installation:
    ------------------------------------------------

    Die Installation:

    1. Entpacken Sie die rar/zip-Datei.
    2. Importieren Sie die datenbank.sql in Ihre Shopdatenbank, nachdem Sie ein Backup angefertigt haben.
    3. Kopieren Sie die Ordnerstruktur xtc-root in Ihr Shopverzeichnis.

    4. Befolgen Sie die nächsten Schritte:

    ----------------------------------------------------------------------------
    /admin/includes/classes/categories.php
    ----------------------------------------------------------------------------

    Folgenden Code suchen:

    'products_vpe' => xtc_db_prepare_input($products_data['products_vpe'])

    Danach einfügen:

    , 'products_square' => xtc_db_prepare_input($products_data['products_square'])


    ----------------------------------------------------------------------------
    /admin/includes/modules/new_product.php
    ----------------------------------------------------------------------------

    Folgenden Code suchen:

    <td><span class="main"><?php echo xtc_draw_pull_down_menu('shipping_status', $shipping_statuses, $pInfo->products_shippingtime); ?></span></td>
    </tr>
    <?php } ?>

    Danach einfügen:

    <tr>
    <td><span class="main">Versandkostenberechnung nach m²</td>
    <td><span class="main"><?php echo xtc_draw_selection_field('products_square', 'checkbox', '1',$pInfo->products_square==1 ? true : false); ?></span></td>
    </tr>


    ----------------------------------------------------------------------------
    /includes/classes/order.php
    ----------------------------------------------------------------------------

    Folgenden Code suchen:

    for ($i=0, $n=sizeof($products); $i<$n; $i++) {


    Danach einfügen:

    // xt-shopservice.de Versandkostenberechnung nach m²
    if(MODULE_SHIPPING_SQUARE_STATUS == 'True') {

    $count = 0;
    $check_query = xtc_db_query("select products_square from ".TABLE_PRODUCTS."
    where products_id = '".$products[$i]['id']."'
    and products_square = '1'");
    while($check = xtc_db_fetch_array($check_query)) {
    $count++;
    }
    $square_qty += $count * $products[$i]['quantity'];

    $check_2_query = xtc_db_query("select products_square from ".TABLE_PRODUCTS."
    where products_id = '".$products[$i]['id']."'
    and products_square = '0'");
    while($check_2 = xtc_db_fetch_array($check_2_query)) {
    if($check_2['products_square'] == '0') {
    $square_aufpreis = true;
    }
    }

    $this->square = array();
    $this->square = array('square' => $square_qty, 'square_aufpreis' => $square_aufpreis);

    }
    // xt-shopservice.de Versandkostenberechnung nach m² eof

    ----------------------------------------------------------------------------

    Die Installation ist abgeschlossen!

    Im Adminbereich unter Versandarten ist nun ein neuer Punkt "Versandkosten nach m²" vorhanden.

    Gruß Peter

  • Hallo Peter,

    sorry war mein Fehler. In der ersten Antwort hat der Editor automatisch das &sup2; durch m² ersetzt.

    Die Sprachdatei müsste so ausssehen:


    Viele Grüße
    Matthias

  • Hi Matthias,

    herzlichen Dank für die Unterstützung.

    Werde es jetzt nochmal versuchen nach der Read me einzurichten. Hoffe die Read me enthält keine fehlerhaften Anweisungen.

    Fehlt nur noch das "pro m²" hinter dem Preis. Hoffe du hast auch dafür eine schnelle Lösung...

    Gruß Peter

    Einmal editiert, zuletzt von braselfing (5. Juli 2012 um 10:35) aus folgendem Grund: Ergänzung

  • Hallo Peter,

    füge mal in der /includes/classes/xtcPrice.php hinter $Pprice = $this->checkAttributes($pID).$this->currencies[$this->actualCurr]['symbol_left'].' '.$Pprice.' '.$this->currencies[$this->actualCurr]['symbol_right']; "pro m&sup2;" ein.
    So das dann dort $Pprice = $this->checkAttributes($pID).$this->currencies[$this->actualCurr]['symbol_left'].' '.$Pprice.' '.$this->currencies[$this->actualCurr]['symbol_right']." pro m&sup2;"; steht.

    Wenn du es fest als Währung hinterlegen würdest, besteht das Problem dass überall dann "pro m²" steht.

    So sollte es aber klappen.

    Viele Grüße
    Matthias

  • Ähm, eigentlich ganz einfach. Sprachdatei öffnen mit Notepad++ dann auf "Kodierung > Konvertirung nach nach UTF-8 ohne BOM" klicken und schon ist die Datei UFT-8 kodiert und sauber. Habe die Option auch erst spät gefunden.

    <p>Wir geben nur Anregungen und Hilfestellung auf Basis unserer Erfahrung, keine Rechtshilfe!<br>\m/('_')\m/</p>

  • Hallo Peter,

    dann nimm die Änderung dort mal wieder raus und gehe in die /includes/modules/product_info.php, dort die Zeilen

    if(PRICE_AS_IMAGE == 'true') {
    $price = $products_price;
    } else {
    $price = $products_price['formated'];
    }

    suchen und in

    if(PRICE_AS_IMAGE == 'true') {
    $price = $products_price;
    } else {
    $price = $products_price['formated']." pro m&sup2;";
    }

    ändern. Dann sollte es nur auf der Produktdetailseite stehen. Wenn du die Anzeige auch in der Produktlistung benötigts, sag Bescheid.

    Viele Grüße
    Matthias

  • Hallo Peter,

    das änderst du am besten gleich in der templates/cseo-css-v2/module/product_listings.html. Dort die Zeile

    {if $module_data.PRODUCTS_PRICE}<div class="product_listing_price">{$module_data.PRODUCTS_PRICE}</div>

    in

    {if $module_data.PRODUCTS_PRICE}<div class="product_listing_price">{$module_data.PRODUCTS_PRICE} pro m&sup2;</div>

    ändern.


    Viele Grüße
    Matthias

  • Ja, dem stimme ich zu, schön das jemand mit Wissen im Forum, wie auch schon lange jotest und mbraune und andere hier aktiv mit wirken :)

    <p>Wir geben nur Anregungen und Hilfestellung auf Basis unserer Erfahrung, keine Rechtshilfe!<br>\m/('_')\m/</p>