Button-Lösung ... da werden sich die Verbraucher aber geschützt fühlen

Guten Morgen,

also mir ist der Umbau der order.tpl für das Anhaken der AGB zu aufwändig.
Mein Shop ist Trusted-Shops zertifiziert und zwar ohne AGB-Anhaken, also würde ich behaupten, dass man darauf bedenkenlos verzichten kann.

Meine order.tpl kann also für Azure ab Shopversion 4.6 gerne verwendet werden, unter der Voraussetzung, dass das Bestätigen der AGB sowie der zusätzliche obere Bestellbutton unbedingt deaktiviert sein sollten.

Wers dennoch unbedingt braucht, muss sich halt selbst etwas zusammenbasteln.

Hallo zusammen,

ich habe die order.tpl mal für das Template “Azure” und einen Shop in der Version 4.5.11 angepasst.

In der css habe ich die Anpassung von “nickname” übernommen:

#orderAddress, #orderShipping, #orderPayment{
float: left;
width: 33.33%;
margin-top: 5px;
margin-bottom:25px;
}

Viele Grüße
Jörg

…wer möchte, kann sich noch einen “Artikeldetails”-Link einbauen. Auch dieser sollte lt. “Buttonlösung” vorhanden sein.

Der Link muss in die Datei …out/azure/tpl/page/checkout/inc/basketcontents.tpl etwa in Zeile 70, gleich nach

                    <div>
                                [{ oxmultilang ident="PAGE_CHECKOUT_BASKETCONTENTS_ARTNOMBER" }] [{ $basketproduct->oxarticles__oxartnum->value }]
                            </div>

Hier der Text - Link (aus coarsy´s order.tpl “geklaut”):

 <div class="actions"><a id="detail_[{ $basketproduct->oxarticles__oxid->value }]_[{$smarty.foreach.testArt.iteration}]" rel="nofollow" href="[{ $basketproduct->getLink() }]">[{ oxmultilang ident="DETAILS_PRODUCTDETAILS" }]</a></div>
 

Hi nochmal,

ein Link innerhalb eines Button Tags ist übrigens nicht HTML konform, also nicht valide, das sollte man so nicht machen…

@coarsy

… wäre es denn so ok? Auf den Button möchte ich ohnehin verzichten:

<a style="color:grey;text-decoration:none;" href="[{$basketitem->getLink()}]" rel="nofollow">[Details ...]</a>

Ich habe schlussendlich noch ein Problem … aber ein Großes ;).

Irgendwo habe ich gelesen, dass die Einzelpreise der Artikel im Warenkorb auch die Informationen lt. Preisangabeverordnung beinhalten müssen. Heißt, dass der Preis pro Liter/Stück/Meter oder was auch immer ebenfalls angezeigt werden muss.

Ich versuche also in der “basketcontents.tpl” in dieses Codestück:

                    
[{block name="checkout_basketcontents_basketitem_unitprice"}]
     [{* product price *}]
         <td>
             [{if !$basketitem->isBundle() || !$basketitem->isDiscountArticle()}]
              [{if $basketitem->getFUnitPrice() }][{ $basketitem->getFUnitPrice() }] [{ $currency->sign}][{/if}]
               [{/if}]
          </td>
[{/block}]

die Information zu packen.

In der “productmain.tpl” habe ich diesen Codefetzen gefunden:

                
[{block name="details_productmain_priceperunit"}]
        [{if $oDetailsProduct->getPricePerUnit()}]
        <span id="productPriceUnit">[{$oDetailsProduct->getPricePerUnit()}] [{$currency->sign}]/[{$oDetailsProduct->oxarticles__oxunitname->value}]</span>
        [{/if}]
[{/block}]

Irgend jemand ein Idee, wie man das zusammenbringt? Herzlichen Dank im Voraus für eure Hilfe!

…es soll ja auch nicht valide sein, sondern funktionieren. Und zwar als Übergangslösung, bis seitens Oxid ein professionelles, sicherlich 100% valides Update kommt. Man könnte auch den Button weg lassen und nur einen Textlink setzen, ist ja nur ne optische Sache.

Ansonsten sind Verbesserungsvorschläge natürlich jederzeit willkommen :slight_smile:

[QUOTE=nickname;96217]

                            <button  type="submit" class="submitButton largeButton"><a style="color:white;text-decoration:none;" href="[{$basketitem->getLink()}]" rel="nofollow">alle Produktinfos</a></button> <br><br>
 

[/QUOTE]

Hast du Dir schon mal überlegt was passiert, wenn du den Button komplett weglässt, und die CSS Klassen deinen Link zuweist? :slight_smile:

Ferner würde ich es noch in folgende Abfrage packen, damit es auch nur auf der 4.ten Bestellseite angezeigt wird, und nicht auch im normalen Warenkorb.


[{if !$editable }]
 MEIN LINK ZU PRODUKTBESCHREIBUNG
[{ /if }]

