Jump to content

MwSt im Warenkorb anzeigen


Recommended Posts

Hallo,

der Rechtsanwalt des Kunden hat gesagt, im Warenkorb muss unbedingt die enthaltene MwSt angezeigt werden.
Üblich wäre die Reihenfolge:
* Bruttopreis
* darin enthaltene MwSt
* Versandkosten
* Endpreis

Die Versandkosten stehen zu diesem Zeitpunkt natürlich noch nicht fest, daher habe ich mal drunter geschrieben, dass diese noch dazukommen sowie einen Link auf die Seite mit den Versandkosten, ob das ausreicht, werde ich sehen.

Aber wie bekomme ich die MwSt da rein? Oder gibt es einen Schalter, den ich übersehen habe?
Danke
Beate

Link to comment
Share on other sites

Hallo Beate,

leider gibt es keine Option im Back-Office um die Steuern im Warenkorb anzuzeigen (zumindest in RC3). Das lässt sich nur durch "eingreifen" in den Quellcode lösen.

1148_ThhcGOoudAKDGMj6KYCQ_t

Link to comment
Share on other sites

Jop. Also in der /classes/Cart.php folgende Funktion einfügen:

   /**
    * Return cart products tax prices
    *
    * @result array Tax prices
    */
   function getPriceByTaxes()
   {
       $priceByTaxes = array();
       if (!$this->id)
           return 0;
       if ($this->_nb_products != NULL)
       {
           foreach($this->_products as $p)
           {
               if(!isset($priceByTaxes[$p['tax_rate']])) $priceByTaxes[$p['tax_rate']] = 0;
               $priceByTaxes[$p['tax_rate']] += $p['price_tax'];
           }
       }
       return $priceByTaxes;
   }



Und dann unter /themes/deinTheme/shopping-cart.tpl die Funktion aufrufen (müsste in die Zeile 39)

{foreach from=$priceByTaxes item=pbt key=tax_percent}

{l s='Steuer zu '}{$tax_percent}%:
{convertPrice price=$pbt}

{/foreach}

Link to comment
Share on other sites

  • 2 weeks later...
  • 2 weeks later...

So, habs hinbekommen :)
Natürlich hatte was gefehlt bei der Anleitung, und außerdem hat sich scheinbar das Array des Produktes geändert.

ich schreib gleich mal meine Anleitung, erst noch testen, ob es auch überall angezeigt wird...

Link to comment
Share on other sites

  • 3 weeks later...

Ja, läuft bei mir :)

Im Prinzip war der Code oben nicht soo falsch. aber es fehlte was, damit fang ich mal an:

/order.php:

$smarty->assign('priceByTaxes', $cart->getPriceByTaxes());



muss bei case 3 und default des Aufrufs

switch (intval($step))

rein, etwa zeile 93 und 99 ist das bei mir.


Dann in classes/Cart.php einfügen:

   /**
   * Return cart products tax prices
   *
   * @result array Tax prices
   */
  function getPriceByTaxes()
  {
      $priceByTaxes = array();
          if (!$this->id)
          return 0;
      if ($this->_nb_products != NULL)
      {
          foreach($this->_products as $p)
          {
              if(!isset($priceByTaxes[$p['rate']])) $priceByTaxes[$p['rate']] = 0;
              $priceByTaxes[$p['rate']] += ($p['price_wt'] - $p['price']) * $p['quantity'];
          }
      }
      return $priceByTaxes;
  }




Sowie im Template /themes/$your_theme/shopping-cart.tpl

{foreach from=$priceByTaxes item=pbt key=tax_percent}

Enthaltene MwSt. zu {$tax_percent}%:
{convertPrice price=$pbt}    

{/foreach}



in etwa Zeile 36, nach dem hier:


{l s='Total products:'}
{convertPrice price=$total_products_wt}


(Ich habe den code vom Template noch öfter einbauen müssen, da bei mir vor dem letzten Schritt auch noch mal der Warenkorb angezeigt wird...)

Versuch mal obs klappt...sonst hab ich evtl. was vergessen...

Link to comment
Share on other sites

super cool,
passt und läuft :-)

sind bei deinem shop-check und der rechlichen absicherung dessen, noch andere rechtliche lücken zu tage gekommen ?

ich versuche gerade impressum und agb's einzustellen, aber die struktur von presta ist gewöhnungsbedürftig.
( ???? php versus tpl datein ??? )

kannst du mir sagen wo ich die texte einbauen muß?

vielen dank
chris

Link to comment
Share on other sites

Das ist eigentlich recht einfach, über PHP werden nur die (Smarty-)Templates aufgerufen, daher kannst du alles unter /themes/$dein-theme/ direkt reinschreiben. Hab ich auch so gemacht. Später soll wohl möglich sein, den Content auch übers Backend zu verwalten.

