Holger72 Posted July 15, 2014 Share Posted July 15, 2014 Hallo allerseits,ich bastle schon seit 3 Tage an den Grundpreis für Artikel Variationen herum und bekomme es nicht hin.Ich würde gerne unterschiedliche Gewichts-Variationen anbieten z.B.:100g für 2€250g für 4€500g für 7€Hierbei habe ich das Problem das der Grundpreis also pro 100g nicht berechnet wird. Es wird immer der Endpreis dafür ausgegeben z.B. 500g ausgewählt in der Drop-and-down-liste:7€7€ pro 100g oder 100g ausgewählt in der Drop-and-down-liste: 2€2€ pro 100gProdukt--->Varianten wird irgend wie nur der Preis übernommen, aber nicht die Änderungen z.B.: Änderung des Preis/ pro 100g.Hat mir Bitte Jemand einen Tipp oder eine How-to-do Anleitung. Alles was ich Gegooglet habe an Anleitungen war nix.DankeHolger Link to comment Share on other sites More sharing options...
BluTiGeS Posted July 15, 2014 Share Posted July 15, 2014 (edited) Das Gewicht wo man da einstellen kann ist meines Wissens nur für den Versand bestimmt. Wenn du das so machen willst, musst du wohl oder übel ein Modul nehmen, nach meinem Kenntnisstand. Ich habe da auch eins mal programmiert: http://addons.prestashop.com/de/preise-aktionen-prestashop-module/5756-grundpreis-modul-fur-variationen.html Aber vll geht es ja inzwischen auch so und ich weiss es nur nicht ,) EDIT: Bei mir rechnet er auch nicht die Auswirkung pro Stückpreis, iwie wird das total ignoriert..... So rechnet er momentan, alles auf die Grundvariante, also 100g würden auch 7€ kosten bei der 500 g variante, was ja nicht stimmt, da wären es 1.40€ Edited July 15, 2014 by BluTiGeS (see edit history) 1 Link to comment Share on other sites More sharing options...
BluTiGeS Posted July 15, 2014 Share Posted July 15, 2014 Habe das ganze nochmal mit meinem Modul durchgespielt: 1 Link to comment Share on other sites More sharing options...
BluTiGeS Posted July 15, 2014 Share Posted July 15, 2014 Habe bei Presta mal ein Bug aufgemacht mal sehen was die dazu sagen http://forge.prestashop.com/browse/PSCSX-2731 1 Link to comment Share on other sites More sharing options...
modulstyle Posted July 16, 2014 Share Posted July 16, 2014 Ich bin hier auch voll am Rotieren. Das es solche Bugs überhaupt noch schaffen durch zu kommen... Habt ihr hier schon eine Lösung gefunden? Grüße Frank Link to comment Share on other sites More sharing options...
BluTiGeS Posted July 16, 2014 Share Posted July 16, 2014 (edited) Habe mir das ganze mal wing tiefer angeschaut, also die Berechnung ist so wie sie jetzt drin ist ein wenig komisch. Es wird einmal beim anlegen des Products die unit_price_ratio in die DB geschrieben. Sagen wir mal ich habe ein Produkt mit 2€ und 100g dann ermittelt presta dafür ein verhältnis von 1. Jede weitere Variante wird dann damit umgerechnet, daher erhält man auch bei z.B: 8 € für 500 g auch 8€ pro 100g . Was natürlcih schwachsinn ist. In der product.js habe ich schon was gesehen wegen unit_impact (also aufpreis usw) aber habe es noch nicht ganz durchblickt was da abgeht oder eben nicht. EDIT: Komme iwie nicht weiter, aber scheint wohl das es mit Varianten und evtl rabatten nicht klar kommt. Mal sehen was Presta zum Bug eintrag sagt, aber wird nicht in der 1.6.0.9 behoben sein...... Entweder stehen wir alle auf dem Schlauch von der Logik her oder Presta hat richtig gemurkst ,) Edited July 16, 2014 by BluTiGeS (see edit history) 1 Link to comment Share on other sites More sharing options...
modulstyle Posted July 16, 2014 Share Posted July 16, 2014 Oh man, sowas nervt richtig. Vor allem man gibt sich ja erst mal immer selbst die Schuld das es nicht klappt wie es soll... Da muss unbedingt eine Lösung her! Link to comment Share on other sites More sharing options...
BluTiGeS Posted July 16, 2014 Share Posted July 16, 2014 Wie gesagt ich verwende derzeit mein eigenes Modul, daher ist mir das vorher nie aufgefallen. Aber ich hoffe natürlich, dass Presta das nachzieht. Ist ja auch nervig alles immer per extra Modul zu lösen... Link to comment Share on other sites More sharing options...
modulstyle Posted July 16, 2014 Share Posted July 16, 2014 Ist dein eigenes Modul denn für die aktuelle Version gut? Link to comment Share on other sites More sharing options...
BluTiGeS Posted July 16, 2014 Share Posted July 16, 2014 Du kannst damit schon die Kombinationen abhandeln (siehe Vdeo 1-2 posts oben dran). Aber ist halt ein Modul wo du dann nochmal extra die Gewichte eintragen musst, aber die berechnung stimmt ^^ Link to comment Share on other sites More sharing options...
modulstyle Posted July 16, 2014 Share Posted July 16, 2014 Kann man das irgendwie bekommen? Ich muss unbedingt die Varianten richtig eingeben können. Link to comment Share on other sites More sharing options...
modulstyle Posted July 16, 2014 Share Posted July 16, 2014 WOAH, ich brauch das Link to comment Share on other sites More sharing options...
BluTiGeS Posted July 16, 2014 Share Posted July 16, 2014 Ich schick dir mal ne PN Link to comment Share on other sites More sharing options...
Holger72 Posted July 18, 2014 Author Share Posted July 18, 2014 Genau dort in der .js unit_price = combination.unit_impact;Habe auch ein Patch bekommen das automatisch auf drei Stellen hinter den Komma rechnet. Bin noch am testen THX Richi² Link to comment Share on other sites More sharing options...
BluTiGeS Posted July 18, 2014 Share Posted July 18, 2014 Lass uns doch teilhaben an dem patch Link to comment Share on other sites More sharing options...
Holger72 Posted July 18, 2014 Author Share Posted July 18, 2014 By Richi² // Unit price are the price per piece, per Kg, per m² // It doesn't modify the price, it's only for display if (productUnitPriceRatio > 0) { String.prototype.insert = new Function('intPos','strIns','return this.substring(0,intPos) + strIns + this.substring(intPos,this.length);'); priceWithDiscountsDisplayB = priceWithDiscountsDisplay * 100000; unit_priceB = Math.abs(priceWithDiscountsDisplayB / ( combination.weight * 10 ) ) ; //combination.weight; //combination.unit_impact; //priceWithDiscountsDisplay / productUnitPriceRatio; // produktpreis geteilt durch 1euro unit_price = unit_priceB / 100000; unit_price = Math.round(unit_price / 0.001) * 0.001 ; $('#unit_price_display').text(unit_price * currencyRate + ' € ', currencyFormat, currencySign, currencyBlank ); $('.unit-price').show(); } Link to comment Share on other sites More sharing options...
Holger72 Posted July 18, 2014 Author Share Posted July 18, 2014 Im BE bei Variaten nur den neuen Preis und das Endgewicht, nicht die Erhöhung, angeben. Das Feld x,xx pro 100g bleibt leer. Link to comment Share on other sites More sharing options...
modulstyle Posted July 18, 2014 Share Posted July 18, 2014 Im BE bei Variaten nur den neuen Preis und das Endgewicht, nicht die Erhöhung, angeben. Das Feld x,xx pro 100g bleibt leer. Meinst du jetzt incl. deinem Bugfix oder ohne? Link to comment Share on other sites More sharing options...
Holger72 Posted July 18, 2014 Author Share Posted July 18, 2014 INCLUSIVE dem Patch Link to comment Share on other sites More sharing options...
BluTiGeS Posted July 18, 2014 Share Posted July 18, 2014 (edited) Okay, habe mir das ganze mal angeschaut, der ansatz ist gut. Also wenn man die Bezeichnung von Presta ignoriert und einfach das aktuelle gewicht dort angibt. (ist ja auch einfacher zum eingeben ) Ich habe jedoch gleich mal noch ein bisschen den code gefixt. Den String.prototype braucht man nicht meiner ansich nach. Ich habe auch den fehler behoben (division durch 0) wenn die grudnvariante 100g hat und die kleines kombination kein mehrgewicht hat. Ja man hätte es auch eingeben können aber Fehler können schon passieren Was ich auch nicht verstanden habe wieso die währung fix auf € reduziert wurde. Das ganze geht aber auch nur mit kg, wenn jetzt jemand das ganze für stück verwenden will geht das schon so nicht mehr. Hier mal mein angepasster code für die product.js: if (productUnitPriceRatio > 0) { var $fWeight = (combination.weight == 0) ? 0.1 : combination.weight; //handle also no increase of weight priceWithDiscountsDisplayB = priceWithDiscountsDisplay * 100000; unit_priceB = Math.abs(priceWithDiscountsDisplayB / ( $fWeight * 10 ) ) ; //get kg unit_price = unit_priceB / 100000; unit_price = Math.round(unit_price / 0.001) * 0.001 ; $('#unit_price_display').text(formatCurrency(unit_price * currencyRate, currencyFormat, currencySign, currencyBlank)); $('.unit-price').show(); } EDIT: Habe das ganze mal noch auf Stückpreis ebene gemacht, hierzu muss man einfach den Grundartikel zb anlegen 100g, 1stk wie auch immer und dann bei den varianten die auswirkung auf den stückpreis pro einheit. In meinem Beispiel z.B.: 1.87 (brutto eintragen) 2€ netto => 100g Dann die Varianten: 100g bleiben 2€ 250 g werden 4€ 500g werden 7€ 100g => keine Auswirkung Stückpreis 250g => erniedrigung von 0.40 pro 100g. 500g => erniedrigung von 0.60 pro 100g. Dann ist man nicht ahängig von der bezugseinheit if (productUnitPriceRatio > 0) { unit_price = productPrice + parseFloat(combination.unit_impact) ; $('#unit_price_display').text(formatCurrency(unit_price * currencyRate, currencyFormat, currencySign, currencyBlank)); $('.unit-price').show(); } Hier noch ein Video (kann man sich immer besser vorstellen so): Edited July 18, 2014 by BluTiGeS (see edit history) 1 Link to comment Share on other sites More sharing options...
Holger72 Posted July 19, 2014 Author Share Posted July 19, 2014 (edited) Genau den Ansatz hast gut aufgenommen und umgesetzt Im Patch Code war noch viel Müll, das wurde auf einen iPhone bei Gassi gehen gepacht und erst der 5. Ansatz klappte. Danke für säubern Ich sehe allerdings ein Rundungsproblem wenn man "formatCurrency" benutzt. Da es die 3. Kommastelle rundet. Bei meinen Versuchen von 100g zu 5kg sind da Grundpreisunterschiede zum Preis von teils 40 Cent aufgetreten.Denke mit der 3. Kommastelle beim Grundpreis ist man sicherer.Oder :) Man könnte die Variable: combination.unit_impactabfragen. Dort steht die Angabe die man bei Varianten---> x,xx pro kg/Stück gemacht hat. pseudo code: IF combination.unit_impact > 0 then { Wenn da was drin ist. Dieses Feld als Korrektur ausgeben}Ifnot combination.unit_impact > 0 { Die Berechnug wie in unseren Projekt Patch hier ausgeben } Unseren CodePatch mal schnell erweitert und ungetestet: if (productUnitPriceRatio > 0) { var $fWeight = (combination.weight == 0) ? 0.1 : combination.weight; //handle also no increase of weight priceWithDiscountsDisplayB = priceWithDiscountsDisplay * 100000; unit_priceB = Math.abs(priceWithDiscountsDisplayB / ( $fWeight * 10 ) ) ; //get kg unit_price = unit_priceB / 100000; unit_price = Math.round(unit_price / 0.001) * 0.001 ; if (combination.unit_impact > 0) { unit_price = combination.unit_impact; } } $('#unit_price_display').text(formatCurrency(unit_price * currencyRate, currencyFormat, currencySign, currencyBlank)); $('.unit-price').show(); Im Endeffekt alle Ideen vereint Edited July 19, 2014 by Holger72 (see edit history) Link to comment Share on other sites More sharing options...
BluTiGeS Posted July 19, 2014 Share Posted July 19, 2014 Gibst du die preise brutto ein oder netto ? 40 Cent wären argh viel Differenz. Link to comment Share on other sites More sharing options...
BluTiGeS Posted July 27, 2014 Share Posted July 27, 2014 Habe mein Modul jetzt auch noch angepasst, das es direkt bei der Produkteingabe einhängt: Da presta das wohl nicht auf die schnelle hinbekommt: Grüße 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