1000g auf Produktseite in kg ausgeben

Hallo zusammen,

ich suche mir einen Wolf. Wie kann ich im Template „einprogrammieren“, dass aus 1000g direkt 1kg gemacht werden? In verschiedenen Threads wird davon gesprochen, um u.a. den neuen Regularien des Gesetzes ab 28.5. gerecht zu werden.

Hat jemand eine Idee?

Danke euch!

Gruß
Noel

Schau mal hier, gleiches Thema mit Umwandlung ml in Liter, musst nur das SQL (unitID) entsprechend anpassen:

LG Phil

Hi Phil, danke dir.

Ich habe das schon gefunden und traue mir das auch zu.
Nur steht in SW dann 1000g, es muss aber aus regulatorischer Sicht in kg gewandelt werden.
Kann man das Theme das interpretieren lassen und autom 1000ml in kg sowie 1000ml in 1l umwandeln lassen?

Danke sehr!

Gruß

Könnte man, aber du brauchst doch nur deine Grundpreisberechnung anpassen. Oder sehe ich das falsch?

Wobei …

mich das eben wundert. Bei 6,45 EUR und 210 Gramm, wären das doch 0,03 EUR / 1 Gramm.

Danke für deine Antwort.
Ja könnte man, aber dann steht da 0,21kg. In gramm ist es schöner und leichter.

Außerdem hätte man auf diesem Weg das beste aus beiden Welten: kg und gramm sowie sie Grundpreisberechnung über SW.

Deshalb suche ich eine Möglichkeit, dem Theme zu sagen, dass es ab 1000g oder 1000ml auf die nächste Einheit umwandeln soll.

:slight_smile:
danke!

Na dann musst du halt die Ausgabe des Grundpreises manipulieren, die findet sich im Block frontend_detail_data_price_unit_reference_content in der frontend/detail/data.tpl

Einfach Abfrage ob $sArticle.referenceunit gleich 1000 und dann umrechnen (oder direkt 1 ausgeben). Und $sArticle.sUnit.description kannst du mit dem |replace Modifier umwandeln.

LG Phil

Lieben Dank, leider habe ich so im Detail keine Ahnung wie man das umsetzt.
Kannst du mir den Code dafür zur Verfügung stellen? Das wäre sehr nett!

Danke und Grüße

                    {block name='frontend_detail_data_price_unit_reference_content'}
                        ({$sArticle.referenceprice|currency} {s name="Star" namespace="frontend/listing/box_article"}{/s}
                        / {$sArticle.referenceunit} {$sArticle.sUnit.description|replace:'Gramm':'Kilogramm'})
                    {/block}

Also die Manipulation von Gramm in Kilogramm habe ich hinbekommen.
Die Umrechnung von 1000g in kg also geteilt durch 1000 nicht.
Es müsste ja dann auch das gleiche für ml und l geschehen. Kann ich zwei replace-Variablen in einem Befehl „manipulieren“?

Danke für die Hilfe bei dieser Fragestellung.

Versuche es mal mit {$sArticle.referenceunit/1000|string_format:"%.2f"}, in Smarty 3 kann man direkt mathematische Operatoren auf Variablen anwenden. string_format gibt den Wert dann mit 2 Nachkommastellen aus (kannst Du ggf. auch weglassen).

Ja, man kann die Modifier verketten, indem man mehrere hintereinander (jeweils durch | getrennt) angibt, z.B.
{$sArticle.sUnit.description|replace:'Gramm':'Kilogramm'|replace:'ml':'Liter'}
Das geht aber natürlich nur solange gut, wie der Wert nach dem ersten Modifier nicht den Suchbegriff des Zweiten enthält, denn beide werden nacheinander ausgeführt. Würdest Du jetzt noch nach „mm“ suchen, würde das auch auf das bereits ersetzte Kilogramm matchen und heraus käme ein KilograMeter ;-). In diesem Falle nimmt man besser regex_replace oder arbeitet gleich mit entsprechenden {if},{elseif},{else} Statements.

LG Phil

{* Unit price is based on a reference unit }
{if $sArticle.purchaseunit && $sArticle.referenceunit && $sArticle.purchaseunit != $sArticle.referenceunit && !$sArticle.sBlockPrices}
{
Reference unit price content *}
{block name=‚frontend_detail_data_price_unit_reference_content‘}
({$sArticle.referenceprice|currency"} {s name=„Star“ namespace=„frontend/listing/box_article“}{/s}

Hallo,
wie kann ich den Wert {$sArticle.referenceprice|currency} mit 10 multiplizieren und dann im Shop die Ausgabe mit 2 Nachkommastellen und der Währung erhalten?
Egal was ich versuche, ich erhalte bestenfalls so eine Ausgabe (698 * / 1 Liter)

Danke im Voraus.

Grüße Michael

Na indem du den Wert mit 10 multiplizierst :slight_smile: Oder was meinst du jetzt?

{$sArticle.referenceprice*10|currency}

LG Phil

Ja, klar. Das habe ich auch genau so gemacht. Nur wird mir dann kein Währungszeichen angezeigt und keine 2 Nachkommastellen.

So sieht es aus: Inhalt: 50 Gramm (2099 * / 1 Kilogramm) wenn ich es so eingebe: {$sArticle.referenceprice*10|currency}

Und so sollte es doch aussehen: Inhalt: 50 Gramm (2099,00 € * / 1 Kilogramm)?

Danke im Voraus.

Gibt es kein Plugin für diesen Sachverhalt? Habe keins finden können.

Es muss doch möglich sein, dass man für den Inhalt „ml“ oder „gr.“ angeben kann und für den Grundpreis dann „Liter“ oder „Kilo“ ohne diese „Verrenkungen“ mit „replace“ und so weiter. Kann doch schlecht bei einem Nagellack „0,005 Liter“ als Inhalt angeben!?

@Shopware kommt da evtl. was?

Ich hätte die Werte direkt in der Datenbank korrigiert. Dann hätte man eine saubere Grundlage. Diese Replace-Orgien im Smarty wären nicht mein Fall. Und wenn der Shop noch in mehreren Sprachen ist endet das ggf. im Kaos :slight_smile:

Das hatte ich auch nach deiner Vorlage (danke dafür) versucht.

UPDATE s_articles_details 
SET purchaseunit = (purchaseunit/1000), unitID = 1 
WHERE unitID = 10

Nur hatte ich dann als Beispiel statt 10 € / 1 Liter im Shop 1000 € / 100 Liter stehen?

Was steht denn beim Artikel als Grundeinheit? Dort müsste eine „1“ drin stehen. Und dann kommt auch 10 € / 1 Liter raus.

Vielleicht mal zum Lesen:

Da ich hauptsächlich Artikel mit Milliliter Inhalt habe steht da z.B.:
image

Ich kann bei solchen Artikel keine Liter angeben.

Ja was soll ich sagen?

Also ich, würde hier generell alles in der Datenbank umstellen. Und als Grundeinheit 1 eintragen.