Ansonsten hab ich noch eine Widerrufsbelehrung drin, auch in der Bestätigungs-E-Mail. Und die AGB gibt's als HTML und als Download auf der gleichen Seite als PDF.

Hinweis: das ist keine Rechtsberatung, ich bin kein Anwalt. :)

Link to comment
Share on other sites

Du meinst das CMS. Das steht klar dort aber ich habe in meinen anderen Request geschrieben das ich dies weiter ausbauen würde. Denn wenn man ein festes Feld für die Wiederrufsbelehrung hat kann dies auch bei den E-Mails mit eingebunden werden. Wenn dies im CMS ist wird dies nicht so gehen.
Denn dein Anwalt hat dir ja auch gesagt das du die Wiederrufsbelehrung dort anbringen musst. Wenn du diese nun änderst musst du die überall ändern und das bedeutet mehr Aufwand und eine höhere Fehlerquote was zu vergessen. Wenn man aber pro Land usw. diese hinterlegen kann und das Team das so baut das bei E-Mails und beim Bestellbestätigung diese vorkommt und angezeigt wird. Ist das finde ich besser.

Gruss

Chris

Link to comment
Share on other sites

Ja, das stimmt, sorry.

Aber dann müsste es so eine Art Bausteinprinzip geben, wo man diese einpflegen könnte, und diesen Baustein kannst du dann im Template oder in E-Mails ausgeben lassen. Das wäre schick.

Link to comment
Share on other sites

Das meine ich genauso sollte es gelöst werden. Die Rechtlichen Sachen sollten als Bausteine fungieren die ich dann nur im Template usw. Aufrufe und dann wird dies angezeigt.

Auch auf andere anfragen bekam ich noch keine Reaktion:
Siehe: http://www.prestashop.com/bug_tracker/view/186/
http://www.prestashop.com/bug_tracker/view/185/
http://www.prestashop.com/bug_tracker/view/184/
und den bekannten: http://www.prestashop.com/bug_tracker/view/183/

Naja schauen wir mal was so kommt.

Gruss

Link to comment
Share on other sites

Hallo, leider klappt das bei mir der order.php nicht, da kommt eine weisse Seite; denke habe es falsch eingefügt.

Hier der Code aus order.php

---

 case 3:
           if(Tools::isSubmit('processCarrier'))
       $smarty->assign('priceByTaxes', $cart->getPriceByTaxes());
           processCarrier();
           autoStep(3);
           checkFreeOrder();
           displayPayment();
           break;
       default:
          $smarty->assign('priceByTaxes', $cart->getPriceByTaxes());
           $smarty->assign('errors', $errors); 
           displaySummary();
           break;
   }
}
else



---

Ich bitte um Hilfe!

Grüße

Maja

Link to comment
Share on other sites

case 3:
                       if(Tools::isSubmit('processCarrier'))
                               processCarrier();
                       autoStep(3);
                       $smarty->assign('priceByTaxes', $cart->getPriceByTaxes());
                       checkFreeOrder();
                       displayPayment();
                       break;
               default:
                       $smarty->assign('errors', $errors);
                       $smarty->assign('priceByTaxes', $cart->getPriceByTaxes());
                       displaySummary();
                       break;
       }
}
else



ich weiß nicht ob es an der reihenfolge liegen kann , aber bei mir funzt es so...

Link to comment
Share on other sites

GEHT NICHT, der gleiche Fehler ist da, also eine weisse Seite bei order.php

Hier der Code nun:

    /* 4 steps to the order */
   switch (intval($step))
   {
       case 1:
           displayAddress();
           break;
       case 2:
           if(Tools::isSubmit('processAddress'))
               processAddress();
           autoStep(2);
           displayCarrier();
           break;
       case 3:
                       if(Tools::isSubmit('processCarrier'))
                               processCarrier();
                       autoStep(3);
                       $smarty->assign('priceByTaxes', $cart->getPriceByTaxes());
                       checkFreeOrder();
                       displayPayment();
                       break;
               default:
                       $smarty->assign('errors', $errors);
                       $smarty->assign('priceByTaxes', $cart->getPriceByTaxes());
                       displaySummary();
                       break;
       }
}
else 
{
   /* Default page */
   $smarty->assign('empty', 1);
   Tools::safePostVars();
   include_once(dirname(__FILE__).'/header.php');
   $smarty->display(_PS_THEME_DIR_.'shopping-cart.tpl');
}

include(dirname(__FILE__).'/footer.php');



Gruß

Maja

Link to comment
Share on other sites

  • 1 month later...

Hallo,

ich habs mal probiert mit dem MwSt. im Warenkorb...leider wird kein Wert angezeigt.