Außerdem würde ich den normalen Link zum Produkt unter allen Umständen vermeiden wollen, und nur dann setzen, wenn der User JavaScript deaktiviert hat. Ansonsten würde ich die Produktbeschreibung als modales PopUp öffnen, damit er keines Falls wieder von der 4.ten Seite wegkommt.

Nur mal so als Ansatz:-)

Ich verstehe nicht ganz, warum man so lange über den lächerlichen Button diskutieren muss. Wenn jemand irgendeinen Fehler erkennt, kann er auch gleich eine Lösung posten, dann wäre die Sache längst erledigt.

coarsy hat in seiner order.tpl einen Textlink zu den Artikeldetails erstellt, nämlich diesen hier:

[<div class="actions"><a id="detail_[{ $basketproduct->oxarticles__oxid->value }]_[{$smarty.foreach.testArt.iteration}]" rel="nofollow" href="[{ $basketproduct->getLink() }]">[{ oxmultilang ident="DETAILS_PRODUCTDETAILS" }]</a></div>

Der funktioniert auch unter Azure bestens, und ist sicher die bessere Lösung, da mein Button, wie ich nun festgestellt habe, wohl nicht in jedem Browser funktioniert. Besten Dank übrigens für den Code, coarsy :slight_smile:

Ich finde, im normalen Warenkorb stört der Artikeldetails-Link auch nicht.
Den Vorschlag mit dem Popup finde ich hervorragend, man müsste im Idealfall nur die Langbeschreibung als Popup öffnen können, nicht die ganze Artikelseite.

@Sport-rundum: Wow! klasse. vielen dank! ich versuch mich mal da durchzuarbeiten.

[QUOTE=nickname;96276]
Den Vorschlag mit dem Popup finde ich hervorragend, man müsste im Idealfall nur die Langbeschreibung als Popup öffnen können, nicht die ganze Artikelseite.[/QUOTE]

So habe ich das gelöst: Es wird abgefragt ob eine Artikelbeschreibung oder Attribute zum Artikel vorhanden sind, und wenn das der Fall ist, wird ein Link gesetzt, in dem dann Beschreibung oder Attribute angezeigt werden.

Ganz oben in der basketcontens.tpl einfügen


[{oxscript include="js/widgets/oxmodalpopup.js" priority=10 }]

Vor



        [{foreach key=basketindex from=$oxcmp_basket->getContents() item=basketitem name=basketContents}]

folgendes einfügen


[{assign var="oCount" value=1}]

Dann an der gewünschten Stelle einfügen:


[{if !$editable }] 
[{assign var="oLongdesc" value=$basketproduct->getArticleLongDesc()}] 
                                     
[{if $oLongdesc->value || $basketproduct->getAttributes() }] 
     [{oxscript add="$( '#long_desc_$oCount' ).oxModalPopup({ target: '#long_desc_pop_$oCount',width:'500px'});"}] 
<div style="margin:5px;"> 
<script type="text/javascript"> 
document.write("<a id='long_desc_[{$oCount}]' href='#' class='go_away'>[{oxmultilang ident='PAGE_DETAILS_TABS_DESCRIPTION'}] , [{oxmultilang ident='DETAILS_SPECIFICATION'}]<\/a>") 
</script>  
                                                 
<noscript> 
<a class="go_away" href="[{ $basketproduct->getLink() }]" >[{ oxmultilang ident="PAGE_DETAILS_TABS_DESCRIPTION" }] , [{oxmultilang ident='DETAILS_SPECIFICATION'}]</a> 
</noscript>   
</div> 
                                           
<div id="long_desc_pop_[{$oCount}]" class="popupBox corners FXgradGreyLight glowShadow"> 
<img src="[{$oViewConf->getImageUrl('x.png')}]" alt="" class="closePop"  /> 
<div style="margin-top:25px;"> 
      <h3>[{ $basketproduct->oxarticles__oxtitle->value }][{if $basketproduct->oxarticles__oxvarselect->value }], [{ $basketproduct->oxarticles__oxvarselect->value }][{/if }]</h3> 
       [{if $oLongdesc->value }] 
           [{oxeval var=$oLongdesc}] 
       [{ /if }] 
                                                  
       [{if $basketproduct->getAttributes() }] 
            <div class="detail_access" style="margin-top:10px;"> 
            <table class="attributes"> 
               [{foreach from=$basketproduct->getAttributes() item=oAttr name=attribute}] 
                   <tr> 
                       <th id="attrTitle_[{$smarty.foreach.attribute.iteration}]"><strong>[{$oAttr->oxattribute__oxtitle->value}]</strong></th> 
                        <td id="attrValue_[{$smarty.foreach.attribute.iteration}]">[{$oAttr->oxattribute__oxvalue->value}]</td> 
                   </tr> 
                [{/foreach}] 
           </table> 
        </div> 
       [{ /if }] 
    </div> 
   </div> 
   [{assign var="oCount" value=$oCount+1}]
 [{ /if }] 
 [{ /if }]  

Version 4.5.6. Keine Ahnung, ob das in der 4.6 auch funktioniert, aber vielleicht kannst du es ja mal testen.

Hi,

wie cool. :slight_smile:
Ich hab immer die Befürchtung, dass solche Code-Schnippel irgendwann im Forum verschwinden. Habt Ihr vielleicht Lust, das hier mit zu veröffentlichen?
https://github.com/OXIDprojects/

Gruß

@Novalgin: Danke für den Tipp. Deinen code würde ich ganz gerne einmal in action sehen. ich habe versucht die geegnete stelle in der basketcontents.tpl zu finden. Doch scheinbar bin ich nicht pfiffig genug :wink:

[QUOTE=Dor99;96351]@Novalgin: Danke für den Tipp. Deinen code würde ich ganz gerne einmal in action sehen. ich habe versucht die geegnete stelle in der basketcontents.tpl zu finden. Doch scheinbar bin ich nicht pfiffig genug ;)[/QUOTE]

