4.0.0 - 20.07.2017¶
Diese Version wird einige Änderungen mit sich bringen. Darunter befinden sich einige neue Funktionen, aber auch ein paar Änderungen, die Anpassungen an bestehenden Installationen erforderlich machen. Dieser ChangeLog-Eintrag sollte daher sorgfältig durchgearbeitet werden.
Danksagung¶
Einige Neuerungen konnten nur durch die finanzielle Unterstützung oder Entwicklung anderer entstehen.
Ein großer Dank geht an den Sponsor Rainer Karnowski von celmedia.ch für drei Tage gesponsorte Arbeit zur Währungsumrechnung (#92). Neben der finanziellen Beteiligung an der Entwicklung dieses Features unterstützt er Cart auch auf https://patreon.com.
Weiterhin bedanke ich mich bei:
- Ralf Zimmermann für seine Vorarbeit die Validatoren für die Bestellung via TypoScript dynamisch setzen zu können (#117),
- Andreas Steiger für seine Unterstützung bei der Überarbeitung der Mail-Templates (#125).
#99 Unterstützung nur für die PHP Versionen 5.6 und 7.0+¶
Da der Support für die PHP Versionen 5.4 und 5.5 ausgelaufen ist und diese Versionen nicht mehr verwendet werden sollten, verzichtet Cart auch auf die Unterstützung dieser Versionen, auch wenn TYPO3 v7.6 noch damit laufen sollte. Aus dem Blickwinkel Sicherheit, die bei einem Online-Shop eine große Rolle spielt, sollten diese Versionen nicht mehr eingesetzt werden.
Note
Die Tests für diese Versionen wurden ebenfalls entfernt.
#100 Aufräumen der Abhängigkeiten in composer-Installationen¶
Ein paar nicht verwendete Abhängigkeiten wurden aus der composer.json entfernt. Dies sollte keine negativen Auswirkungen haben.
#101 Unterstützung für TYPO3 v6.2 entfernt¶
Die Unterstützung für TYPO3 v6.2 wurde entfernt. Da Extension-Maintainer in der Regel keine Unterstützung für die täglich anfallenden Supportanfragen bekommen, muss dieser Schritt erfolgen. Ein Ziel von coders.care ist die Möglichkeit auch SLA. für Erweiterungen abzuschließen. Für Cart wird geprüft, in wie weit eine Beteiligung an diesem Projekt möglich ist.
Important
Da der offizielle Support für TYPO3 v6.2 ausgelaufen ist, kann in der aktuellen Weiterentwicklung nur auf die LTS Versionen Rücksicht genommen werden. Sofern in Fehler auch die ältere Version betrifft, wird dieser auch in einem eigenen Branch 3.x auf github.com behoben. Eine Aktualisierung im TER findet ggf. nicht mehr statt.
#92 Währungsumrechnung und Neuberechnung der Steuern¶
Das neue Feature bringt ein neues Plugin und eine neue Action im Warenkorb mit, mit der der Kunde die angezeigte Währung im Warenkorb wechseln kann. Diese wird wie folgt konfiguriert.
plugin.tx_cart {
settings {
currencies {
default = 1
1 {
code = EUR
sign = €
translation = 1.00
}
2 {
code = CHF
sign = CHF
translation = 1.07123704
}
}
}
}
Man kann hier beliebig viele Währungen anlegen. Der Währungscode wird für einige Payment Anbieter und den Request benötigt. Das Währungssymbol wird dann beim Nutzer ausgegeben. Der Währungsumrechnungsfaktor gibt hier an, wie die Preise der Produkte in die Fremdwährung umgerechet werden.
Beispiel:
Das Produkt ist mit 10.00 € gepflegt. Der Umrechnungsfaktor für Schweizer Franken ist mit 1.07123704 angegeben, dann ist der resultierende Preis 9,34 CHF. Der Preis wird also durch den Faktor dividiert.
Note
Im Moment gibt es noch keinen Automatismus den Faktor zu aktualisieren und an einen aktuellen Wert anzupassen. Mit einem kleinen Scheduler-Task sollte aber recht schnell ein entsprechender Service angebunden werden können.
Important
Da die Währung auch in der Bestellung gespeichert wird, ist eine Aktualisierung der Datenbank erforderlich. Da nur neue Felder hinzukommen ist nicht mit Problemen zu rechnen.
#122 Functional Tests für das Parsen von TypoScript¶
In dieser Version sollen nach und nach Functional Tests eingeführt werden, die das korrekte Verhalten von Funktionen absichert. Dazu gehört auch das Parsen von TypoScript-Konfigurationen. Weitere Tests sollen folgen.
#123 Zonenkonfiguration für Bezahl- und Versandmethoden¶
Neben der noch recht neuen Konfiguration für verschiedene Länder Bezahl- und Versandmethoden konfigurieren zu können ist es manchmal gewünscht in viele Länder liefern zu können ohne jeweils eine eigene Konfiguration zu hinterlegen. Daher können nun Zonenkonfigurationen hinterlegt werden. Diese werden genutzt, falls es keine direkte Konfiguration für dieses Land gibt.
plugin.tx_cart {
shippings {
countries {
de {
preset = 1
options {
1 {
title = Standard
extra = 4.95
taxClassId = 1
status = open
}
}
}
}
zones {
1 {
preset = 1
countries = at,ch
options {
1 {
title = Standard
extra = 10.95
taxClassId = 1
status = open
}
}
}
}
}
}
Die Konfiguration einer Zone entspricht der Konfiguration für Länder, erfordert aber eine zusätzlich Konfiguration, für welche Länder diese Zonenkonfiguration gültig ist.
Note
Um die Konfiguration übersichtlicher gestalten zu können wurde die Länderspezifische Konfiguration noch einmal in countries gruppiert. Die Anpassung dieser Konfiguration ist aktuell noch nicht zwingend erforderlich, soll aber in den kommenden Versionen der Standard werden.
#117 Konfigurierbare Validierung für Formularfelder¶
Da nicht alle Integrationen des Warenkorbs alle Felder für die Adresseingabe als Pflichtfelder benötigen, wurden die Validatoren im Model entfernt. Damit trotzdem eine serverseitige Konfiguration stattfindet, werden diese im Controller dynamisch hinzugefügt. Die Standardkonfiguration, die die Cart setup.txt spiegelt die bisherige Konfiguration im Model wieder.
plugin.tx_cart {
settings {
validation {
orderItem {
fields {
acceptTerms {
validator = Boolean
options.is = true
}
acceptConditions {
validator = Boolean
options.is = true
}
}
}
billingAddress {
fields {
salutation {
validator = NotEmpty
}
firstName {
validator = NotEmpty
}
lastName {
validator = NotEmpty
}
email {
validator = NotEmpty
}
street {
validator = NotEmpty
}
zip {
validator = NotEmpty
}
city {
validator = NotEmpty
}
}
}
shippingAddress {
fields {
salutation {
validator = NotEmpty
}
firstName {
validator = NotEmpty
}
lastName {
validator = NotEmpty
}
email {
validator = NotEmpty
}
street {
validator = NotEmpty
}
zip {
validator = NotEmpty
}
city {
validator = NotEmpty
}
}
}
}
}
}
Um ein Feld von den Pflichtfeldern auszunehmen, kann einfach die Konfiguration entfernt aus dem TypoScript entfernt werden. Andererseits können aber auch andere Felder zu den Pflichtfeldern hinzugefügt werden. Die angepassten Templates nutzen die Konfiguration im TypoScript ebenfalls und fügen entsprechend das Asterix (*) zum Label hinzu und das required-Attribut am Eingabefeld. Eine Anpassung des Templates ist dafür also nicht zwingend notwendig.
Note
Cart bringt auch einen eigenen Empty Validator mit, der prüft, ob ein Feld auch wirklich leer bleibt. Zusätzlich wird das Feld nicht im Frontend dargestellt, wenn der Empty Validator verwendet wird.
#125 Überarbeitung der E-Mail-Templates¶
Die E-Mail-Templates wurden dahingehend optimiert, dass die E-Mails in möglichst vielen E-Mail-Programmen und Webanwendungen gleich dargestellt werden.
Note
Eine Anpassung ist nicht zwingend erforderlich.