Versandkostenart als Radiobutton / Preis anzeigen

Hallo,

damit im Shop alle Versandarten sofort sichtbar sind, habe ich diese auf Radio-Buttons umgestellt. (Dank an eine Beitrags von Nightwalker). Nun möchte ich gerne dem Kunden die Kosten der jeweiligen Versandart direkt anzeigen (damit er sich entscheiden kann).

Mit

$oxcmp_basket->getFDeliveryCosts()

bekomme ich allerdings überall den gleichen Betrag. Leider habe ich in der Dokumentation nichts Brauchbares gefunden.
Hat jemand ggf. eine Idee, welche Variable man da anziehen muss?

Gruß, Tronico

Ich weiss nach Deinen Angaben zunächst mal nicht wie und wo genau Du im Shop was anzeigen willst.

  1. Ein Screenshot vom Frontend mit Beschreibung wäre zunächst sinnvoll.

  2. Die eingestellten Versandkosten kannst Du ja aus der MySQL Tabelle "oxdelivery " abgreifen. Da diese Versandkosten aber bestimmt von Versandkostenregeln abhängen - wie z:B. Gewicht, Preis, Gesamtbestellung, (evtl. Land) etc. - müssten sie ggf. auch entsprechend berechnet werden. Wenn es zu komplex wird, schafft die Erstellung einer Matrix erstmal Klarheit.

Also, wie möchtest Du das darstellen?

Hallo,

anbei der gewünschte Screenshot.

Auf der rechten Seite (in dem roten Rechteck) sollen hinter der Versandarten die aktuellen Preise stehen, damit der Kunde auf dem ersten Blick die Unterschiede sieht,
und nicht erst wie derzeit angezeigt, wenn man die Versandart ausgewählt hat.

Gruß, Tronico

Danke, jetzt ist klar worum es geht.

Wenn Du zum Abgreifen der Versandkosten im payment.tpl nur das Dropdown-Menü gegen Radio Buttons korrekt ersetzt hast, dann bleibt der Code dazu unverändert:

[{*VERSANDART KOSTEN*}]
              <div id="test_shipSetCost" class="left fs10">
                [{ if $oxcmp_basket->getDeliveryCosts() }]   
                  [{ oxmultilang ident="PAYMENT_CHARGE" }] [{ $oxcmp_basket->getFDeliveryCosts() }] [{ $currency->sign}]
                [{ /if}]
              </div>

Prüf bitte erstmal nach ob die Versandkosten und Versandkostenregeln mit a l l e n erfoderlichen Zuordnungen im Admin richtig eingestellt sind, bzw. mach einfach nochmal einen Test mit dem alten orig. Template:

[{*VERSANDART DROPDOWN*}]
    <div class="box info">
        <form action="[{ $oViewConf->getSslSelfLink() }]" name="shipping" id="shipping" method="post">
          <div>
              [{ $oViewConf->getHiddenSid() }]
              [{ $oViewConf->getNavFormParams() }]
              <input type="hidden" name="cl" value="[{ $oViewConf->getActiveClassName() }]">
              <input type="hidden" name="fnc" value="changeshipping">

              <div class="left">
                <select name="sShipSet" onChange="JavaScript:document.forms.shipping.submit();">
                  [{foreach key=sShipID from=$oView->getAllSets() item=oShippingSet name=ShipSetSelect}]
                    <option value="[{$sShipID}]" [{if $oShippingSet->blSelected}]SELECTED[{/if}]>[{ $oShippingSet->oxdeliveryset__oxtitle->value }]</option>
                  [{/foreach}]
                </select>
                <noscript>
                  <div>
                    <span class="btn"><input class="btn" type="submit" value="[{ oxmultilang ident="PAYMENT_UPDATESHIPPING" }]" ></span>
                  </div>
                </noscript>
              </div>

Anderfalls kann der Fehler nur im Code mit den Radio Buttons liegen:

Hmm, ja soweit war ich schon. Es wird jedoch überall der gleiche Preis angezeigt (siehe Bild).

Hier der Code für die Radiobuttons:


<div class="box info">
        <form action="[{ $oViewConf->getSslSelfLink() }]" name="shipping" id="shipping" method="post">
          <div>
              [{ $oViewConf->getHiddenSid() }]
              [{ $oViewConf->getNavFormParams() }]
              <input type="hidden" name="cl" value="[{ $oViewConf->getActiveClassName() }]">
              <input type="hidden" name="fnc" value="changeshipping">
              <table class="form" style="width:96%">
              <div class="left">
                <table class="form" style="width:96%">
                [{foreach key=sShipID from=$oView->getAllSets() item=oShippingSet name=ShipSetSelect}]
                 <tr>
                 <td>
                    <input type="radio" name="sShipSet" value="[{$sShipID}]" onClick="JavaScript:document.forms.shipping.submit();" [{if $oShippingSet->blSelected}]checked[{/if}]>
                 </td>
                 <td>
                   [{ $oShippingSet->oxdeliveryset__oxtitle->value }]
                  </td>
                  <td>
                     <img src="[{ $oShippingSet->oxdeliveryset__oxtitle->value }].jpg" alt="" />
                  </td>
                  <td>
                   [{ $oxcmp_basket->getFDeliveryCosts() }] [{ $currency->sign}]
                  </td>
                  </tr>
                   <tr class="tr_sep">
                      <td colspan="4"><div class="dot_sep"></div></td>
                    </tr>
                  [{/foreach}]
                 
                <noscript>
                  <div>
                    <span class="btn"><input class="btn" type="submit" value="[{ oxmultilang ident="PAYMENT_UPDATESHIPPING" }]" ></span>
                  </div>
                </noscript>
              </div>
              </table>
              <div id="test_shipSetCost" class="right fs10">
                [{ if $oxcmp_basket->getDeliveryCosts() }]
                <br />
                  [{ oxmultilang ident="PAYMENT_CHARGE" }] [{ $oxcmp_basket->getFDeliveryCosts() }] [{ $currency->sign}]
                [{ /if}]
              </div>
          </div>
        </form>
    </div>

Also der Fehler liegt allein im Code mit den Radio Buttons, die nichts bewirken.
Prüfe bitte nochmal die logische Abfolge wie das Umschalten der Versandart einen anderen Wert liefern soll.

Ich glaube du hast das Problem nicht ganz verstanden. :frowning:

Der Code arbeitet einwandfrei.
Sobald ein Radiobutton gewählt wird, wird der angezeigte Preis ja geändert.
(Das sieht man übrigens auch in den Screenshots.)

Die drei Versandartenhaben jedoch jeweils unterschiedliche Preise. Und diese möchte ich in der Zeile der Versandart darstellen.
Ich brauche lediglich die Variable (sofern es diese gibt) mit der ich den Preis der Versandart in abfragen kann.

Mit

 [{ $oShippingSet->oxdeliveryset__oxtitle->value }]

wird ja z.B. auch der Name der Verandart abgefragt. Das muss doch auch mit dem Preis gehen.

$oxcmp_basket->getFDeliveryCosts()

übergibt nur den Preis der [B]gewählten [/B]Versandart.

Ja. das war ein Missverständis auf die Schelle, weil ich nur gesehen habe, dass alle 4 Werte gleich sind.
Ich habe jetzt den Code bei mir im payment.tpl getestet und sehe was Du meinst.

  1. Bei jedem der 3 Radio Buttons soll also jeweils der dazugehörige Versandkostensatz immer angezeigt werden und nicht ausschliesslich bei dem jeweils gewählten Button.
    Hier liegt das Problem.

  2. Bei Auswahl eines Buttons solll somit nur der gewählte Wert ganz unten geändert - das ist die Variable.
    Das hast Du ja schon.

Korrekt bevor es weitergeht?

[QUOTE=Earlybird;71545]

  1. Bei jedem der 3 Radio Buttons soll also jeweils der dazugehörige Versandkostensatz immer angezeigt werden und nicht ausschliesslich bei dem jeweils gewählten Button.
    Hier liegt das Problem.
    [/QUOTE]

Korrekt.

[QUOTE=Earlybird;71545]
2. Bei Auswahl eines Buttons solll somit nur der gewählte Wert ganz unten geändert - das ist die Variable.
Das hast Du ja schon.

Korrekt bevor es weitergeht?[/QUOTE]

Ja, genau über

$oxcmp_basket->getFDeliveryCosts()

ist das möglich.

Mir fehlt nur die Abfrage für Punkt 1.

Tonico,

die simultane Berechnung aller Versandkostenarten aus einem aktuellen Warenkorb erscheint zunächst sehr simpel. Die Berechnung ist aber abhängig von sehr vielen Einstell-Möglichkeiten bei den Versandarten und Versandkostenregeln.

Nach tieferem Einblick in den Oxid-Programmcode erscheint mir dieser unübersichtlich über php und tpl Dateien verstreut. Zusätzlich gibt es bei Releasewechsel auch Codeänderungen.