Die geeignete Stelle hab ich weiter oben genau beschrieben, so ab Zeile 70 rum wäre passend.

Leider bekomme ich das Popup aber nicht hin, wenn ich den Code einfüge, wird die Seite nicht mehr richtig aufgebaut. Da muss irgend ein Fehler drin sein, den ich nicht finde. Evtl. könntest du das nochmal überprüfen, novalgin?
Kann mir eigentlich nicht vorstellen, dass es wegen der Shopversion nicht funktioniert.

Man könnte, wie bereits nickname weiter oben beschrieben, den Code nach


<div>
                                [{ oxmultilang ident="PAGE_CHECKOUT_BASKETCONTENTS_ARTNOMBER" }] [{ $basketproduct->oxarticles__oxartnum->value }]
                            </div>

ca. Zeile 70 einfügen.

Bitte versuche es nun nochmal. Eintrag angepasst

Ja, das funktioniert jetzt (auch in 4.6). Das ist wirklich ein Knaller, vielen Dank für den Code ! :slight_smile:

übrigens: In dieser Zeile kann die Breite des PopUps mit übergeben werden. In meinem Beispiel, sind das 500px


[{oxscript add="$( '#long_desc_$oCount' ).oxModalPopup({ target: '#long_desc_pop_$oCount',width:'500px'});"}] 

In unserem 2ten Shop, haben wir das mit reinem CSS gelöst, und die Artikelbeschreibung und Attribute werden beim Hovern des Links sofort angezeigt. Mir gefällt diese Variante aber irgendwie besser:-)

Finde das auch besser als Hovern beim Drüberfahren.

Verbesserungsvorschlag:

Beim Artikel-Bild und -Titel den Link entfernen:

<td class="basketImage">
 [{*<a href="[{$basketitem->getLink()}]" rel="nofollow">   *}]
<img src="[{$basketitem->getIconUrl()}]" alt="[{$basketitem->getTitle()|strip_tags}]">
[{* </a>  *}]
</td>
[{*<a rel="nofollow" href="[{$basketitem->getLink()}]">*}][{$basketitem->getTitle()}][{*</a>*}]

und dafür das Popup auch im “normalen” Warenkorb anzeigen ( [{*if !$editable *}] ).

@novalgin
@Nickname

Herzlichen Dank für euren Code und die Tipps. Funktioniert in der 4.5.11 perfekt und ist in meinen Augen eine perfekte Lösung.

Jetzt fehlt mir nur noch ein Tipp, wie ich die Angaben laut PAngV (Preis pro Stück/Liter/Meter usw.) unter den Artikelpreis im Warenkorb bekomme … und dann lasse ich den 01.08. mal beruhigt auf mich zurollen :wink:

Viele Grüße und einen schönen Sonntag
Jörg

Hallo,

in Novalgins Code wurde die Möglichkeit geschaffen, bei deaktivierten Scripts anstelle des Artikeldetails-Popups einen einfachen Link zum Artikel bereitzustellen. Soweit so gut.

Dabei ist mir dann aber aufgefallen, dass man mit deaktivierten Scripten gar nicht mehr den Warenkorb öffnen kann, da auch dieser im Azuretemplate mit einem modalen Popup geöffnet wird. Ok, es gäbe noch einem Link zum Warenkorb im Footer, aber wird dieser auch gefunden? Ich fürchte nicht.

Deshalb habe ich noch das Warenkorbbildchen mit einem Link versehen, der bei deaktivierten Scripten aktiv ist, so dass man beim Klick auf dem Warenkorb/Einkaufstüte diesen auch öffnen kann. Bei aktivierten Skripten bleibt der Link deaktiviert.

Hier der Code, bei Bedarf einfach in die …/out/azure/tpl/widget/minibasket/minibasket.tpl ab Zeile 25 einbauen:


 <noscript>          
<a href="[{ oxgetseourl ident=$oViewConf->getBasketLink() }]" rel="nofollow">    </noscript>
<img src="[{$oViewConf->getImageUrl('basket.png')}]" id="[{$_prefix}]minibasketIcon" alt="Basket" class="basket">
  <noscript>         
</a>   
</noscript>