[gelöst] Commerce Kickstart -> auf deutsche (rechtliche) Belange anpassen
am 08.07.2013 - 17:15 Uhr in
Hallo,
bin grade dabei, Commerce Kickstart 2 auf die deutschen Belange anzupassen. U.a. wird ja bei Produkten ein Vergleichspreis gefordert, in diesem Fall der Preis pro Liter.
Meine bisherige Herangehensweise:
Preiseingabe in CK2 ist ja logisch.
Erfassung des Inhaltes über Referenz auf Taxonomie-Begriffe (0,2 , 0,5 etc ...)
Nun dachte ich, ich könnte mittels Computed Fields mit schön einfach den Preis pro Liter bei der Ausgabe des Produktes berechnen lassen - Pustekuchen.
Habe nun schon mehrere Varianten durchgespielt - mit "field_name[0]['und']['value']" , "field_name[LANGUAGE_NONE][0]['value']" etc, etc.
Ergebnis: Entweder überhaupt keine Anzeige oder "=" als Ausgabe.
Zur Überprüfung habe ich dann zwei zusätzliche computed Fields angelegt - eines, dass lediglich den Preis in eine Tabelle schreibt und ein weiteres, dass den Wert für Inhalt ebenfalls in der Tabelle speichert. Und siehe da: Auch hier werden einfach keine Werte generiert.
Hat jemand einen Tipp? Funktioniert es überhaupt mit Taxonomie-Werten? Stehe nach zwei (erfolglosen) Tagen nur noch auf dem Schlauch.
Gruß
Holger
- Anmelden oder Registrieren um Kommentare zu schreiben
Das sollte sich problemlos
am 08.07.2013 - 18:13 Uhr
Das sollte sich problemlos mit Computed Field machen lassen, aber ich glaube, daß Deine Herangehensweise nicht so ganz richtig ist. Für mich ist der Inhalt der Ware kein Taxonomie-Begriff, sondern eine Eigenschaft des Produktes und sollte von daher im Prokukt als Feld vorhanden sein, aber jeder wie er meint.
Taxonomie-Begriffe kannst Du nicht direkt ansprechen, sondern Du mußt Dir den Term erst über einen Funktionsaufruf von taxonomy_term_load($tid) als Taxonomy-Objekt beschaffen (die TID sollte im Datensatz vorhanden sein) und dann in diesem Objekt der Term-Inhalt ermitteln.
Du mußt Dir bei allen Berechnungen mit Feldern in Drupal immer darüber im Klaren sein, wie die unterliegenden Strukturen aussehen. Erst dann weißt Du wie Du die Inhalte bekommst und kannst damit auch rechnen.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Hallo Werner, danke für den
am 09.07.2013 - 15:42 Uhr
Hallo Werner,
danke für den Tipp. Werde mich morgen mal mit frischem Elan ransetzen ...
P.S.: Mit Inhalt meine ich nicht die Produktbeschreibung oder dergleichen, sondern den tatsächlichen Inhalt in Litern - daher ja auch der Umrechnungsversuch auf eine Einheitsgröße (eben Liter).
Literpreisberechnung - gelöst
am 16.07.2013 - 04:15 Uhr
Noch mal einen Dank an Werner, der Denkanstoß war Gold wert.
Für alle, die sich ebenfalls mal mit dem Problem konfrontiert sehen (Einheitspreisberechnung für Liter, KG, m² etc ...), hier der Lösungsansatz für Commerce, wenn die Menge über Taxonomie-Begriffe definiert wird:
Im betreffenden Variationstyp ein Computed Field anlegen
als Code
<?php
$inhalt[0]['value'] = taxonomy_term_title(taxonomy_term_load($entity->field_inhalt['und'][0]['tid']));
$price[0]['value'] = $entity->commerce_price['und'][0]['amount'];
$entity_field[0]['value'] = $price[0]['value'] / 100 / $inhalt[0]['value'];
?>
einfügen
die Ausgabe mittels
<?php
$display_output = number_format($entity_field_item['value'], 2, '.', '') . " EUR / l";
?>
auf zwei Nachkomma-Stellen formatieren
fertig.