Fazit: Das ist ein echtes Hard Core Thema - reif für ein Modul.

Hi Leute,
bin auch grade drüber gestolpert. In der Tat, das ist wirklich komplex.

Fazit: Das ist ein echtes Hard Core Thema - reif für ein Modul.
Oder für einen feature request. Irgendwie ist schon doof, das der Kunde, wenn es verschiedenen Preise gibt, den evtl. günstigeren Preis erst in Erfahrung bringt, wenn er explizit den Versandweg ändert.

Wo war noch mal gleich die Stelle an der man sowas als Wunsch loswerden kann?

adios, Stefan

https://oxid.uservoice.com/

mercy!

Aheu,

ich bin auf der Suche nach einer Umstellmöglichkeit der Versandartauswahl zu Radio-Buttons über diesen Thread gestolpert und bin ehrlich gesagt gerade schockiert, dass es von Haus aus keine Möglichkeit gibt dem Kunden alle Versandkosten gleichzeitig anzuzeigen. Da ist ja mein 6 Jahre alter osCommerce Shop besser aufgestellt. Mich wundert auch, dass es scheinbar vorher noch niemanden gestört hat. Das Dropdown Menü finde ich für die Auswahl der Versandart furchtbar.

Hat da mittlerweile eventuell jemand eine gangbare Lösung gefunden? Ansonsten muss ich mir den Wechsel zu Oxid nochmal überlegen.

Viele Grüße,
Kalle

Hallo Kalle,

schreib ein Modul, stell es hier für alle öffentlich unter GPL zur Verfügung, damit niemand mehr schockiert zu sein braucht:
https://github.com/OXIDprojects/

BTW: Ein OSC kann keine Versandarten sondern nur eindimensionale Versandkostenregeln. Hab selbst lange damit gearbeitet :wink:

Gruß

Reisende soll man nicht aufhalten - aber OSC? Ich bin schockiert…:smiley:

das ist ein Beispieltemplate und kann von jedem nach Wunsch verändert werden…

Nee nee, ich denke, hier wurde das Konzept nicht verstanden. @Kalle, lies Dir mal das hier durch:

Gruß

es geht eher darum, dass man sich durch alle Versandarten durchklicken muss um alle Versandkosten zu erfahren und die Seite jedes mal neugeladen wird. Alle Versandkosten auf einen Blick wären schon viel angenehmer

Ich stecke in Oxid noch nicht sonderlich tief drin, sondern fange grade erst an mich da reinzufummeln. Gebe das Shopdesign diesmal auch nach aussen.
Für mein Verständnis sollte es doch aber machbar sein bei der Ermittlung der möglichen Versandarten direkt auch die entsprechenden Kosten zu errechnen. Die Versandkostenregeln also direkt beim ersten Laden der Seite abzuarbeiten. Ggf. eben mehrfach wenn mehr als eine Versandart zur Verfügung steht.
Nun hatte jemand geschrieben, dass der Code über tpl und php verteilt steht. Das macht es dann wohl nicht unbedingt einfacher.
Die Anspielung auf OSC war einfach nötig, weil hier alle Kosten gleichzeitig angezeigt werden. Dass Oxid da wesentlich flexibler ist was Regeln für die Kostenberechnung angeht habe ich heute gemerkt, als ich die ersten Versandarten angelegt habe. Da musste ich mir die Regeln in OSC selbst reinprogrammieren. Oxid bringt da schon sehr viel mit.

Viele Grüße,
Kalle

Servus Leute,

als erstes wünsch ich Euch mal was nettes dieses Jahr. Falls nicht schon geschehen in den letzten 14 Tagen. In dem Fall halt erst 1x was nettes abziehen dann das Nette von meinen Wunsch später wieder drauf. Quittung zu mir.

Für mein Verständnis sollte es doch aber machbar sein bei der Ermittlung der möglichen Versandarten direkt auch die entsprechenden Kosten zu errechnen. Die Versandkostenregeln also direkt beim ersten Laden der Seite abzuarbeiten. Ggf. eben mehrfach wenn mehr als eine Versandart zur Verfügung steht.
Genau, Du hast es erfasst. Das ist das Thema.

Nun hatte jemand geschrieben, dass der Code über tpl und php verteilt steht. Das macht es dann wohl nicht unbedingt einfacher.
Glaub mir, dass ist das kleinste Problem.

Wenn Du Dich in oxid eingelebt hast kannst Du diesen Punkt ja mal wieder aufgreifen und hier was passendes posten.

bis dahin
adios, Stefan