Ankündigung

Einklappen
Keine Ankündigung bisher.

Shop rechnet den falschen Endbetrag aus

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #31
    Zitat von tsde
    Nochmal etwas detaillierter:
    ZC 1.3.7
    Zusätzlich Group Price per Item installiert
    Großhandelsshop
    Beispiel:
    Zwischensumme: 80 €
    Versandkosten nach Zonen (Versand an DE (1 x 30.00kg)): 5.95 €
    Gruppenermäßigung (12.5%): -10 €
    MwSt. 19%: 14.95 €
    Summe: 90.24 €
    Normalerweise müsste da laut unserer Rechnung eine Summe von 90.38 € herauskommen.
    Woran kann's liegen?
    Ich habe das mal in 1.3.7 mit der neuesten Version von Group Pricing per Item (http://www.zen-cart.com/index.php?ma...roducts_id=256) nachgestellt.
    Der Artikel ist mit 80 Euro Netto definiert, also 95.20 Brutto
    Die Gruppenermäßigung wird vom Nettopreis berechnet.

    Bei mir schaut das dann so aus:
    Zwischensumme: €95.20
    Versandkosten: €5.95
    Gruppenermäßigung: -€10.00
    19%: 15,20
    Summe: €91.15

    Ist es das, was Du haben willst?

    Kommentar


      #32
      Zitat von webchills
      Ist es das, was Du haben willst?
      Nicht wirklich.
      Habe mich jetzt erneut an das Problem begeben.
      Testkunde hat 20% Gruppenermäßigung.
      Großhandel.
      Summe Artikel: 80,00 €
      Gruppenermäßigung: 16,00 €
      Preis ohne MwSt. also: 64,00 €
      zzgl. Versandkosten: 5,95 €
      Ergibt 69,95 o. MwSt.
      Ergibt 83,24 incl. MwSt.
      So wäre es richtig.

      Der Shop allerdings zeigt an:
      Zwischensumme: 80 €
      Versandkosten nach Zonen (...): 5,95 €
      Gruppenermäßigung: -16,00 € -> Richtig (Wird aber nur richtig angezeigt)
      19%: 13,06 € -> Falsch
      Summe: 83,01 € -> Falsch

      Die Gruppenermäßigung wird abgezogen vom Produktpreis angezeigt jedoch wird offensichtlich völlig anders gerechnet.

      Die MwSt. wird offensichtlich so berechnet, dass Produktpreis und Versandkosten zusammengezogen werden, davon(!) die Gruppenermäßigung abgezogen wird und auf dieser Grundlage die MwSt. berechnet wird. Das ist an sich schonmal falsch.

      Wie bis dahin gerechnet wird kann ich noch nachvollziehen, wie jedoch ein Endpreis entstehen kann, der dann nochmal absolut nicht nachvollziehbar ist, erschließt sich mir nun wirklich nicht mehr! :evil:

      Wo genau finden denn die relevanten Berechnungen dafür statt? Das würde ich mir gerne mal ansehen.

      Kommentar


        #33
        Mal abgesehen von der völlig wirschen Art wie berechnet wird, kann es sein, dass die Funktion calculate_deductions($order_total) zweimal aufgerufen wird?

        Kommentar


          #34
          ...bzw. die Funktion process() ?

          Langsam nervts echt....wer hat denn das geschrieben? Den würde ich mal gerne selbst sprechen..... :evil:

          Kommentar


            #35
            Ok, bis zum offenbar letzten Aufruf stimmt die Rechnung und er rechnet 6.08 als Steuer von den 32€ Rabatt (Wofür eigentlich? das geht auch einfacher) und dann hat er plötzlich 6.53€, d.h. die 45 cent sind 19% des Rabattes, den er von den Versandkosten berechnet hat, was er nicht tun darf!!!
            Wo macht er das denn???

            Kommentar


              #36
              Mmmmmpffff......es lebe ein dokumentierter und nachvollziehbarer Sourcecode...

              Bevor ich hier gleich den Shop vom Server schmeiss, mach ich Feierabend. :angry:

              Kommentar


                #37
                So gerne ich dir auch helfen würde, auch ich kann diese Funktion überhaupt nicht nachvollziehen.

                Leider ist das Ganze nicht auf unserem Mist gewachsen, genausowenig wie diese unsägliche eMail Funktion. Das haben wir den Amis und deren Gesetzen zu verdanken. Die sind dort leider nicht so wie wir hier gezwungen alles inkl. MwSt. auszuweisen.

                Denn sobald du auf reine Nettowerte umstellst funktioniert das alles tadellos.

                Gruß
                MaleBorg

                Kommentar


                  #38
                  Hallo Maleborg,
                  ich habe jetzt eine Lösung, die zu funktionieren scheint.
                  In der includes/modules/order_total/ot_group_pricing.php
                  in der Funktion calculate_deductions($order_total)
                  habe ich folgende Änderungen durchgeführt:

                  Code:
                  while (list($key, $value) = each($order->info['tax_groups'])) {
                  		 
                  					  $tax_rate = zen_get_tax_rate_from_desc($key);
                  					  if ($tax_rate > 0) {
                  					  // +++ Hier wurden Aenderungen Durchgeführt +++
                  					  $corr_ded=$order->info['shipping_cost']*$ratio;
                  						$corr_ded_tax = $corr_ded /100*$tax_rate;
                  						$tod_amount -= $corr_ded_tax;
                  					    $od_amount[$key] = $tod_amount = round(($order->info['tax_groups'][$key]) * $ratio - $corr_ded_tax, 2) ;
                  						// --------------------------------------------------------------
                  					    $od_amount['tax'] -= $tod_amount;
                  					  }
                            }
                  ACHTUNG!!!
                  Diese Änderungen funktionieren nur mit den von mir weiter oben angegebenen Einstellungen!!!
                  Bei anderen Einstellungen stimmt die Rechnung dann nicht mehr!!!


                  Getestet in 1.3.7

                  Vielleicht hat ja jemand mal das gleiche Problem mit dem Großhandel und kann es brauchen.

                  Grüße, tsde

                  Kommentar


                    #39
                    Danke für die Rückmeldung. Ich glaub ich brauch mal Nachhilfe bei dir im Verständnis von dem Teil, damit ich auch endlich mal eine Lösung für alle Belange anbieten kann.

                    Gruß
                    MaleBorg

                    Kommentar


                      #40
                      Zitat von MaleBorg
                      Danke für die Rückmeldung. Ich glaub ich brauch mal Nachhilfe bei dir im Verständnis von dem Teil, damit ich auch endlich mal eine Lösung für alle Belange anbieten kann.

                      Gruß
                      MaleBorg
                      Um ehrlich zu sein, ich habe immer noch nicht geschnallt, wie das wirklich funktioniert. Scheint auf jeden Fall sehr 'kreativ' programmiert. :lol:

                      War jetzt mehr die Holzhammermethode....aber wenn's läuft. :lol:

                      Kommentar


                        #41
                        Hallo Leute,

                        bin auch wieder fast wahnsinnig geworden mit der shop Rechnerei. Dafür habe ich jetzt aber vielleicht auch etwas zur Lösung beizutragen:

                        Beim Abzug eines Coupons (Aktionskupon) nimmt der Shop zwei verschiedene Werte um den Abzug zu berechnen, und um dann damit eine neue Gesamtsumme zu berechnen.
                        Meine Lösung funktioniert hier ganz ordentlich.

                        Verändert nur 1 Zeile in der Funktion "process()" in der Datei /includes/modules/order_total/ot_coupon.php zen-cart 1.3.7:

                        Alte Datei mit Zeilennummern:
                        Code:
                        ...
                        // hier wird der [U]Abzug[/U] berechnet:
                        32     $od_amount = $this->calculate_deductions($this->get_order_total());
                         
                        ...
                        
                        // hier wird die neue [U]Gesamtsumme[/U] berechnet:
                        49       $order->info['total'] = $order->info['total'] - $od_amount['total'];
                        ...

                        Bei mir habe ich nur die Zeile 49 geändert zu:
                        Code:
                        // Nimm denselben Wert um die [U]Gesamtsumme[/U] zu berechnen,
                        // wie schon oben um den [U]Anzug[/U] zu berechnen:
                        49       $order->info['total'] = $this->get_order_total() - $od_amount['total'];
                        Hope that helps!
                        Grüße,
                        P.

                        Kommentar


                          #42
                          Also in 1.3.7 funktioniert das Ganze, in 1.3.8 leider nicht.

                          Gruß
                          MaleBorg

                          Kommentar


                            #43
                            Hi,
                            das ist natürlich ärgerlich.
                            Falls jemand echt noch damit kämpfen sollte, vielleicht noch folgende info (bezieht sich auf zen 1.3.7):

                            1. Die ganze Rechnerei wird anscheinend 2 mal durchgeführt, einmal in der header.php Datei, um zu sehen ob es vielleicht eine Gutschrift gibt, aufgrund der dann evtl. überhaupt gar keine Bezahlung mehr nötig sein könnte.

                            2. Gibt es eine zu bezahlende Gesamtsumme, dann wird ebendiese in der template noch einmal neu berechnet, um sie dann anzuzeigen. Warum man das nochmal machen muss, habe ich nicht ersehen können, aber ok – ist eben so.
                            3. Bie dieser Berechnung wird nacheinander (in der vom Shop Admin unter "Module -> Zusammenfassung" festgelegten Sortierung / Reihenfolge) in jedem der dort aktivierten Module die Funktion process() aufgerufen. Diese holt sich meistens sich die aktuelle Summe (aus $order->info['total']) , berechnet einen Aufschlag oder Abzug, addiert/subtrahiert den von der Summe und speichert die neue aktuelle Summe ab (wieder in $order->info['total']). Auf die neue Summe kann dann das nächste Modul zugreifen und sein Ding machen.

                            Ein falsche Berechnung findet also mit ziemlicher Wahrscheinlichkeit in einer der "process()" Funktionen der aktivierten Module statt, Frage ist eben immer nur wo. Für 1.3.8 kann ich da leider nichts zu sagen, aber vielleicht hilft ja die Info oben weiter –*ich habe da recht lange vor meinem Debugger gesessen, um zu kapieren wie das ganze überhaupt läuft.

                            Viel Spass!
                            p.

                            Kommentar


                              #44
                              Danke für die Tipps, ich versuch mich mal wieder an dem Teil, obwohl ich dadurch jede Menge grauer Haare mehr habe

                              Übringens habe ich oben vergessen dir zu danken, das hole ich dann hiermit nach: DANKE!

                              Gruß
                              MaleBorg

                              Kommentar

                              Info zu diesem Forenarchiv:
                              Mit Release von 1.5.7 wurde die deutsche Zen Cart Version auf eine reine DIY-Lösung umgestellt.
                              Für einen Support via Forum stehen keine personellen und zeitlichen Ressourcen mehr zur Verfügung.
                              Dieses Supportforum bleibt im Nur-Lesen-Modus als Wissensarchiv noch online verfügbar.
                              PM Funktionalität, Registrierung und Posten neuer Beiträge sind deaktiviert.
                              Zugriff auf Anhänge in den Postings ist auch ohne Registrierung/Einloggen möglich.
                              FAQ und Downloadbereich des Forums wurden in die neue umfangreiche Knowledgebase auf der zen-cart-pro.at Website übernommen.

                              Das Development der deutschen Zen Cart Version geht wie bisher auf Github weiter.
                              Wir werden auch weiterhin neue Versionen bereitstellen und die Onlinedokumentation/Knowledgebase aktualisieren.
                              Fehler in der Software können auf Github als Issues gemeldet werden.
                              Follow us
                              aktuelle version
                              Zen Cart 1.5.7g deutsch
                              vom 12.12.2023
                              [Download]
                              Lädt...
                              X