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: ANLEITUNG: Attributpreise anzeigen im Warenkorb

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.373
    • Geschlecht:
    Re: ANLEITUNG: Attributpreise anzeigen im Warenkorb
    Antwort #60 am: 08. November 2011, 02:14:44
    Neeeee... das ist wirklich ein Mangel im Modul, der sicherlich korrigiert wird. Damit musst du nicht leben.
    Warte mal den morgigen Tag ab. ;-)

    Grüße

    Torsten

    GTB

    • modified Team
    • Gravatar
    • Beiträge: 6.308
    • Geschlecht:
    Re: ANLEITUNG: Attributpreise anzeigen im Warenkorb
    Antwort #61 am: 08. November 2011, 09:27:20
    also ich habe die Version wie ich sie hier in der Anleitung geschrieben habe, bewusst so geschrieben. Das ist kein Mangel.

    Mit meiner Version stehen nämlich die Einzelpreise auch in der Spalte der Einzelpreise. Mit Torstens Version ist das nicht mehr der Fall.

    Auf die schnelle würde ich bei meiner Version einfach nur diese Zeile:

    Code: PHP  [Auswählen]
    <td class="value">{$item_data.VALUE_NAME}</td>

    so ändern:

    Code: PHP  [Auswählen]
    <td class="value">{$item_data.VALUE_NAME|truncate:25:"...":true}</td>

    Gruss Gerhard

    remedy

    • Frisch an Board
    • Beiträge: 92
    Re: ANLEITUNG: Attributpreise anzeigen im Warenkorb
    Antwort #62 am: 08. November 2011, 13:39:26
    Hallo!

    So weit, so gut. Ich habe bei mir die Wortlänge der Attribute auf 15 gekürzt, damit es noch in eine Reihe passt. Wenn dann mal etwas abgeschnitten ist, ist das halt so.
    Wenn allerdings der Artikel-Name länger ist und über zwei Zeilen geht, werden die darunter liegenden Attribute eine Zeile nach unten verschoben, die Attributpreise aber nicht. Also selbes Problem wie vorher.

    Ich hatte mal versucht, die Tabelle die dort verwendet wird, anders anzulegen und aus mehreren Tabellen eine einzige zu machen, aber ich habe es leider nicht ganz hinbekommen. Irgendwas passte immer nicht.
    Aber ich denke, wenn man es hinbekommt, dass Attribut, Attributname und Attributpreis in eine Zeile einer Tabelle kommen, sollte das Problem gelöst sein.

    Oder mache ich einen Denkfehler?

    MfG
    Remedy

    GTB

    • modified Team
    • Gravatar
    • Beiträge: 6.308
    • Geschlecht:
    Re: ANLEITUNG: Attributpreise anzeigen im Warenkorb
    Antwort #63 am: 08. November 2011, 14:17:55
    jetzt kannst du auch noch den Artikelnamen auf die gleiche Art kürzen.

    Code: PHP  [Auswählen]
    <strong><a href="{$module_data.PRODUCTS_LINK}">{$module_data.PRODUCTS_NAME}</a></strong>

    ersetzen mit

    Code: PHP  [Auswählen]
    <strong><a href="{$module_data.PRODUCTS_LINK}">{$module_data.PRODUCTS_NAME|truncate:50:"...":true}</a></strong>

    Gruss Gerhard

    remedy

    • Frisch an Board
    • Beiträge: 92
    Re: ANLEITUNG: Attributpreise anzeigen im Warenkorb
    Antwort #64 am: 08. November 2011, 14:33:41
    Ja, ich hatte auch erst überlegt den Artikelnamen ebenfalls zu kürzen, allerdings ist das etwas unglücklich, da der wichtige Part der Modellbezeichnung meistens am Ende des Namens ist und ich dies ungern weglassen möchte.
    Deshalb mein Gedanke, das Ganze lieber mit dem Zusammenlegen der Tabellen zu lösen.

    Aber wie gesagt, ich habe es noch nicht hinbekommen. Wenn jemand einen Idee hat, immer her damit.

    GTB

    • modified Team
    • Gravatar
    • Beiträge: 6.308
    • Geschlecht:
    Re: ANLEITUNG: Attributpreise anzeigen im Warenkorb
    Antwort #65 am: 08. November 2011, 15:13:06
    hmmm... die Tabelle anders verschachteln... ich überlege mal wie man das machen kann.

    Gruss Gerhard

    remedy

    • Frisch an Board
    • Beiträge: 92
    Re: ANLEITUNG: Attributpreise anzeigen im Warenkorb
    Antwort #66 am: 08. November 2011, 15:42:00
    So in etwa hatte ich gedacht (mal schnell Linien drüber gemalt):

    [ Für Gäste sind keine Dateianhänge sichtbar ]

    Ich habe das als Tabelle nur nicht so richtig hinbekommen. Tabellen sind nicht so mein Fall...

    GTB

    • modified Team
    • Gravatar
    • Beiträge: 6.308
    • Geschlecht:
    Re: ANLEITUNG: Attributpreise anzeigen im Warenkorb
    Antwort #67 am: 08. November 2011, 16:20:37
    ersetze mal den Inhalt der orders_detail.html mit dem hier:

    Code: PHP  [Auswählen]
    {config_load file="$language/lang_$language.conf" section="shopping_cart"}
    <table class="orderdetails" width="100%" border="0" cellspacing="0" cellpadding="6">
      <tr class="headerrow">
        <td class="left">{#text_qty#}</td>
       <td class="left" colspan="2">{#text_article#}</td>
       <td class="right">{#text_single#}</td>
       <td class="right">{#text_total#}</td>
       <td class="center">{#text_remove#}</td>
     </tr>
     
    {foreach name=aussen item=module_data from=$module_content}
      <tr class="{cycle values="contentrow1,contentrow2"}">
        <td class="quantity">{$module_data.PRODUCTS_QTY}</td>
        <td class="productname" colspan="2"><strong><a href="{$module_data.PRODUCTS_LINK}">{$module_data.PRODUCTS_NAME}</a></strong></td>
        <td class="singleprice">{$module_data.PRODUCTS_SINGLE_PRICE}</td>
        <td class="totalprice">{$module_data.PRODUCTS_PRICE}</td>
        <td class="delete">{$module_data.BUTTON_DELETE}</td>
      </tr>

    {if $module_data.ATTRIBUTES!=''}    
      {foreach key=key_data item=item_data from=$module_data.ATTRIBUTES}
        <tr>
          <td class="quantity">&nbsp;</td>
          <td class="attribute" style="text-indent:10px;"><strong>{$item_data.NAME}:</strong></td>
          <td class="value">{$item_data.VALUE_NAME}</td>
          <td class="singleprice">{$item_data.VALUE_PRICE}</td>
          <td class="totalprice">&nbsp;</td>
          <td class="delete">&nbsp;</td>
        </tr>
      {/foreach}
    {/if}

    {/foreach}
      <tr>
        <td colspan="5" class="subtotal">{$UST_CONTENT}<strong>{$TOTAL_CONTENT}</strong>{if $SHIPPING_INFO}{$SHIPPING_INFO}{/if}</td>
        <td class="subtotal">&nbsp;</td>
      </tr>
    </table>

    dann sollte es so aussehen:

    [ Für Gäste sind keine Dateianhänge sichtbar ]

    und noch eines wo ein Zeilenumbruch statt findet.

    [ Für Gäste sind keine Dateianhänge sichtbar ]

    Gruss Gerhard

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.373
    • Geschlecht:
    Re: ANLEITUNG: Attributpreise anzeigen im Warenkorb
    Antwort #68 am: 08. November 2011, 16:35:12
    hmmm... die Tabelle anders verschachteln... ich überlege mal wie man das machen kann.

    Gruss Gerhard

    Genau das war ja bei meinem Code mein Ansatz, den du nun wohl zur Perfektion gebracht hast! :-B

    Ich plädiere für den Austausch des Codes in deiner Anleitung! :!:

    Grüße

    Torsten

    Chris3680

    • Neu im Forum
    • Beiträge: 34
    • Geschlecht:
    Re: ANLEITUNG: Attributpreise anzeigen im Warenkorb
    Antwort #69 am: 08. November 2011, 16:36:56
    also ich habe die Version wie ich sie hier in der Anleitung geschrieben habe, bewusst so geschrieben. Das ist kein Mangel.

    Mit meiner Version stehen nämlich die Einzelpreise auch in der Spalte der Einzelpreise. Mit Torstens Version ist das nicht mehr der Fall.

    Auf diee schnelle würde ich bei meiner Version eifach nur diese Zeile:

    Code: PHP  [Auswählen]
    <td class="value">{$item_data.VALUE_NAME}</td>

    so ändern:

    Code: PHP  [Auswählen]
    <td class="value">{$item_data.VALUE_NAME|truncate:25:"...":true}</td>

    Gruss Gerhard

    Danke Gerhard, gefällt mir so ganz gut und unseren Kunden scheinbar auch. Jedoch beschwerte sich ein Kunde, dass er die Einzelpreise der Attribute in der Bestätigungsübersicht während des Bestellvorganges nicht zu sehen bekommt.. Da der Kunde bei uns König sein soll, überlege ich gerade, ob ich den Code aus der "order_details_cart.php" und aus der "order_details.html" nicht in die "checkout_confirmation.php" und in die "checkout_confirmation.html" übertragen soll, oder sind dazu weitere Anpassungen nötig?

    GTB

    • modified Team
    • Gravatar
    • Beiträge: 6.308
    • Geschlecht:
    Re: ANLEITUNG: Attributpreise anzeigen im Warenkorb
    Antwort #70 am: 08. November 2011, 17:01:50
    @Chris3680

    du musst die Änderungen in der "/includes/classes/order.php" machen. Dort wirst du auf ähnlich Codepassagen treffen wie in der "order_detail_cart.php"

    @Torsten

    ich habe die Anleitung mit dem neuen Template geändert.

    Gruss Gerhard

    remedy

    • Frisch an Board
    • Beiträge: 92
    Re: ANLEITUNG: Attributpreise anzeigen im Warenkorb
    Antwort #71 am: 09. November 2011, 08:38:22
    Moin moin!

    Vielen Dank, so hatte ich mir das vorgestellt!  :thumbs:
    Die alte Version war z.T. etwas verwirrend, wenn durch lange Bezeichnungen die Zeilen verrutschten. So sieht der Code auch etwas übersichtlicher aus.
    Das Feintunig bekomme ich nun selber hin.

    Einen schönen Tag noch!

    MfG
    Remedy

    Trucker05

    • Schreiberling
    • Beiträge: 347
    Re: ANLEITUNG: Attributpreise anzeigen im Warenkorb
    Antwort #72 am: 21. Mai 2012, 23:07:52
    Guten Morgen,

    ich stehe ein bisschen auf dem Schlauch... da ich das Freitextmodul ("MODUL: Neues Artikelmerkmal TEXTFELD (Freitext Modul)") eingebaut habe, sieht der entsprechende Teil meiner /includes/modules/order_details_cart.php so aus:

    Code: PHP  [Auswählen]
            if ($attributes_exist == 1) {
                    reset($products[$i]['attributes']);

                    while (list ($option, $value) = each($products[$i]['attributes'])) {

                            if (ATTRIBUTE_STOCK_CHECK == 'true' && STOCK_CHECK == 'true') {
                                    $attribute_stock_check = xtc_check_stock_attributes($products[$i][$option]['products_attributes_id'], $products[$i]['quantity']);
                                    if ($attribute_stock_check)
                                            $_SESSION['any_out_of_stock'] = 1;
                            }

    //BOF TEXTFELD
    $options_values = trim($products[$i][$option]['products_options_values_name'].$attribute_stock_check);

    if($products[$i][$option]['products_options_values_name'] == 'TEXTFELD'){
    $options_values = trim($_SESSION['cart_textfeld'. $products[$i]['id']][$value]);
    }
    if ($options_values != '') {
    $module_content[$i]['ATTRIBUTES'][] = array ('ID' => $products[$i][$option]['products_attributes_id'], 'MODEL' => xtc_get_attributes_model(xtc_get_prid($products[$i]['id']), $products[$i][$option]['products_options_values_name'], $products[$i][$option]['products_options_name']), 'NAME' => $products[$i][$option]['products_options_name'], 'VALUE_NAME' => $options_values);
    }
    //EOF TEXTFELD

                    }
            }

    }

    Ich weiß gar nicht, wie lange ich schon versuche, den Code so umzuschreiben, dass er mit der Anzeige der Textfelder im Warenkorb kompatibel ist, aber mit meinen bestenfalls rudimentären PHP-Kenntnissen will es einfach nicht gelingen.

    Hat jemand von euch beide Anpassungen gleichzeitig laufen und kann mir auf die Sprünge helfen?

    Wenn es hilft: Ansehen könnt ihr den Shop unter http://goo.gl/HIKcE

    Weiß nicht, ob es noch aktuell ist? Habe es eben mit dem Freitext Modul zusammen eingebaut.
    Deinen Code erstzen mit:
    Code: PHP  [Auswählen]
          if ($attributes_exist == 1) {
              reset($products[$i]['attributes']);
         
              $base_price = $products[$i]['price'];
         
              while (list ($option, $value) = each($products[$i]['attributes'])) {
                  $attribute_stock_check = false; //DokuMan - 2010-11-11 - set default value to false
                  if (ATTRIBUTE_STOCK_CHECK == 'true' && STOCK_CHECK == 'true') {
                      $attribute_stock_check = xtc_check_stock_attributes($products[$i][$option]['products_attributes_id'], $products[$i]['quantity']);
                      if ($attribute_stock_check)
                          $_SESSION['any_out_of_stock'] = 1;
                  }
                            //BOF TEXTFELD
            $options_values = trim($products[$i][$option]['products_options_values_name'].$attribute_stock_check);
           
            if($products[$i][$option]['products_options_values_name'] == 'TEXTFELD'){
            $options_values = trim($_SESSION['cart_textfeld'. $products[$i]['id']][$value]);
            }
            if ($options_values != '') {
            $module_content[$i]['ATTRIBUTES'][] = array ('ID' => $products[$i][$option]['products_attributes_id'],
                                                          'MODEL' => xtc_get_attributes_model(xtc_get_prid($products[$i]['id']),
                                                          $products[$i][$option]['products_options_values_name'],
                                                          $products[$i][$option]['products_options_name']),
                                                          'NAME' => $products[$i][$option]['products_options_name'],
                                                          'VALUE_NAME' => $options_values,
                                                                                                               'VALUE_PRICE' => $products[$i][$option]['price_prefix'] . ' ' . $xtPrice->xtcFormat($products[$i][$option]['options_values_price'], true, $products[$i]['tax_class_id'])
               );
            }
          //EOF TEXTFELD
                switch($products[$i][$option]['price_prefix']) {
                  case '+':
                    $base_price -= $xtPrice->xtcFormat($products[$i][$option]['options_values_price'], false, $products[$i]['tax_class_id']);
                  break;
         
                  case '-':
                    $base_price += $xtPrice->xtcFormat($products[$i][$option]['options_values_price'], false, $products[$i]['tax_class_id']);
                  break;
                }
         
              /*    $module_content[$i]['ATTRIBUTES'][] = array (
                  'ID' => $products[$i][$option]['products_attributes_id'],
                  'MODEL' => xtc_get_attributes_model(xtc_get_prid($products[$i]['id']), $products[$i][$option]['products_options_values_name'],$products[$i][$option]['products_options_name']),
                  'NAME' => $products[$i][$option]['products_options_name'],
                  'VALUE_NAME' => $products[$i][$option]['products_options_values_name'].$attribute_stock_check,
                  'VALUE_PRICE' => $products[$i][$option]['price_prefix'] . ' ' . $xtPrice->xtcFormat($products[$i][$option]['options_values_price'], true, $products[$i]['tax_class_id'])
               );*/

              }
         
             $module_content[$i]['ATTRIBUTES'][-1] = array (
              'NAME' => 'Basispreis',
              'VALUE_NAME' => $products[$i]['name'],
              'VALUE_PRICE' => $xtPrice->xtcFormat($base_price, true)
             );
            asort($module_content[$i]['ATTRIBUTES']);
          }

    }
     

    Gradler

    • Viel Schreiber
    • Beiträge: 2.083
    • Geschlecht:
    Re: ANLEITUNG: Attributpreise anzeigen im Warenkorb
    Antwort #73 am: 23. Mai 2012, 13:37:30
    Hallo,

    läßt sich diese Erweiterung auch um eine Art Mengenfeld für die Attribute erweitern? Also die Anzahl der Attribute (hier in den Vorschaubildern immer 1) als Feld wie beim Hauptartikel wo man die gewünschte Anzahl eingeben kann?

    Was eventuell auch Sinn machen würde wäre die nachträgliche Wahlmöglichkeit der Optionen im Warenkorb. Sonst müsste man, wenn z.B. als Farbe gelb gewählt wurde und man im Warenkorb feststellt es hätte eigentlich rot sein müssen den Artikel wieder löschen und erneut nun richtig ausgewählt in den Warenkorb legen.

    Gerd

    Gradler

    • Viel Schreiber
    • Beiträge: 2.083
    • Geschlecht:
    Re: ANLEITUNG: Attributpreise anzeigen im Warenkorb
    Antwort #74 am: 24. Mai 2012, 11:48:31
    Komme jetzt soweit, daß mir die Menge angezeigt wird, jedoch in allen Zeilen wo man die Menge ändern kann steht bei der Preisanzeige für die Attribute nur eine leere Klammer ()

    Könnte bitte jemand helfen?

    Hier der Code

    Code: PHP  [Auswählen]
            if ($attributes_exist == 1) {
                    reset($products[$i]['attributes']);

                    $base_price = $products[$i]['price'];

                    $sKey=1;

                    while (list ($option, $value) = each($products[$i]['attributes'])) {
                if (is_array($value)) {
                    for ($y=0;$y<count($value);$y++) {
                        if (ATTRIBUTE_STOCK_CHECK == 'true' && STOCK_CHECK == 'true') {
                            $attribute_stock_check = xtc_check_stock_attributes($products[$i][$option][$y]['products_attributes_id'], $products[$i]['quantity']);
                            if ($attribute_stock_check)
                                $_SESSION['any_out_of_stock'] = 1;
                            }

                            //<iCart>
                                $aAllAttributes=array();
                                $sQuery="
                                        select *
                                        from products_attributes pa left join products_options_values pv on pa.options_values_id=pv.products_options_values_id
                                        where pa.options_id='"
    .$option."' and pv.language_id='".(int) $_SESSION['languages_id']."' and pa.products_id='".$products[$i]['id']."'
                                        order by pa.sortorder asc;
                                "
    ;
                                $rQuery=xtc_db_query($sQuery);
                                while($aQuery=xtc_db_fetch_array($rQuery)){
                                    $aQuery['key']=$sKey;
                                    $aQuery['selected']=$sKey==$value?true:false;
                                    $sKey++;
                                    if (ATTRIBUTE_STOCK_CHECK == 'true' && STOCK_CHECK == 'true') {
                                        $aQuery['products_options_values_name'].= xtc_check_stock_attributes($aQuery['products_attributes_id'], $products[$i]['quantity']);
                                    }
                                    if($aQuery['options_values_price']!=0){
                                        $aQuery['products_options_values_name'].=$aQuery['price_prefix'].$xtPrice->xtcFormat($aQuery['options_values_price'], true);
                                    }
                                    $aAllAttributes[]=$aQuery;
                                }
                            //</iCart>

                  $module_content[$i]['ATTRIBUTES'][] = array (
                  'ID' => $products[$i][$option][$y]['products_attributes_id'],
                  'MODEL' => xtc_get_attributes_model(xtc_get_prid($products[$i]['id']), $products[$i][$option][$y]['products_options_values_name'],$products[$i][$option][$y]['products_options_name']),
                  'NAME' => $products[$i][$option][$y]['products_options_name'],
                  'VALUE_NAME' => $products[$i][$option][$y]['products_options_values_name'].$attribute_stock_check,
                  'aALLATTRIBUTES'=>$aAllAttributes);
                    }

        } else {

                            $attribute_stock_check = false; //DokuMan - 2010-11-11 - set default value to false
                                    if (ATTRIBUTE_STOCK_CHECK == 'true' && STOCK_CHECK == 'true') {
                                            $attribute_stock_check = xtc_check_stock_attributes($products[$i][$option]['products_attributes_id'], $products[$i]['quantity']);
                      if ($attribute_stock_check)
                          $_SESSION['any_out_of_stock'] = 1;
                  }
         
                switch($products[$i][$option]['price_prefix']) {
                  case '+':
                    $base_price -= $xtPrice->xtcFormat($products[$i][$option]['options_values_price'], false, $products[$i]['tax_class_id']);
                  break;
         
                  case '-':
                    $base_price += $xtPrice->xtcFormat($products[$i][$option]['options_values_price'], false, $products[$i]['tax_class_id']);
                  break;
                }

                  $module_content[$i]['ATTRIBUTES'][] = array (
                  'ID' => $products[$i][$option]['products_attributes_id'],
                  'OPTIONS_ID'=>$option,
                  'MODEL' => xtc_get_attributes_model(xtc_get_prid($products[$i]['id']), $products[$i][$option]['products_options_values_name'],$products[$i][$option]['products_options_name']),
                  'NAME' => $products[$i][$option]['products_options_name'],
                  'VALUE_NAME' => $products[$i][$option]['products_options_values_name'].$attribute_stock_check,
                  'VALUE_PRICE' => $products[$i][$option]['price_prefix'] . ' ' . $xtPrice->xtcFormat($products[$i][$option]['options_values_price'], true, $products[$i]['tax_class_id']),
                  'aALLATTRIBUTES'=>$aAllAttributes
                  );
              }
         
             $module_content[$i]['ATTRIBUTES'][-1] = array (
              'NAME' => 'Basispreis',
              'VALUE_NAME' => $products[$i]['name'],
              'VALUE_PRICE' => $xtPrice->xtcFormat($base_price, true)
             );
            asort($module_content[$i]['ATTRIBUTES']);
          }
     

    Danke

    Gerd
    6 Antworten
    10882 Aufrufe
    30. Oktober 2015, 09:22:07 von spar-helferchen
    39 Antworten
    23353 Aufrufe
    02. September 2013, 12:47:32 von pomm
    2 Antworten
    2790 Aufrufe
    15. Juli 2014, 10:54:13 von thenew
    8 Antworten
    4428 Aufrufe
    07. Juli 2014, 12:49:22 von TrueSlide