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: Staffelpreise und Attribute

    slope

    • Frisch an Board
    • Beiträge: 50
    Staffelpreise und Attribute
    am: 14. Mai 2024, 22:03:55
    Hallo Zusammen!

    Ich weiß, das Thema hat es hier schon zu Hauf gegeben, doch ich verstehe es einfach nicht, mache irgend etwas falsch, oder das was ich will funktioniert einfach nicht. Die Themen hier im Forum bin ich soweit alle durchgegangen, doch wie es scheint stehe ich noch immer auf dem Schlauch.

    Meine Versuche bisher erfolgten alle in der aktuellen Version des Shops v3.0.2 rev 15701. Diese habe ich sowohl in einer quasi nackten Testumgebung gemacht, bei welcher keinerlei zusätzliche Module installiert wurden, als auch in einer Version an der ich nun schon einige Tage arbeite. Und auch im öffentlichen Demoshop hier konnte ich das Problem  reproduzieren.

    Zur Schilderung des Problems:

    Ich habe einen Artikel A mit dem Grundpreis 9,95 €.

    Artikel A hat vier Attribute:

    • Version 1  - plus 0 €  = 9,95 €
    • Version 2 - plus 10 € = 19,95 €
    • Version 3  - plus 20 € = 29,95 €
    • Version 14 - plus 30 € = 39,95 €

    Soweit alles klein Problem.

    Sobald nun aber Staffelpreise ins Spiel kommen setzt mein Verständnis aus.

    Bei dem Artikel habe ich im Feld "Gast" den gleichen Basispreis von 9,95 € eingetragen. Unter Staffelpreise habe ich nun die Stückzahl 5 eingetragen, und den reduzierten Staffelpreis um 25% von 7,46 €.

    Wenn ich nun im Frontend testweise 5 Stück des Artikels A in der Basisausführung (also Version 1 der Attribute ohne Aufpreis) in den Warenkorb lege erhalte ich den richtigen reduzierten Preis von 7,46 € angezeigt. Soweit alles gut.

    Nun rufe ich den Artikel A noch einmal auf und sehe hier schon bei der Anzeige der Preise zu den einzelnen Attributen das Problem:
    • Version 1 - 7,46 € - RICHTIG
    • Version 2 - 17,46 € - FALSCH
    • Version 3 - 27,46 €  - FALSCH
    • Version 4 - 37,46 € - FALSCH
    Was passiert ist, dass der Basispreis-Staffelpreis ab 5 Stück zu je 7,46 € für Version 1  natürlich als Grundlage dient.  Auf diesen Basispreis wird dann zur Berechnung des Staffelpreises der Version 2 der Preisaufschlag von 10 € gewählt, wie es in den Attributen ja auch definiert ist. Das ergibt dann die 17,46 €. Richtig sein müsste aber 14,96 € (75% des Basispreis-Staffelpreises),
    Gleiches passiert mit den Staffelpreisen für Version 3  - dies ergibt laut Shop 27,46 € (Basispreis-Staffelpreis plus Aufschlag von 20 € laut Attributdefinition. Richtig wäre hier 22,46 € (75% des Basispreis-Staffelpreises).
    Die Staffelpreisen für Version 3  werden natürlich genau so berechnet - dies ergibt laut Shop 37,96 € (Basispreis-Staffelpreis plus Aufschlag von 30 € laut Attributdefinition. Richtig wäre hier 29,96 € (75% des Basispreis-Staffelpreises).

    Das Problem liegt meiner Meinung nach daran, dass ich den Staffelpreis nur als festen Wert eintragen kann. Wenn es möglich wäre wie bei den Sonderangeboten einen prozentualen Wert einzutragen, wäre mir glaube ich geholfen. Also anstatt "7.46" als Staffelpreis "einfach" nur "25%" eintragen, wie eben bei den Sonderangeboten auch möglich.

    Dann hatte ich mir einige Dateien angeschaut und in der Datei "admin/includes/classes/categorie.php" fand ich dort zu dem Sonderpreis folgenden Eintrag:

    Code: PHP  [Auswählen]
          if (substr($products_data['specials_price'], -1) != '%') {
            $products_data['specials_price'] = $this->priceCheck($products_data['specials_price'], $tax_rate);
          } else {
            $products_data['specials_price'] = trim(str_replace('%', '', $products_data['specials_price']));
            $products_data['specials_price'] = ($products_data['products_price'] - (($products_data['specials_price'] / 100) * $products_data['products_price']));
          }

    Ich meiner hier wird definiert wie mit dem Wert aus dem Feld "Angebotspreis" umgegangen  werden soll, wenn dort ein "%"-Zeichen enthalten ist. Das müsste sich doch auch auf die Staffelpreise anwenden lassen? Dazu finde ich in gleicher Datei folgenden Abschnitt:

    Code: PHP  [Auswählen]
      function calculate_attribute_prices($products_data,$products_id) {
       
          $products_tax_rate_old = xtc_get_tax_rate($products_data['products_tax_class_id_old']);
         
          $attributes_query = xtc_db_query("SELECT *
                                              FROM "
    .TABLE_PRODUCTS_ATTRIBUTES."
                                             WHERE products_id = '"
    .$products_id."'
                                               AND options_values_price > 0"
    );
          if (xtc_db_num_rows($attributes_query) > 0) {
            while ($attributes = xtc_db_fetch_array($attributes_query)) {
              $values_price_brutto = $attributes['options_values_price'] * (1 + ($products_tax_rate_old / 100));
             
              $values_price_netto = $this->priceCheck($values_price_brutto, $products_tax_rate);
              xtc_db_query("UPDATE ".TABLE_PRODUCTS_ATTRIBUTES."
                               SET options_values_price = '"
    .xtc_db_input($values_price_netto)."'
                             WHERE products_attributes_id = '"
    .$attributes['products_attributes_id']."'");
            }
          }
      }

    Ich bekomme hier aber nicht raus, was wie zu ändern wäre. Vielleicht ist dieser Ansatz aber auch komplett falsch?

    Ich habe es auch schon mit der Variante "=" aus dem  MODUL: XTC ATTRIBUTE PRICE & WEIGHT PREFIX  https://www.modified-shop.org/forum/index.php?topic=2106.0 probiert, auch dies führt zu falschen Staffelpreisen.

    Nun soweit die Problematik. Für erleuchtende Hinweise zu dem Thema wäre ich überaus dankbar, da mich das Thema nun schon seit gut zwei Tagen permanent beschäftigt hat und kein Lösungsansatz aus dem Forum für mich funktioniert hat.

    Bei Fragen zum Thema stehe ich gerne parat.

    In diesem Sinne, beste Grüße!

    Linkback: https://www.modified-shop.org/forum/index.php?topic=43429.0

    Timm

    • Fördermitglied
    • Beiträge: 6.258
    Re: Staffelpreise und Attribute
    Antwort #1 am: 15. Mai 2024, 00:37:18
    Moin

    Ein Rabatt für Sonderangebote wird nur für den eigentlichen Artikelpreis berechnet. Nicht für die Attributsaufschläge. Scheinbar ist das nach deinem Bsp. auch so für Staffelpreise.

    Für die korrekten rabattierten Attributsaufschläge gibt es Module von Timo Paul und Web-Looks. Ob die bei Staffelpreisen auch funktionieren kann ich nicht sagen.

    Eigentlich sollte das im Shop Standard sein. Ist es aber nicht. Schau mal ob es dazu ein Ticket gibt, ansonsten erstelle eins.

    Gruß Timm

    DerNachbar

    • Viel Schreiber
    • Beiträge: 538
    Re: Staffelpreise und Attribute
    Antwort #2 am: 15. Mai 2024, 05:07:33
    Zitat
    Artikel A hat vier Attribute:

        Version 1  - plus 0 €  = 9,95 €
        Version 2 - plus 10 € = 19,95 €
        Version 3  - plus 20 € = 29,95 €
        Version 14 - plus 30 € = 39,95 €

    ... Unter Staffelpreise habe ich nun die Stückzahl 5 eingetragen, und den reduzierten Staffelpreis um 25% von 7,46 €.

    Problem:

        Version 1 - 7,46 € - RICHTIG
        Version 2 - 17,46 € - FALSCH
        Version 3 - 27,46 €  - FALSCH
        Version 4 - 37,46 € - FALSCH

    Soweit läuft alles richtig am Beispiel von V2:
    Der Staffelpreis wird genommen - in dem Fall 7,46 (denn Ausgangspunkt bleiben ja die 9,95 - Staffelpreis für alle Attribute) und der Aufschlag wird dann hinzuberechnet, also +10 Euro = 17,46

    Version 3 und 4 paralell gesehen sind damit dann auch richtig berechnet.

    Die Berechnung ist korrekt.

    Zitat
    Das Problem liegt meiner Meinung nach daran, dass ich den Staffelpreis nur als festen Wert eintragen kann. Wenn es möglich wäre wie bei den Sonderangeboten einen prozentualen Wert einzutragen, wäre mir glaube ich geholfen. Also anstatt "7.46" als Staffelpreis "einfach" nur "25%" eintragen, wie eben bei den Sonderangeboten auch möglich.

    Das würde dann einfach nur den selben Staffelpreis berechnen, wie wenn du den per Hand einträgst. Danach würden weiterhin die Aufschläge der jeweiligen Attribute hinzugerechnet werden. Also gehopst wie gesprungen.

    Bei Sonderangeboten mit Staffelpreis und Aufschlägen bei den Attributen passiert im übrigen das gleiche. Der Basispreis wird reduziert wenn du -25% eingibst, die Aufschläge in den Attributen bleiben davon aber unberührt.

    Damit dein Wunsch in Erfüllung geht würde ich Timms Rat folgen und eines der Module kaufen, die genau das Unterstützen.

    LG DerNachbar

    slope

    • Frisch an Board
    • Beiträge: 50
    Re: Staffelpreise und Attribute
    Antwort #3 am: 15. Mai 2024, 20:39:13
    Ein herzliches Dankeschön an @Timm und  @DerNachbar für Eure Antworten, das weiß ich wirklich sehr zu schätzen.

    Zitat
    Die Berechnung ist korrekt.

    Ja, wenn der Basispreis als Grundlage dient und die Aufschläge werden entsprechend addiert gebe ich Dir Recht, da läuft die Berechnung korrekt. Nur hätte ich es gerne anders.

    Vielen Dank Euch auch für den Hinweis auf die Anbieter entsprechender Module! Dann werde ich dort mal weiter recherchieren.

    Besten Gruß,

    Marc
    12 Antworten
    6700 Aufrufe
    09. April 2021, 14:32:14 von Baschtl
    0 Antworten
    2104 Aufrufe
    18. Juli 2011, 14:46:06 von Timo
    1 Antworten
    1717 Aufrufe
    04. Januar 2017, 16:09:34 von hzs123456
    3 Antworten
    2381 Aufrufe
    11. April 2010, 11:11:36 von web28