cart.php Zeile 147-166

* Return cart products tax prices
    *
    * @result array Tax prices
    */
   function getPriceByTaxes()
   {
       $priceByTaxes = array();
       if (!$this->id)
           return 0;
       if ($this->_nb_products != NULL)
       {
           foreach($this->_products as $p)
           {
               if(!isset($priceByTaxes[$p['tax_rate']])) $priceByTaxes[$p['tax_rate']] = 0;
               $priceByTaxes[$p['tax_rate']] += $p['price_tax'];
           }
       }
print_r($priceByTaxes);         
return $priceByTaxes;
   }    



shopping-card.tpl in Zeile 35-45

{foreach from=$priceByTaxes item=pbt key=tax_percent}

Enthaltene MwSt. zu {$tax_percent}%:
{convertPrice price=$pbt}    

{/foreach} 
           {if $total_discounts != 0}

{l s='Total vouchers:'}
{convertPrice price=$total_discounts}
{foreach from=$priceByTaxes item=pbt key=tax_percent}



und in der order.php in der Zeile 77-102

/* 4 steps to the order */
switch (intval($step))
{
case 1:
displayAddress();
break;
case 2:
if(Tools::isSubmit('processAddress'))
processAddress();
autoStep(2);
displayCarrier();
break;
case 3:
if(Tools::isSubmit('processCarrier'))
processCarrier();
autoStep(3);
$smarty->assign('priceByTaxes', $cart->getPriceByTaxes());
checkFreeOrder();
displayPayment();
break;
default:
$smarty->assign('errors', $errors);
$smarty->assign('priceByTaxes', $cart->getPriceByTaxes());
displaySummary();
break;
}


leider wird im warenkorb nur das angezeigt (siehe Bild)

2112_AE5QSAC4tQPjyzhs1pBg_t

Link to comment
Share on other sites

  • 2 weeks later...

Da müsste man eine debug-Orgie starten, warum der Wert 0 ist, und da ich die final-Version nicht laufen habe, ist das etwas schwierig.
Vielleicht einfach mal ein {debug} ins template reinschauen und priceByTaxes untersuchen?

Link to comment
Share on other sites

  • 2 months later...
Bin noch dabei.

Ich habe noch gehackt, dass in dem letzten Schritt der Bestellung noch mal der Warenkorb angezeigt wird, mein RA wollte das so.


Dürfte ich mal fragen, wie Du das geschafft hast? Egal was ich anstelle, ich schaffe es nicht das der Warenkorb nochmal komplett angezeigt wird. Es fehlen jedesmal die Mehrwertsteuer (das script bearbeitet die foreach-Schelife nicht) und die Versandkosten
Link to comment
Share on other sites

  • 2 weeks later...

Ich bin mit dem Warenkorb am Ende des Bestellablaufes wirklich in einer Sackgasse. Weiss niemand eine Lösung, wie ich ihn dazu bringe mir die Steuern abschließend nochmal anzuzeigen?

Wäre wirklich, sehr sehr nett.

Link to comment
Share on other sites

Um Gottes Willen, kein Sorry. Ich muss schon "Danke" für das Angebot sagen und das Problem der nicht ausgewerteten "foreach"-Schleife wird sicher auch in der 1.1 auftauchen. Oder die Lösung mich auf die richtige Idee für die 1.0 bringen.

Und andere mit dem gleichen Problem gibt es ja auch ;-)

Link to comment
Share on other sites

  • 2 years later...

Hallo,

könnte mir jemand bitte, bitte den Originalcode zu den beiden unten stehenden Stellen geben?
Ich muss nochmal von vorne anfangen und habe den alten Code dämlicherweise nicht gespeichert.

Bitte, bitte, ist dringend!

LG,
mare

Jop. Also in der /classes/Cart.php folgende Funktion einfügen:
   /**
    * Return cart products tax prices
    *
    * @result array Tax prices
    */
   function getPriceByTaxes()
   {
       $priceByTaxes = array();
       if (!$this->id)
           return 0;
       if ($this->_nb_products != NULL)
       {
           foreach($this->_products as $p)
           {
               if(!isset($priceByTaxes[$p['tax_rate']])) $priceByTaxes[$p['tax_rate']] = 0;
               $priceByTaxes[$p['tax_rate']] += $p['price_tax'];
           }
       }
       return $priceByTaxes;
   }



Und dann unter /themes/deinTheme/shopping-cart.tpl die Funktion aufrufen (müsste in die Zeile 39)

{foreach from=$priceByTaxes item=pbt key=tax_percent}

{l s='Steuer zu '}{$tax_percent}%:
{convertPrice price=$pbt}

{/foreach}

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...