Karl Huber Posted February 23, 2013 Share Posted February 23, 2013 Hallo, habe eine Frage zu den Grundpreisen bei versch. Kombinationen. erkläre es am besten anhand eines kleinen Beispiels: Beispielprodukt: EK netto 3,20, VK brutto 5,33 (0,25 Liter Gebinde) entspricht einem Preis pro Liter von 21,32/Liter brutto Soweit so gut, das klappt auch wenn ich das so anlege und wird richtig angezeigt. Wenn ich jetzt eine Kombination anlege mit einem 0,5 Liter Gebinde gebe ich bei Kombinationen folgendes ein: Kaufpreis: 4,03. Erhöhung 1,16 netto, 1,38 brutto Auswirkung auf die Stückpreise: Ermäßigung um 1,38 brutto sozusagen müsste es dann bei dieser Kombi beim Stückpreis 19,94 brutto im Shop lauten. Mein Problem: es wird aber 26,84 Euro brutto/Liter angezeigt bekomm das einfach nicht hin, was mach ich denn da für einen Fehler? habs schon mehrmals bei versch. Produkten versucht, immer mit den gleichen falsch angezeigten Literpreisen vielleicht erkennt einer meine(n) Fehler? liebe Grüße Karl Link to comment Share on other sites More sharing options...
Karl Huber Posted February 26, 2013 Author Share Posted February 26, 2013 Hallo nochmal, habs jetzt nach x-maligen Versuchen immer noch nicht hinbekommen daß Stückpreise/Grundpreise in allen Varianten richtig angezeigt werden. Wenn nur eine Standardvariante angelegt ist stimmt der Grundpreis, nur wenn ich eine 2. oder mehr Varianten/Kombinationen anlege stimmt bei den Varianten nie der angezeigte Grundpreis. Beispiel: wenn ich bei einer 2. Kombination bei Änderung des Grundpreises Ermäßigung anwähle mit einem bestimmten Betrag und speichere, so ist wenn ich diese Artikelseite wieder aufrufe statt Ermäßigung auf einmal Erhöhung angezeigt, obwohl ich gespeichert habe...... ist das ein Bug? oder woran liegt es. Obwohl ich immer Ermäßigung auswähle wird der Stückpreis immer höher angezeigt als der Stückpreis in der 1. Variante klingt jetzt kompliziert, hoffe es versteht einer was ich sagen will ;-) Wer kann mir denn da weiterhelfen ich bekomm das einfach nicht gebacken mit den Stückpreisen. Gruß Karl Link to comment Share on other sites More sharing options...
Karl Huber Posted February 28, 2013 Author Share Posted February 28, 2013 Hi, ich nochmal.... sagt mal, hat denn niemand von euch Probleme beim anlegen von unterschiedlichen Grundpreisen/Stückpreisen in Kombinationen? habs jetzt in einer 2. Prestashop Version auf einem anderen Server versucht und wieder die selben Probleme. Kann mir bitte mal einer sagen ob das überhaupt funktioniert oder evtl. in der 1.5.3.1 ein Fehler ist? das hiesse dann ich müsste für 3 unterschiedliche Gebindegrößen 3 seperate Produkte anlegen wegen dieser Stückpreise (Euro/Liter z.B.) das würde meiner Meinung nach den Prestashop schon extrem einschränken wenn sowas damit nicht möglich ist liebe Grüße Link to comment Share on other sites More sharing options...
guest* Posted March 1, 2013 Share Posted March 1, 2013 Probier doch einfach den Artikel mit dem kleinsten Gebinde als Standard anzulegen, also nicht dann für 500 eine Ermäßigung von X sondern kleinste Größe ist 50ml und 500 ml hat einen Aufpreis. Den Weg den du gehst, habe ich nicht, deshalb kann ich selbst das auch nicht nachvollziehen. Müsste da Tests erstellen, habe aber im Moment keine Zeit dazu das näher zu analysieren. Link to comment Share on other sites More sharing options...
Karl Huber Posted March 3, 2013 Author Share Posted March 3, 2013 Hallo cd2500, ja das hab ich jetzt auch versucht, aber hat auch nicht geklappt. So wie es aussieht ist es in der 1.5.3.1 Version bei mir nicht möglich versch. Kombinationen mit unterschiedlichen Grundpreisen anzulegen. Gibts hier User im Forum bei denen das klappt? und wenn ja, wie? Ich hoffe daß ich das noch irgendwie hinbekomme, ansonsten wird Presta für mich wohl nicht einsetzbar sein, leider, und das weil ich diese Software eigentlich lieben gelernt hab in den letzten Wochen...... ich kann kaum glauben daß so eine wichtige Funktion einfach nicht klappt. Bitte liebe User, gibts hier irgendjemanden der das Problem nicht hat? Link to comment Share on other sites More sharing options...
guest* Posted March 3, 2013 Share Posted March 3, 2013 Ich kann dein Problem leider nicht nachvollziehen. Habe soeben meinen Shop auf PS 1.5.3.1. upgegradet. Die Grundpreise funktionieren ohne Probleme. Hast du auch beim Standardartikel einen Grundpreis eingegeben, also für die Standardvariante ? Du verwendest ein eigenes Theme ? Link to comment Share on other sites More sharing options...
Karl Huber Posted March 3, 2013 Author Share Posted March 3, 2013 ich verwende das original default theme, und beim standard artikel hab ich auch den Grundpreis angelegt. ich werd jetzt mal nen ganz neuen testshop installieren und da rumprobieren, vielleicht gehts ja da. Kann es sein das meine von Prestashop.com downgeloadeten Installationsdateien ne Macke haben könnten? werde jetzt nochmal downloaden und neu installieren. Link to comment Share on other sites More sharing options...
guest* Posted March 4, 2013 Share Posted March 4, 2013 Der Download von Prestashop.com ist der einzige offizielle Download. Hast du irgendwelche extra Module installiert die nicht mit dem Download mitkommen ? Link to comment Share on other sites More sharing options...
Nookyx Posted March 4, 2013 Share Posted March 4, 2013 Hallo, ich benutze auf meiner Seite PrestaShop in der Version 1.5.3.1. Mir erschließt sich noch nicht so ganz die Berechnung des Grundpreises auf der Produktseite. Das Problem ist: Ich habe Produkte mit Kombinationen erstellt, d.h. es gibt das Produkt z.B. mit der Variante: 50ml und 100ml Das Produkt hat einen Preis (50€), der für die 50ml Variante gilt. Das heißt der Grundpreis liegt bei 100€ / 100ml Brutto (-> im Backoffice einen "Stückpreis" von 84.03 € eingegeben, damit nach Berechnung der MwSt. die 100€ Grundpreis angezeigt werden). Nun die Einstellungen für die Kombinationen: Variante 50ml: Auswirkungen auf Preis: keine Auswirkungen auf Stückpreis: keine Variante 100ml: Auswirkungen auf Preis: Erhöhung 50€ inkl. MwSt Auswirkungen auf Stückpreis: Ermäßigung von 99,99€ / 100 ml Das muss ich so machen, weil sonst folgendes Phänomen auftritt: Wenn ich auf die Produktseite gehe, ohne die Ermäßigung auf den Stückpreis eingegeben zu haben, wird ein Stückpreis/"Grundpreis" von 199,99€ / 100ml angezeigt, wenn ich von 50ml auf die 100ml Variante wechsle. Bei der 50ml Variante wird korrekt der eingestellte Wert von 100€/100ml angezeigt. Das Problem scheint zu sein, dass er den neuen Grundpreis auf Grundlage des neuen Preises berechnet, dabei aber den Faktor verwendet, den er vorher in der Datenbank gespeichert hat (dieser Faktor passt aber nur bei den 50€ für 50ml). Eigentlich will ich, dass er hier garnicht rechnet, sondern mir den Wert anzeigt, den ich im Backoffice unter Produkte -> Rabatte -> Einzelpreis eingestellt habe (als Brutto-Preis) anzeigt. Denn so muss ich immer herumrechnen, wie sich der Stückpreis ändern soll, damit der gleiche wert "pro 100ml" angezeigt wird, unabhängig von der ausgewählten Menge. Weiß jemand eine Lösung hierfür? Link to comment Share on other sites More sharing options...
guest* Posted March 4, 2013 Share Posted March 4, 2013 Bitte Forumskategorien beachten. Ich führe die Postings einmal zusammen, weil diese Frage bereits gestellt wurde und in Berarbeitung ist. http://www.prestashop.com/forums/index.php?/topic/227679-frage-zu-grundpreise-und-kombinationen/ Link to comment Share on other sites More sharing options...
Karl Huber Posted March 4, 2013 Author Share Posted March 4, 2013 (edited) Hallo, habe jetzt Presta komplett neu installiert und noch keine externen Module dazugefügt. Jetzt klappts mit den Grundpreisen. Jetzt stellt sich die Frage obs wohl eins von meinen Modulen war? und wenn ja, welches? soll ich mal ne Liste einstellen was ich bei der vorherigen Installation so alles an Modulen drin hatte, wenn das euch was bringt? Edited March 4, 2013 by Karl Huber (see edit history) Link to comment Share on other sites More sharing options...
Nookyx Posted March 4, 2013 Share Posted March 4, 2013 (edited) Sorry, cd2500, hatte den anderen Post nicht gesehen und auch nicht gefunden. Das ist ja interessant... allerdings habe ich keine Module installiert, die irgendwie mit Produkten oder Preisen selbst zu tun haben. Erscheint mir weiterhin schleierhaft. Da aber per Gesetz Grundpreisangaben bei bestimmten Artikeln erforderlich sind, ist das für mich ein sehr wichtiges Thema. Die Modul-Liste würde mich schon interessieren, vielleicht finden sich Überschneidungen. Edited March 4, 2013 by Nookyx (see edit history) Link to comment Share on other sites More sharing options...
Karl Huber Posted March 4, 2013 Author Share Posted March 4, 2013 Hallo, Euphorie zurück..... :-( der Shop rechnet immer noch nicht richtig. Somit liegts auch nicht an externen Modulen. Irgendwas stimmt da nicht im Shop. Es ist eine komplette Neuinstallation ohne auch nur irgendetwas geändert zu haben. Neu installiert, Produkt angelegt und Kombinationen ausprobiert. Habe ein Produkt mir Standart 5 Liter angelegt und dann eine Kombination mit 10 Liter. wenn ich beim Stückpreis Ermäßigung eingebe und um sagen wir mal 2,- den Stückpreise reduziere, dann speichere, und dann nochmal aufrufe, dann steht dort auf einmal nicht mehr Ermäßigung sondern Erhöhung um 2.- Euro drin. Somit wird immer nur erhöht, nie ermäßigt...... Aber auch anders herum wenn ich von hoch auf tief reduziere wie CD2500 vorgeschlagen hat, so stimmen die Grundpreise auch nicht. Ich würd am liebsten hier meine Logindaten fürs Backend preisgeben (oder auch per mail) damit einer von euch Spezialisten da mal draufschauen kann was da los ist. ich weis grad echt nicht mehr weiter..... Link to comment Share on other sites More sharing options...
Nookyx Posted March 4, 2013 Share Posted March 4, 2013 Der von dir beschriebene Punkt, dass "Erhöhung" ausgewählt wird, obwohl du "Ermäßigung" eingestellt hattest, ist bei mir auch. Allerdings ist es nur so, dass er jedes mal "Erhöhung" auswählt. Wenn ich dann von Hand "Ermäßigung" einstelle, wird der Betrag auch tatsächlich abgezogen anstatt addiert. Zumindest dieser Punkt betrifft also quasi nur "er kann sich die Einstellung im Menü nicht merken" (machts aber dennoch richtig, wenn man umstellt und dann speichert) Link to comment Share on other sites More sharing options...
Karl Huber Posted March 5, 2013 Author Share Posted March 5, 2013 Bei mir merkt er sich nie ob ich Ermäßigung oder Erniedrigung eingebe, abgezogen wird vom Stückpreis nie etwas, immer nur erhöht, und auch immer ein Betrag den ich rechnerisch absolut nicht nachvollziehen kann. Kann sowas am server liegen, wenn irgendwelche Vorraussetzungen oder so nicht ganz stimmen? Ansonsten geht der Shop eigentlich ganz normal, obwohl er mir im Backend schon sehr langsam vorkommt, im Frontend jedoch ganz normale Geschwindigkeit hat. Also die Funktion mit den Stückpreisen ist in meinem Gewerbe absolut notwendig, auf das darf ich nicht verzichten. Alternativ könnt ich jetzt für jede Gebindegröße einen eigenen Artikel anlegen, aber das kann doch auch nicht Ziel des Erfinders sein oder? ich weis bald nicht mehr weiter.... Link to comment Share on other sites More sharing options...
Karl Huber Posted March 5, 2013 Author Share Posted March 5, 2013 es wär halt auch mal interessant obs User gibt die diese Funktion in der 1.5.3.1 Version definitiv fehlerfrei am laufen haben..... kanns mir ehrlich gesagt nicht vorstellen, habs jetzt auf 2 versch. Servern in absoluter Grundausstattung (ohne div. ext. Plugins) versucht und überall das selbe Ergebnis Link to comment Share on other sites More sharing options...
guest* Posted March 5, 2013 Share Posted March 5, 2013 Ich bin dran. Ich habe den Verdacht, dass es sich um eine Fehlübersetzung handelt. Ich verwende mein Back-Office komplett in Englisch und habe das Problem nicht. Allerdings ist es auch keine Neu-Installation, sondern ein upgegradeter Shop. Im Moment wenig Zeit zu basteln... Auch kommt demnächst hoffentlich PS 1.5.4. heraus. Ein wenig Geduld noch. Es sind viele Baustellen und mein Tag hat nur 24 Std. Meine Shops muss ich auch noch so nebenbei betreuen... 2 Link to comment Share on other sites More sharing options...
Karl Huber Posted March 5, 2013 Author Share Posted March 5, 2013 okay danke cd2500, das beruhigt mich schon mal vorerst :-) dann leg ich jetzt erstmal meine Artikel an wo ich keine Stückpreise und mehrere Kombinationen brauche und warte ab Link to comment Share on other sites More sharing options...
guest* Posted March 5, 2013 Share Posted March 5, 2013 Bitte, Danke. Link to comment Share on other sites More sharing options...
Nookyx Posted March 5, 2013 Share Posted March 5, 2013 (edited) Vielen Dank, dass du dich dem Thema annimmst. Ich stelle hier noch kurz eine Erklärung (ist ein anderes Beispiel als oben in meinem ersten Post beschrieben, aber selbes Prinzip) und ein paar Bildausschnitte zur Verfügung, damit du mein Beispiel einfacher nachvollziehen kannst: Produkt: Ralph Lauren Blue Varianten: 50ml, 100ml Produkteinstellungen: http://i.imgur.com/Zd9IZKH.png Einstellungen Variante 50ml: http://i.imgur.com/t8c6pnu.png (Standardvariante für Produkt): Einstellungen Variante 100ml: http://i.imgur.com/1s9yLBX.png (hier ist zu beachten, dass das rot markierte Dropdown jedes mal auf "Erhöhung" steht, wenn man in dieses Menü geht. Ich muss manuell auf "Ermäßigung" umstellen.) Diese Einstellung bei der Variante 100ml muss ich vornehmen, damit am Ende das Produkt immer mit einem Grundpreis von 80€/100ml angezeigt wird. Die Preise für die Varianten sind so korrekt (50ml -> 40€, 100ml -> 80€, d.h. Erhöhung des VK-Preises um 40€ brutto). Trage ich die Ermäßigung bei der Variante 100ml nicht ein, würde sich der Grundpreis auf 160,01€/100ml erhöhen, wenn ich diese Variante beim Produkt wähle. Ich hoffe, das macht es für dich evtl einfacher nachzuvollziehen. Edited March 5, 2013 by Nookyx (see edit history) Link to comment Share on other sites More sharing options...
Karl Huber Posted March 5, 2013 Author Share Posted March 5, 2013 das mit der erhöhung ist bei mir auch, das muss man jedes mal wenn man in dieses menü geht manuell wieder auf ermäßigung stellen. selbes problem wie bei dir Link to comment Share on other sites More sharing options...
guest* Posted March 6, 2013 Share Posted March 6, 2013 Diese Meldung hier ist sehr tricky. Ich verstehe nicht, warum ich das nicht nachvollziehen kann... Habe auch schon im bug-tracker nachgeforscht, weil wir ja nicht die einzigen sind die Grundpreise verwenden. Kein einzige Meldung dort... Verwendet ihr irgendwelche Fremdmodule, also welche die nicht mit dem Downloadpaket der Software mitkommen ? Ich kriege echt die Krise, weil ich es nirgendwo nachvollziehen kann. Mache jetzt mal Pause, weil mir schon der Kopf raucht... Link to comment Share on other sites More sharing options...
guest* Posted March 6, 2013 Share Posted March 6, 2013 Übersetzungsfehler ist es keiner, aber mir fällt ein Unterschied auf: Die Deutsche Version hat das Feld mit 0.000000 vordefiniert (in meinen upgegradeten Shop) und im neu installierten PS 1.5.3.1 nicht. Da ist das Feld mit (Null) eingetragen. Es könnte natürlich ein Lokalisierungspaketfehler sein. Dazu muss ich aber leider nähere Tests machen... Link to comment Share on other sites More sharing options...
Nookyx Posted March 6, 2013 Share Posted March 6, 2013 (edited) Was steht denn bei dir in der Product.tpl an der stelle für den Grundpreis? Bei mir ist das der Teil hier: {if !empty($product->unity) && $product->unit_price_ratio > 0.000000} {math equation="pprice / punit_price" pprice=$productPrice punit_price=$product->unit_price_ratio assign=unit_price} /edit: Fremdmodule sehr wenige. Paypal, nen Image Slider, der aber nur auf der Index Seite ist, sonst fällt mir spontan nichts ein. Aber Karl hatte das Problem ja auch mit 2 "clean" Installationen "out of the box" ohne Zusatzmodule, also kanns das nicht ursächlich sein. Der Codeschnipsel da oben teilt halt immer den aktuellen Preis durch den Wert von "unit_price_ratio" in Tabelle ps_product. Die Ratio wird aber nur einmal festgelegt, und zwar beim ursprünglichen Produktpreis (bei mir die 50ml Variante). Die Ratio passt dann nicht für den Preis der 100ml Variante. Edited March 6, 2013 by Nookyx (see edit history) Link to comment Share on other sites More sharing options...
guest* Posted March 6, 2013 Share Posted March 6, 2013 Die Stelle die du nennst ist nur Vorbereitung für die Rechnung und Anzahl hinter Komma. TPL-Dateien sind nur für die Anzeige im Front-Office, die Funktion ist in einer php hinterlegt. Ich glaube da ist ein Bug enthalten. Komischerweise funktioniert das Teil aber bei einem upgegradeten Shop problemlos. Ich verstehe es auch nicht. Ich werde es wohl morgen als Bug melden. Link to comment Share on other sites More sharing options...
Nookyx Posted March 6, 2013 Share Posted March 6, 2013 (edited) Hm ja, das ist wohl richtig. Es gab pre 1.5 mal ein Modul für den Grundpreis, das quasi genau die Funktionalität bietet, die hier erwünscht ist: http://addons.presta...ariationen.html ist ja eigentlich auch ganz simpel.. Wenn ich als basis z.b. "pro 100ml" haben will: 100 / Zahlwert der Variante * Preis der Variante z.b. bei 50 ml Variante die 40€ kostet: 100 / 50 * 80 = 80 € / 100ml Funktioniert bei gleichbeibendem Verhältnis: (200ml, gleiches Verhältnis bei Preisanstieg): 100 / 200 * 160 = 80 € / 100 ml und auch bei sich änderen Verhältnissen, also unproportional steigenden Preisen (z.B. wegen Rabatt bei großerem Volumen) -> 200ml, unproportionaler (geringerer) Preisanstieg: 100 / 200 * 150 = 75€ / 100 ml Wenn man das jetzt noch irgendwie eingebaut bekommt, sollte das ja klappen. So wie ich das sehe kann das mit der derzeitigen Berechnung nicht klappen, weil diese die convertPrice Funktion aufruft und dort mit der "unit_price_ratio" rechnet, die aber nur 1x pro Produkt berechnet wird, nicht pro Variante.. Aber mit Support bis max. 1.4.9 ist das halt Käse... Und eigentlich sollte das ja in 1.5 schon integriert sein Edited March 6, 2013 by Nookyx (see edit history) Link to comment Share on other sites More sharing options...
guest* Posted March 7, 2013 Share Posted March 7, 2013 Ja das ist eine Entwicklung von BluTiGes und mir. Ich bin auch nicht glücklich über die Standardlösung, aus diesem Grund entstand das von dir genannte Modul. Leider stimmt bei der Standardlösung jetzt garnichts mehr, aber komischerweise nur im Deutschen bereich, was auf ein Lokalisuerungspaketproblem hinweist. Es kann sein, dass die etwas angepasst haben, weil ich da immer wieder Druck gemacht habe und jetzt geht rein garnichts. Ich kann es dir nicht sagen, denn To-Do's fliessen immer irgendwann ein, nach Priorität... Muss mir die Zeit nehmen das näher anzusehen. Mit Ps 1.5.2. hat noch alles funktioniert, auch in einer fresh Installation. Schicke BluTiGes doch eine PM und frage ihn, ob er das für PS 1.5. anpassen könnte. Ich habe nur die Idee und know-how geliefert. Umsetzung und Verkauf liegt bei ihm. 1 Link to comment Share on other sites More sharing options...
Karl Huber Posted March 7, 2013 Author Share Posted March 7, 2013 das wärs, das Modul wär super, und vor allem viel einfacher im Handling Link to comment Share on other sites More sharing options...
guest* Posted March 8, 2013 Share Posted March 8, 2013 Fragst du bitte BluTiGes ? Nur die Idee stammt von mir und habe es mitentwickelt. Umsetzung, Verkauf und Support durch BluTiGes bitte. PS wird das Modul nicht integrieren, da sie es nicht einmal kennen. Dennoch kennen sie das Problem und ob genau so eine Lösung irgendwann mal kommt, kann ich nicht sagen. Link to comment Share on other sites More sharing options...
Nookyx Posted March 9, 2013 Share Posted March 9, 2013 (edited) Ich umgehe das Problem nun, indem ich die Berechnung in der Product.js auskommentiert habe, und mir durch eine eigene JavaScript-Ergänzung den Grundpreis berechne. Scheint soweit zu funktionieren, werde dann noch einen Post dazu machen, damit sich das jeder einbauen kann, der möchte. Mit der Ergänzung funktionieren auch degressive Preise bei größeren Mengeneinheiten. Edited March 9, 2013 by Nookyx (see edit history) Link to comment Share on other sites More sharing options...
guest* Posted March 9, 2013 Share Posted March 9, 2013 Super danke. Bitte dann hier deinen Fix anhängen, damit er im Zusammenhang bleibt. Link to comment Share on other sites More sharing options...
Nookyx Posted March 10, 2013 Share Posted March 10, 2013 Also, hier nun mein "Fix" für den Grundpreis: Diese Anpassung von mir überschreibt PrestaShop Core-Dateien und ist daher mit Vorsicht zu genießen. Ich übernehme keine Haftung dafür, wenn etwas anderes dann nicht mehr funktioniert, aber soweit scheint es bei mir bisher unproblematisch zu sein. Beachtet bitte, dass ich teilweise eigene Elemente hinzugefügt habe (div, span, p, "**" hinter manchen Preisen usw) mit entsprechenden ID's oder Klassen, die ihr evtl nicht braucht, weil die nur für mein Design nötig waren. Es ist eine Individuallösung, die zum Teil auf meine Seite optimiert ist, nicht für den Allgemeinen Gebraucht. Aber es hilft euch sicherlich dabei, das nachzuvollziehen und selbst nachzubauen. Falls sich jemand näher damit auskennt, wie man diese Änderungen in die Override-Klassen schreiben kann, kann er das hier gerne ergänzen, ich bekomme das nicht hin. Im Folgenden werde ich die Änderungen beschreiben, die nötig sind, damit Grundpreise dem deutschen Recht entsprechend in allen wichtigen Anzeigen dargestellt werden. Das beinhaltet in meinem Fall auch, dass nicht nur beim Grundpreis eine Einheit mit angegeben wird, sondern auch jeweils die eingestellte Einheit (z.B. Volumen in ml) für das "Standardprodukt". So sieht das beispielsweise bei mir aus: Was ich alles gemacht habe... Zunächst die themes/default/js/product.js editiert. Ich habe hier die Berechnung der Stückpreise deaktiviert, weil ich das im später für jede Seite selbst mache. sucht folgenden Code (ca. Zeile 416) und kommentiert ihn aus, so wie ich: /*if (productUnitPriceRatio > 0 ) { newUnitPrice = (productPrice / parseFloat(productUnitPriceRatio)) + selectedCombination['unit_price']; $('#unit_price_display').text(formatCurrency(newUnitPrice, currencyFormat, currencySign, currencyBlank)); }*/ Für die Produktseite selbst war es noch relativ einfach, da hier die Attribute (in meinem Fall wie gehabt das Volumen in ml) aus dem Dropdown gelesen werden können und hier deshalb nicht an den PHP-Controllern geschraubt werden muss. Für die Produktseite öffnet man nun also: themes/default/product.tpl sucht dort nach: (ca. Zeile 425) {if !empty($product->unity) && $product->unit_price_ratio > 0.000000} {math equation="pprice / punit_price" pprice=$productPrice punit_price=$product->unit_price_ratio assign=unit_price} <p class="unit-price"><span id="unit_price_display">{convertPrice price=$unit_price}</span> {l s='per'} {$product->unity|escape:'htmlall':'UTF-8'}</p> {/if} und ändert es in: {if !empty($product->unity) && $product->unit_price_ratio > 0.000000} <p class="unitprice"><span class="unitprice" id="unit_price_display"></span><span class="unitprice">{l s='per'} {$product->unity|escape:'htmlall':'UTF-8'}</span></p> {/if} damit steht nun erstmal außer z.B. "pro 100ml" nichts da, aber darum kümmert sich nun folgendes JavaScript, welches im Template ergänzt wird. Fügt es einfach irgendwo im Template, zum Beispiel gleich zu Beginn vor dem ersten <script type="text/javascript>-Block: <script type="text/javascript"> $(document).ready(function() { $("select").change(function () { var str = ""; $("select option:selected").each(function () { str += $(this).text() + " "; }); $("#unit_price_display").text(formatCurrency(100 / parseInt(str) * parseFloat($("#our_price_display").text()), currencyFormat, currencySign, currencyBlank)) }) .trigger('change'); }); </script> Das obige Skript nimmt sich den Wert aus dem Dropdown (per Definition schneidet parseInt() Buchstaben automatisch raus bzw. ignoriert sie, daher funktioniert das auch wenn dort 50ml steht, dass das Skript dies als 50 interpretiert), und berechnet nun auf Grundlage des aktuellen Preises der ausgewählten Variante den Grundpreis auf einer Basis von 100 (ml). Beispiel: Basis 100ml, Variante 50ml, Variante kostet 50€: 100 ml / 50ml * 50€ = 100€ (und zeigt dann entsprechend 100€ / 100ml an) Damit das ganze auch für die Module wie "homefeatured" funktioniert, sind weitergehende Anpassungen nötig: Für homefeatured: in themes/default/modules/homefeatured/homefeatured.tpl suchen: {if $product.show_price AND !isset($restricted_country_mode) AND !$PS_CATALOG_MODE}<p class="price_container"><span class="price">{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span></p>{else}<div style="height:21px;"></div>{/if} ersetzen durch: {if $product.show_price AND !isset($restricted_country_mode) AND !$PS_CATALOG_MODE}<p class="price_container"> <span id="priceSpan" class="price">{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span> <!-- START default volume --> {if isset($product.volumes)} {foreach from=$product.volumes item=v} <span class="volume">/ </span><span id="volumeSpan" class="volume">{$v}</span> {/foreach} {/if} <!-- END default volume --> {if isset($product.unity) && $product.unit_price_ratio gt 0.00}<br /><span class="unitprice" id="unit_price_display"></span> <span class="unitprice">{l s='per' mod='homefeatured'} {$product.unity|escape:'htmlall':'UTF-8'}</span>{/if} </p> {else}<div style="height:21px;"></div>{/if} und fügt am Anfang des Templates folgendes JavaScript ein: <script type="text/javascript"> $(document).ready(function(){ $('.ajax_block_product').children().each( function(){ var price = (100 / parseInt($(this).find("#volumeSpan").text()) * parseFloat($(this).find("#priceSpan").text())).toFixed(2); $(this).find("#unit_price_display").text(price + " €"); }) }) </script> Öffnet dann die modules/homefeatured/homefeatured.php. sucht nach: $products = $category->getProducts((int)Context::getContext()->language->id, 1, ($nb ? $nb : 10)); und ergänz darunter: //START default volume if (!empty($products)) { $cookie = $this->context->cookie; foreach ($products as $key => $product_item) { $product = new Product($product_item['id_product'], false, $cookie->id_lang); $volumes = array(); $attributes_groups = $product->getAttributesGroups($cookie->id_lang); if (is_array($attributes_groups) && $attributes_groups) { foreach ($attributes_groups as $k => $row) { // filter by default product only if ('Volumen' == $row['group_name']) { if($row['default_on'] == 1) { $volumes[$row['id_attribute']] = $row['attribute_name']; } } } $products[$key]['volumes'] = $volumes ; } } } //END default volume Beachtet hierbei bitte die Zeile: if ('Volumen' == $row['group_name']) { Volumen ist hier die Bezeichnung meines Attributs, welches ich für die Produkte festgelegt habe. Wenn das Attribut bei euch anders heißt, müsst ihr das in dieser Zeile anpassen! Für die weiteren Unterseiten habe ich auch Anpassungen gemacht. Um den Thread aber nicht zu sprengen, verweise ich an dieser Stelle auf meine Quelle, auf deren Basis ich meine Anpassung gemacht habe, und zeige es exemplarisch noch für die product-list.tpl, welche z.B. für die Kategorie-Ansicht verwendet wird. Das Problem ist aber, dass dieses Template auch für andere Ansichten verwendet wird, diese aber alle für sich selbst ihre Daten beziehen, wodurch man jeweils für jeden Controller eine Anpassung machen muss. Thread mit Infos hierzu: http://www.prestashop.com/forums/topic/81210-colors-on-product-listtpl/page__st__60 Beispiel von mir hierzu: themes/default/product-list.tpl öffnen und zu Beginn des Templates einfügen: <script type="text/javascript"> $(document).ready(function(){ $('.ajax_block_product').children().each( function(){ var price = (100 / parseInt($(this).find("#volumeSpan").text()) * parseFloat($(this).find("#priceSpan").text())).toFixed(2); $(this).find("#unit_price_display").text(price + " €"); }) }) </script> suchen: {if isset($product.show_price) && $product.show_price && !isset($restricted_country_mode)}<span class="price" style="display: inline;">{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span><br />{/if} ersetzen durch: {if isset($product.show_price) && $product.show_price && !isset($restricted_country_mode)}<span id="priceSpan" class="price" style="display: inline;">{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span><span id="asterisk">**</span>{/if} <!-- START default volume --> {if isset($product.volumes)} {foreach from=$product.volumes item=v} <span class="volume">/ </span><span id="volumeSpan" class="volume">{$v}</span> {/foreach} {/if} <!-- END default volume --> <br /> {if isset($product.unity) && $product.unit_price_ratio gt 0.00}<br /> <span class="unitprice" id="unit_price_display"></span> <span class="unitprice">{l s='per'} {$product.unity|escape:'htmlall':'UTF-8'}</span><br /> {/if} öffnet dann den zugehörigen Controller (in dem Fall CategoryController): controllers/front/CategoryController.php: sucht nach: $this->assignProductList(); fügt danach ein (nicht ersetzen!!!): // START default volume foreach ($this->cat_products as $key => $product_item) { $product = new Product($product_item['id_product'], false, self::$cookie->id_lang); $volumes = array(); $attributes = $product->getAttributeCombinations(self::$cookie->id_lang); foreach ($attributes as $attribute_key => $attribute) { if ('Volumen' == $attribute['group_name']) { if($attribute['default_on'] == 1) { $volumes[$attribute['id_attribute']] = $attribute['attribute_name']; } } } $this->cat_products[$key]['volumes'] = $volumes; } // END default volume Wie gesagt ist hier zu beachten, dass mehrere Controller die product-list.tpl verwenden, und diese sollten entsprechend alle angepasst werden, funktioniert im Prinzip immer so wie bei diesem, ansonsten verweise ich auf den vorher genannten Thread, dort findet man alle Informationen (dort sind die Beispiele darauf bezogen, die Farbauswahl immer anzuzeigen, ist aber im Prinzip das selbe). Wer hier nicht weiß, was er tut, sollte im Zweifelsfall die Finger davon lassen, da man wie gesagt an Core-Dateien Änderungen vornimmt. Ich brauchte das aber, um die Grundpreisangabe dem deutschen Recht entsprechend umzusetzen. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now