Preise

Land

mit dem Paramter ?language=de_DE wird das Land in der Anwendung über den Request gesteuert.

Die Methode initLocale in /alvine/components/alvine.application/application/source/Web.class.php steuert das. Damit der Paramter auch greift muss in den assembly.properties 'application.locale.languages=de,en,de_DE,en_DE' der Wert auch definiert sein.

Preise eines Produktes laden

Mit dem Price Provider werden die Bestände für ein Produkt geladen.

$iid=2568;
$priceProvider=new \Alvine\Application\Platform\Plugin\Commerce\Item\Price\Provider();
$priceCollection=$priceProvider->getAvailablePriceFromIIDWithFactory($iid, new \Alvine\Application\Platform\Plugin\Commerce\Item\Price\Factory());

Die Price Strategy holt sich aus der Plugin Konfiguration die Strategie Factory, die wiederum die Strategie erstellt.
Die Factory bekommt die zuvor geladenen Preise.

$priceStrategyFactory->setPriceCollection($priceCollection);

Die Factory wird mit weiteren Informationen ereitert , die für das Berechnen der Preise berücksichtigt werden sollen

$priceStrategyFactory->setItemVariant('XL');
$priceStrategyFactory->setLocale(\Alvine\I18n\Locale::getInstance('de'));
$priceStrategyFactory->setCustomerUID(1235);
$priceStrategyFactory->setCompanySHID(1);

nun kann die Strategie erstellt werden

$priceStrategy=$priceStrategyFactory->createPriceStrategy();

nun kann der Preis und die Steuer ermittelt werden.

$price=$priceStrategy->getPrice();
$net=$priceStrategy->getNet()
$gross=$priceStrategy->getGross()
$vat=$priceStrategy->getVat()

Convertieren

Die Preise werden in der Datenbank als INT gespeichert. Die Netto und Brutto Werte kommen als Money Objekte da diese Berechnet werden müssen.
Die Umwandlung übernimmt der Converter.

Umwandlung in ein Price Objekt

$price = \Alvine\Application\Platform\Plugin\Commerce\Item\Price\Converter::toPrice($priceStrategy->getNet(), $price->getDigits());
/**
 * Wert zum speichern in der Datenbank
 */
$value = $price->getAmount();

Umwandlung in ein Money Objekt

$money = \Alvine\Application\Platform\Plugin\Commerce\Item\Price\Converter::toMoney($price);

Darstellung

Brutto oder Netto anzeigen

Der Trait \Alvine\Application\Platform\Plugin\Commerce\Logic\Item\Price\Display legt die Ausgabe fest.

Preis Logik

MinPriceStrategy

Der günstigste Preis wird gewinnt. Entscheident ist welche Preise die Strategy für die Bewertung erhält.

Preis pro Benutzer

Sobalt ein Preis ausschließlich für einen Benutzer bestimmt ist , und dieser gerade angemeldet die Strategie verwendet. erhält nur diese zugewiesenen Preise. Alle anderen Preise werden verworfen. Hier ist es möglich das auch der Benutzer einen höheren Preis für ein Produkt zahlen muss.

Preis pro Gruppe

Die Gruppen Preise kommen mit in Topf der Bewertung. Hier greift wieder der günstigste Preis gewinnt. Man kann NICHT einer Gruppe einen teueren Preis pflegen.

Preis pro Staffel

Die Preise die erst ab einer bestimmten Menge greifen kommen mit in Topf der Bewertung. Hier greift wieder der günstigste Preis gewinnt. Man kann NICHT einer Staffel einen teueren Preis pflegen.