zen-cart-pro.at - 

Gutscheincode direkt via URL einlösen lassen

Seit Zen Cart 1.5.7h deutsch ist es ohne zusätzliche Erweiterung möglich, einen Aktionskupon/Gutscheincode direkt durch Aufrufen eines speziellen Links einlösen zu lassen.

Wenn Sie z.B. einen Aktionskupon mit Gutscheincode BLACKFRIDAY erstellt haben, dann Folgendes an Ihre URL anhängen:

?coupon_code=BLACKFRIDAY

Hat Ihr Aktionskupon den Gutscheincode abc123def, dann Folgendes an Ihre URL anhängen:

?coupon_code=abc123def

Am einfachsten hängen Sie das direkt an Ihre Shop URL an und geben z.B. folgenden Link weiter:

https://www.meinshop.de?coupon_code=BLACKFRIDAY

Das Anhängen funktioniert auch bei jeder anderen URL Ihres Shops. Haben Sie z.B. auch eine englische Version Ihres Shops aktiv, die auf meinshop.de/en/ läuft, können Sie z.B. folgenden Link weitergeben:

https://www.meinshop.de/en/?coupon_code=BLACKFRIDAY

Diesen Link können Sie dann z.B. in Emails, in Ihren Social Media oder in Ihrem Shop als Bannerlink angeben.

Anclicken des Links übernimmt den Gutscheincode in die Session des Besuchers und der Gutschein wird im Checkout automatisch berücksichtigt, falls er gültig ist.
Alternativ kann der Kunde den Code natürlich auch im Bestellvorgang manuell eingeben.


Verwendung von admin_html_head seit 1.5.7

Seit Zen Cart 1.5.7 deutsch gibt es im Adminbereich die neue Datei admin/includes/admin_html_head.php, um den Code zu konsolidieren, der für die Erstellung des head Elements auf einer Adminseite erforderlich ist. Dazu gehören u.a.:
– das Setzen des Seitentitels
– Einbindung von Stylesheets
– Einbindung erforderlicher Javascripts

In früheren Versionen wurde der Code für diese Aufgaben auf jeder Adminseite wiederholt.

Mit Zen Cart 1.5.7h deutsch ist diese Änderung abgeschlossen und alle in der Grundinstallation enthaltenen Admin Seiten sind auf die neue Methode umgestellt.

Einige ältere Plugins verwenden aber möglicherweise noch den alten Aufruf.
In Zen Cart 1.5.7h deutsch wird geprüft, ob eine Adminseite noch die veralteten Aufrufe verwendet und es wird dann ein Hinweistext ausgegeben, dass diese Seite auf die neue Konvention umgestellt werden sollte.
Dieser Hinweistext hat Sie wahrscheinlich auch zu dieser Infoseite geführt.

Die Umstellung auf den neuen Standard ist ganz einfach:
Ersetzen Sie einfach den alten Inhalt des head Elements durch einen Verweis auf admin_html_head.php

Beispiele:

Alt:

<!doctype html>
<html <?php echo HTML_PARAMS; ?>>
  <head>
    <meta charset="<?php echo CHARSET; ?>">
    <title><?php echo TITLE; ?></title>
    <link rel="stylesheet" href="includes/stylesheet.css">
  </head>

Neu:

<!doctype html>
<html <?php echo HTML_PARAMS; ?>>
  <head>
    <?php require DIR_WS_INCLUDES . 'admin_html_head.php'; ?>
  </head>

Alt:

<!doctype html>
<html <?php echo HTML_PARAMS; ?>>
  <head>
    <meta charset="<?php echo CHARSET; ?>">
    <title><?php echo TITLE; ?></title>
    <link rel="stylesheet" type="text/css" href="includes/stylesheet.css">
    <link rel="stylesheet" type="text/css" media="print" href="includes/stylesheet_print.css">
    <link rel="stylesheet" type="text/css" href="includes/cssjsmenuhover.css" media="all" id="hoverJS">
    <script src="includes/menu.js"></script>
    <script src ="includes/general.js"></script>
    <script>
      function init() {
          cssjsmenu('navbar');
          if (document.getElementById) {
              var kill = document.getElementById('hoverJS');
              kill.disabled = true;
          }
      }
    </script>
    <script>
      function couponpopupWindow(url) {
          window.open(url, 'popupWindow', 'toolbar=no,location=no,directories=no,status=no,menu bar=no,scrollbars=yes,resizable=yes,copyhistory=no,width=450,height=280,screenX=150,screenY=150,top=150,left=150')
      }
    </script>
  </head>

Neu:

 <!doctype html>
<html <?php echo HTML_PARAMS; ?>>
  <head>
    <?php require DIR_WS_INCLUDES . 'admin_html_head.php'; ?>
    <link rel="stylesheet" media="print" href="includes/css/stylesheet_print.css">
    <script>
      function couponpopupWindow(url) {
          window.open(url, 'popupWindow', 'toolbar=no,location=no,directories=no,status=no,menu bar=no,scrollbars=yes,resizable=yes,copyhistory=no,width=450,height=280,screenX=150,screenY=150,top=150,left=150')
      }
    </script>     
  </head>

Nicht mehr nötig ist weiterhin der alte Javascript Aufruf:

<body onLoad = "init()">

Sollte der in Ihrer betroffenen Adminseite noch auftauchen, einfach ersetzen mit:

<body>

Erste Schritte nach der Installation

Diese Dokumentation kann nicht alle Einstellungsmöglichkeiten und Funktionalitäten auflisten. Generell ist in der Zen Cart Administration jede Einstellung beim Bearbeiten mit einem Hilfetext erklärt.
Installieren Sie sich unbedingt parallel zu Ihrem Liveshop einen separaten Testshop mit den Demodaten. Damit haben Sie dann bereits alle möglichen Funktionalitäten wie Sonderangebote, Attribute, Artikeltypen, usw. zum Testen vorbefüllt.
Clicken Sie sich dort durch die Administration, spielen Sie herum, machen Sie sich mit den umfangreichen Funktionalitäten vertraut.

Generelles

Eingabe von Preisen
In Zen Cart geben Sie Preise immer mit Punkt als Dezimaltrennzeichen ein. Nicht mit Komma, wie Sie das wahrscheinlich gewohnt sind!
Einen Preis von 99,90 Euro geben Sie also ein als 99.90

Arbeiten mit CKEditor oder TinyMCE
In verschiedenen Bereichen des Shops stehen HTML Editoren (wahlweise CKEditor oder TinyMCE) zur Verfügung, um z.B. Artikelbeschreibungen oder Seiteninhalte zu editieren. Vermeiden Sie unbedingt ein direktes Kopieren aus Word oder Internetseiten in die Eingabefelder. Dadurch werden Formatierungen mitgenommen, die Ihren Shop später extrem unprofessionell erscheinen lassen, da Schriftarten und Schriftgrößen bunt gemischt werden. Nur mit einem einheitlichen Schriftbild erreichen Sie ein professionelles Layout. Wenn Sie aus Word oder einer Internetseite kopieren, machen Sie daher erst einen Zwischenschritt und kopieren den Inhalt in einen Texteditor. Dadurch gehen die unpassenden Formatierungen verloren. Und dann kopieren Sie den Inhalt aus dem Texteditor in das Eingabefeld in der Shopadministration. Formatierungen wie Fettschrift, Listen usw. führen Sie dann mit dem Editor im Eingabefeld durch.

Bearbeiten von Sprachdateien
Haben Sie einen guten Texteditor?
Falls nicht, dann ist jetzt spätestens der Zeitpunkt dafür gekommen. Sie benötigen einen einfachen, reinen Texteditor.
Es ist unbedingt erforderlich, dass dieser Texteditor mit utf-8 umgehen kann und in der Lage ist, Dateien im Format utf-8 ohne BOM zu speichern! Wir empfehlen dafür UltraEdit oder Notepad++ (kostenlos).
Der in Windows enthaltene Editor oder das in Windows enthaltene Notepad ist NICHT geeignet!

Verwenden des Override Systems
Sie sollten, wenn Sie Sprachdateien oder andere Dateien des Shops ändern, immer das Override System nutzen, um den Aufwand für spätere Shopversionsupdates zu minimieren.
Genauere Infos dazu hier:
https://www.zen-cart-pro.at/knowledgebase/deintemplate-was-ist-das-override-system/

Nutzung des Developers Toolkit
In der Shopadministration finden Sie unter Tools > Developers Toolkit eine mächtige Suchfunktion, die Ihnen hilft, bestimmte Texte in Sprachdateien, Elemente in Templates und Stylesheets und Funktionen in allen möglichen Dateien zu finden.

Layoutanpassungen
Wie bei jeder anderen Website auch sind Farben, Schriftarten und viele Positionierungen CSS basiert. Wenn Sie also in Ihrem Template Farben, Schriftarten und andere Dinge ändern wollen, dann nehmen Sie diese Änderungen in den Stylesheets des Templates vor (includes/templates/DEINTEMPLATE/css).

Grundeinstellungen

Unter Konfiguration > Mein Shop legen Sie nun zunächst einige grundlegende Dinge fest. Alle Einstellungsmöglichkeiten sind erklärt, wenn Sie auf Bearbeiten clicken.

Steuer Einstellungen

Die nötigen Steuerzonen und Steuersätze sind bereits vorangelegt und mit den aktuellen Steuersätzen für Österreich befüllt. Wenn Sie Ihren Shop in Deutschland betreiben, ändern Sie unter Länder und Steuern > Steuersätze einfach von 20 auf 19 und von 10 auf 7 Prozent ab.

Seit 1.5.6f wird für jedes EU Land eine eigene Steuerzone vorgesehen. Und für jedes EU Land ein eigener Normalsteuersatz und ein eigener reduzierter Steuersatz. Das ist erforderlich, um die neuen Steuervorgaben für Versand in EU Staaten ab 01.07.2021 zu erfüllen. Bei einer 1.5.7 Neuinstallation wurden diese Steuersätze mit 20 bzw. 10 Prozent vorbefüllt. Sollten Sie Ihren Shop in Deutschland betreiben, dann ändern Sie auch diese Steuersätze auf 19 bzw. 7 Prozent ab.
Sollten Sie in Ihrem Shop die Grenze von 10.000 Euro jährlich für Lieferungen in andere EU-Staaten überschreiten, dann ändern Sie die Steuersätze der verschiedenen EU-Staaten auf den aktuell im jeweiligen Land geltenden Steuersatz ab.

Inhaltsseiten

Define Pages versus EZ Pages

Der Shop liefert bereits die erforderlichen Informationsseiten für Versandkosten, AGB, Datenschutz, Zahlungsarten, Widerufsrecht mit. Das sind sogenannte „Define Pages“ mit einem festen Link. Zu diesen „fest verdrahteten“ Seiten wird auch an verschiedenen Stellen des Shops gelinkt, im Checkout z.B. zu den AGB und zum Widerrufsrecht.
Den Inhalt dieser Seiten bearbeiten Sie unter Tools > Seiteneditor. Für diese grundlegenden Seiten sollten Sie immer diese Define Pages verwenden. Die Sidebox Information listet diese zentralen Seiten ebenfalls auf. Unter Konfiguration > Define Pages Einstellungen können Sie die einzelnen Seiten von der Auflistung in der Infosidebox ausnehmen oder auch generell ihren Inhalt deaktivieren (z.B. solange Sie mit dem Überarbeiten der Inhalte noch nicht fertig sind). Der Inhalt dieser Define Pages wird in Textdateien (im Verzeichnis includes/languages/german/html_includes/DEINTEMPLATE) gespeichert.

Unter Tools > EZ Pages steht Ihnen eine weitere mächtige Contentverwaltung zur Verfügung. EZ (steht für easy) Pages sind datenbankbasiert, ihre Inhalte werden in der Datenbank gespeichert und sie sind im Gegensatz zu den Define Pages dynamisch. Sie haben also keine festverdrahteten Links. EZ Pages sind geeignet für das Bereitstellen zusätzlicher Inhalte, sie können in Kapiteln gruppiert werden oder müssen auch gar keinen Inhalt haben. Eine EZ Page kann auch ein einfacher Link sein. Unter Konfiguration > EZ Pages Einstellungen nehmen Sie grundlegende Einstellungen für die Anzeige vor. Die Sidebox ezpages verlinkt die für die Anzeige in einer Sidebox aktivierten Seiten. Mit reienen EZ Pages Links, die für Header oder Footer aktiviert sind können Sie eine zusätzliche Navigationstruktur anzeigen. Sehen Sie sich die in den Demodaten angelegten EZ Pages in Ihrem Testshop an, um sich mit den Möglichkeiten vertraut zu machen.
Bitte beachten Sie dass die EZ Pages seit Zen Cart 1.5.6c multilingual sind.

Sideboxen schalten Sie unter Tools > Boxlayout ein und aus.

Kategorien und Artikel

Bevor Sie Ihren ersten Artikel anlegen, überlegen Sie sich zunächst eine Kategoriestruktur für Ihren Shop. Legen Sie erst die Kategorien an, dann die Artikel.

Beachten Sie folgende einfache Regel: Eine Kategorie kann entweder Unterkategorien enthalten oder Artikel. Aber nicht beides gemischt.

Versandarten

Nehmen Sie zunächst grundlegende Einstellungen unter Konfiguration > Lagerverwaltung und Warenkorb und Konfiguration > Versandoptionen vor.

Unter Module > Versandarten installieren/aktivieren/konfigurieren Sie dann Ihre gewünschten Versandarten.

Lassen Sie die Versandart freeshipper IMMER aktiv. Nicht deinstallieren und nicht deaktivieren. Das bedeutet nicht, dass Ihre Kunden diese Versandart auswählen können und Sie alles gratis verschicken. Diese Versandart aktiviert sich lediglich wenn sie zutrifft (z.B. bei Geschenkgutscheinen, als versandkostenfrei definierte Artikel, usw.)

Wenn Sie Versand in unterschiedliche Länder zu unterschiedlichen Kosten anbieten, empfiehlt sich das Versandmodul zones.

Wenn Sie kostenlosen Versand ab einem bestimmten Bestellwert anbieten, stellen Sie das unter Module > Zusammenfassung > Versandkosten ein.

Zahlungsarten

Unter Module > Zahlungsarten installieren/aktivieren/konfigurieren Sie nun Ihre gewünschten Zahlungsarten.

Grundausstattung für jeden Onlineshop sollte eustandardtransfer (Vorkasse per Banküberweisung), paypalwpp (PayPal Express) und sofort_su (SOFORT Überweisung) sein. Sowie Kreditkartenzahlung via Braintree.

Lassen Sie die Zahlungsart freecharger IMMER aktiv. Nicht deinstallieren und nicht deaktivieren. Das bedeutet nicht, dass Ihre Kunden diese Zahlungsart auswählen können. Diese Zahlungsart aktiviert sich lediglich wenn sie zutrifft (z.B. bei kostenlosen Artikeln, usw.)

Wenn Sie PayPal anbieten, dann verwenden Sie unbedingt PayPal Express (paypalwpp) und nicht das Modul PayPal Website Payments Standard. Dieses alte Modul ist nur bis Zen Cart 1.5.6f der Vollständigkeit halber noch enthalten, da es noch einige Shops gibt, die das verwenden. Es bietet bei weitem nicht den Funktionsumfang und die Zuverlässigkeit von PayPal Express! Seit 1.5.7 ist nur noch PayPal Express (paypalwpp) enthalten.

Das enthaltene Zahlunsmodul sofort_su für Sofortüberweisung hat nichts mit einem Klarna Checkout zu tun. Es ist die eigenständige Zahlungsart Sofort. Falls Sie noch keinen Account bei Sofort haben, können Sie sich hier dafür registrieren.

Neu enthalten seit 1.5.6f ist eine SCA konforme Kreditkartenzahlung via Braintree. Braintree ist ein Tochterunternehmen von PayPal und eine hervorragende Art, schnell und einfach Kreditkartenzahlungen in Ihrem Zen Cart Shop anzubieten. Infos und Registrierung dafür hier

Dummy Logo und Dummy Texte ändern

Das mitgelieferte Beispiel Logo finden Sie im images Ordner Ihres aktiven Templates:
In dieser Knowledgebase, im Forenarchiv und in Anleitungen zu Modulen wird das aktive Template immer DEINTEMPLATE genannt.
Die Datei ist:
includes/templates/DEINTEMPLATE/images/logo.gif
Wenn Sie also das Standardtemplate responsive_classic verwenden, das nach der Installation aktiv ist, dann ist die Datei des Logos:
includes/templates/responsive_classic/images/logo.gif

Ersetzen Sie diese Datei mit ihrem FTP Programm mit Ihrem eigenen Logo, es sollte exakt dieselbe Größe haben wie das mitgelieferte Beispiel Logo.

Die Anzeigegröße des Logos wird definiert in:
includes/languages/german/responsive_classic/header.php

define('HEADER_LOGO_WIDTH', '257px');
define('HEADER_LOGO_HEIGHT', '68px');

In dieser Datei können Sie auch einen Alt-Text festlegen, der bei Mouseover über das Logo erscheint.

define('HEADER_ALT_TEXT', 'Powered by Zen Cart 1.5.7 - deutsche Version');

andern z.B. auf

define('HEADER_ALT_TEXT', 'www.meinshop.de - kurzer Slogan');

Der Adminbereich verwendet ein eigenes Logo, wenn Sie das ersetzen wollen, überschreiben Sie die Datei DEINADMIN/images/logo.gif mit Ihrem eigenen.
DEINADMIN steht immer für den Namen Ihres umbenannten Adminverzeichnisses.

Ein drittes Dummy-Logo wird in den HTML Emails verwendet. Auch dieses Logo ersetzen in:
email/header.jpg
und
email/de/header.jpg

Für den Seitentitel wird der Dummy Text Zen Cart 1.5.7 – deutsche Version angezeigt.

Um das zu ändern bearbeiten Sie folgende Datei:
includes/languages/german/meta_tags.php

Falls Sie auch die englische Sprache im Shop verwenden zusätzlich für die englische Version:
includes/languages/english/meta_tags.php

Nach Ihren Änderungen spielen Sie die Datei am besten in das Override Verzeichnis Ihres Templates:
includes/languages/german/DEINTEMPLATE/meta_tags.php

Wenn Sie Sprachdateien so wie oben gezeigt ändern, dann ändern Sie immer nur die hinter der Sprachkonstante angegebene Definition. Und Sie lassen alles andere unverändert, keine Kommas rauslöschen, keine Semikolons rauslöschen, keine Klammern rauslöschen. Immer nur das ändern, was zwischen den Hochkommas steht. Und Sie verwenden dazu ausschließlich einen Texteditor, der im Format utf-8 ohne BOM speichern kann.


Wie ändere ich den Seitentitel auf den Namen meines Shops ab?

includes/languages/german/meta_tags.php enthält standardmäßig einen Beispieltext:

// page title
define('TITLE', 'Zen Cart 1.5.7');
// Site Tagline
define('SITE_TAGLINE', 'deutsche Version');

Mit einem Texteditor öffnen der utf-8 versteht (z.B. Notepad++ oder Ultra Edit) und die beiden Einträge entsprechend ändern.
Darauf achten, dass die geänderte Datei im Format utf-8 ohne BOM gespeichert wird.
Geänderte Datei dann hochladen nach:
includes/languages/german/DEINTEMPLATE

DEINTEMPLATE steht dabei für den Namen des aktiven Templates. Sollte ein solches Verzeichnis noch nicht vorhanden sein, einfach anlegen.

Wird im Shop auch die englische Sprache verwendet, auch die includes/languages/english/meta_tags.php entsprechend ändern.


Wie integriere ich Trusted Shops Badge und Trusted Shops Bewertungen?

Sie haben Ihren Shop von Trusted Shops zertifizieren lassen?
Dann wollen Sie wohl nach Abschluss der Bestellung eine Bewertungsaufforderung anzeigen lassen und auch generell im Shop das Trusted Shop Siegel (Badge) anzeigen lassen.

Integration des Trusted Shops Badge
Den Code dafür erhalten Sie in Ihrer Trusted Shops Administration

Folgende Datei aus dem Shopverzeichnis herunterladen:
includes/templates/DEINTEMPLATE/common/tpl_main_page.php
DEINTEMPLATE steht dabei für den Namen des im Shop aktiven Templates
Sollte es includes/templates/DEINTEMPLATE/common/tpl_main_page.php nicht geben, verwenden Sie includes/templates/template_default/common/tpl_main_page.php
Den Trusted Shops Code am Ende der Datei vor dem schließenden einfügen, so dass es z.B. so aussieht:

<!-- bof trusted shops -->
<script type="text/javascript">
(function () {
var _tsid = '123456789123456789123456789';
_tsConfig = {
'yOffset': '0', /* offset from page bottom */
'variant': 'reviews', /* default, reviews, custom, custom_reviews */
'customElementId': '', /* required for variants custom and custom_reviews */
'trustcardDirection': '', /* for custom variants: topRight, topLeft, bottomRight, bottomLeft */
'customBadgeWidth': '', /* for custom variants: 40 - 90 (in pixels) */
'customBadgeHeight': '', /* for custom variants: 40 - 90 (in pixels) */
'disableResponsive': 'false', /* deactivate responsive behaviour */
'disableTrustbadge': 'false' /* deactivate trustbadge */
};
var _ts = document.createElement('script');
_ts.type = 'text/javascript';
_ts.charset = 'utf-8';
_ts.async = true;
_ts.src = '//widgets.trustedshops.com/js/' + _tsid + '.js';
var __ts = document.getElementsByTagName('script')[0];
__ts.parentNode.insertBefore(_ts, __ts);
})();
</script>
<!-- eof trusted shops -->
</body>

Geänderte Datei hochladen nach includes/templates/DEINTEMPLATE/common

Integration des Bewertungspopups auf der checkout_success Seite

Folgende Datei aus dem Shopverzeichnis herunterladen:
includes/templates/DEINTEMPLATE/templates/tpl_checkout_success.php
DEINTEMPLATE steht dabei für den Namen des im Shop aktiven Templates
Sollte es includes/templates/DEINTEMPLATE/templates/tpl_checkout_success.php nicht geben, verwenden Sie includes/templates/template_default/templates/tpl_checkout_success.php

Ganz am Ende folgenden Code einfügen:

<!-- bof Trusted Shops -->
<?php $sql = "select customers_email_address from " . TABLE_CUSTOMERS . " where customers_id = '" . (int)$_SESSION['customer_id'] . "'";
$result = $db->Execute($sql);
$customers_email_address = $result->fields['customers_email_address']; ?>
<div id="trustedShopsCheckout" style="display: none;">
<span id="tsCheckoutOrderNr"><?php echo $order_summary['order_number'];?></span>
<span id="tsCheckoutBuyerEmail"><?php echo $result->fields['customers_email_address'];?></span>
<span id="tsCheckoutOrderAmount"><?php echo $order_summary['order_total'];?></span>
<span id="tsCheckoutOrderPaymentType"><?php echo $order_summary['payment_module_code'];?></span>
<span id="tsCheckoutOrderCurrency">EUR</span>
</div>
<!-- eof Trusted Shops -->

Geänderte Datei hochladen nach includes/templates/DEINTEMPLATE/templates


Steuerkonfiguration seit 01.07.2021 für Versand in EU Staaten

Ab 1. Juli 2021 löst bereits die erste Versandhandelslieferung in die EU eine Umsatzsteuerpflicht im Bestimmungsland aus, sofern der Gesamtbetrag der Entgelte für sämtliche grenzüberschreitenden B2C-Lieferungen und -Dienstleistungen die Grenze von 10.000 EUR im Kalenderjahr (Vorjahr oder aktuelles Jahr) übersteigt.
Die bisherigen länderspezifischen Lieferschwellen fallen weg.

Bisher haben Sie in Ihrem Shop für alle EU Staaten denselben Steuersatz verwendet wie in ihrem eigenen Shopland.
Einem Kunden in Belgien wurden also von einem Shop in Österreich 20% Normalsteuersatz verrechnet, von einem Shop in Deutschland 19% Normalsteuersatz
Einem Kunden in Belgien wurden also von einem Shop in Österreich 10% reduzierter Steuersatz verrechnet, von einem Shop in Deutschland 7% reduzierter Steuersatz

Ab dem 01.07.2021 müssen Sie nun Kunden in der EU den Steuersatz des entsprechenden Landes verrechnen.

Ab dem 01.07.2021 müssen Sie nun also einem Kunden in Belgien die belgischen Steuersätze verrechnen, also 21% Normalsteuersatz und 6% reduzierter Steuersatz.
Ab dem 01.07.2021 müssen Sie nun also einem Kunden in Ungarn die ungarischen Steuersätze verrechnen, also 27% Normalsteuersatz und 5% reduzierter Steuersatz.

Von dieser Änderung sind Sie dann betroffen, wenn Sie Ihren B2C Shop in einem EU Land betreiben und Waren im Wert von mehr als 10.000 (zehntausend) Euro pro Jahr in andere EU Länder versenden.
Unterschreiten Sie diese Grenze, dann müssen Sie nichts ändern.

Die deutsche Zen Cart Version hat die Verwendung eigener Steuersätze für verschiedene Länder schon immer unterstützt und ist daher auch für die neue Regelung ab 01.07.2021 gerüstet.

Die aktuellen Steuersätze der verschiedenen EU Staaten sind auf folgender Website der EU ersichtlich:
https://europa.eu/youreurope/business/taxation/vat/vat-rules-rates/index_de.htm

Wenn Sie schon bisher die bisher geltenden Lieferschwellen für bestimmte Länder überschritten haben, dann sind Ihnen die folgenden Änderungen vertraut, Sie haben ja dann auch schon bisher eigene Steuersätze für bestimmte EU Länder verwenden müssen und die wohl schon entsprechend konfiguriert.

Ab 01.07.2021 müssen Sie Änderungen in Ihrem Zen Cart Shop vornehmen, falls Sie von der neuen Regelung betroffen sind.

Normalerweise sind in der deutschen Zen Cart Version unter Länder & Steuern > Steuerzonen folgende Steuerzonen angelegt:

Eine namens EU, sie enthält alle EU Staaten (ersichtlich mit Click auf Details rechts)
Und eine namens Export, sie enthält alle Nicht-EU Staaten

Um nun in der Lage zu sein, für jeden EU Staat eigene Steuersätze verwenden zu können, legt man nun für jeden EU Staat eine eigene Steuerzone an.
Hat man sie angelegt, weist man ihr unter Details das jeweilige Land zu.
Und entfernt danach das entsprechende Land aus der Steuerzone EU.

Die Änderungen führt man am besten im Wartungsmodus durch, damit währenddessen nicht neue Bestellungen reinkommen.
(Konfiguration > Shopwartung auf true stellen)

Um das eigene Shopland (z.B. Österreich oder Deutschland) kümmern Sie sich ganz zum Schluss, zunächst legen Sie eigene Steuerzonen für jedes andere EU Land außer des eigenen Shoplandes an.

Hier der Ablauf am Beispiel von Belgien

Länder & Steuern > Steuerzonen
Unten rechts auf „Einfügen“

Neue Steuerzone für Belgien anlegen.
Namen und Beschreibung am besten so nennen wie das Land also Belgien:

Nun die neue Steuerzone Belgien markieren und rechts auf Details:

Es wurde noch kein Land zugewiesen, daher rechts auf Einfügen:

Und dann Belgien aus der Liste auswählen
Bei Bundesland/Steuerzone einfach „Alle Zonen/Bundesländer“ lassen oder falls Ihnen „Bitte wählen“ angezeigt wird „Bitte wählen“ lassen, dadurch werden alle Bundesländer dieses Landes hinzugefügt, sollten mehrere bestehen:

Nun nicht vergessen Belgien aus der bestehenden Zone EU zu entfernen, also zurück und dann die Zone EU markieren und rechts auf Details:

Belgien markieren und Löschen:

Löschen bestätigen:

Nach demselben Prinzip nun alle weiteren EU Staaten außerhalb des eigenen Shoplandes behandeln, eine eigene Zone für das Land anlegen und es aus der alten Zone EU herausnehmen.

Natürlich können Sie das Löschen der Länder aus der alten Zone EU auch gesammelt zum Schluss vornehmen, wenn Ihnen das lieber ist.

Wenn Sie damit fertig sind, sollte es unter Steuerzonen so aussehen (in diesem Beispiel ist das Land des eigenen Shops Österreich, daher wurde eine eigene Zone für Deutschland angelegt):

Seite 1:

Seite 2:

Die alte Zone EU enthält unter Details nur noch das eigene Shopland (hier als Beispiel Österreich):

Das eigene Shopland soll auch eine eigene Zone behalten, daher benennen Sie nun einfach die Zone EU auf Ihr Shopland um:

Zone EU markieren und rechts auf bearbeiten:

und entsprechend umbenennen:

Damit sind nun mal alle benötigten Steuerzonen vorhanden und es können nun die gewünschten Steuersätze angelegt und zugewiesen werden.

Gehen Sie also nun unter Länder & Steuern auf Steuersätze

Hier sieht es nun z.B. so aus:

Für Ihr Shopland ist die Konfiguration weiterhin völlig korrekt, die beiden angelegten Steuersätze Normalsteuersatz und reduzierter Steuersatz galten ja bisher für alle EU Staaten.
Nun gelten Sie nur noch für Ihr eigenes Shopland, da die Zone Österreich nun nur noch Österreich enthält.

Jetzt legen Sie für jedes EU Land zwei neue Steuersätze an, einen für die Steuerklasse Normalsteuersatz und einen für die Steuerklasse reduzierter Steuersatz
Sollten Sie in Ihrem Shop generell keine Artikel mit reduziertem Steuersatz haben und auch nicht planen solche zu verkaufen, dann können Sie sich auf das Anlegen der Normalsteuersätze beschränken.

WICHTIG WICHTIG WICHTIG
Die Höhe der Steuersätze in den folgenden Screenshots und Erläuterungen sind lediglich Beispiele. Entnehmen Sie die aktuellen für Ihre Waren gültigen Steuersätze für die verschiedenen Länder von der Seite der EU. Klären Sie insbesondere die Höhe der reduzierten Steuersätze, die für Ihre Artikel zutreffen, mit Ihrer Steuerberaterin oder Ihrem Steuerberater.

Eine aktuelle Übersicht der Steuersätze für jedes EU Land bietet:
https://europa.eu/youreurope/business/taxation/vat/vat-rules-rates/index_de.htm

Anhand dieser Liste legen Sie nun für jedes Land wie folgt an, hier wieder am Beispiel Belgien:

Rechts unten auf „Neuer Steuersatz“

Um einen neuen Normalsteuersatz anzulegen wählen Sie aus dem Dropdown Normalsteuersatz aus
Beim Land wählen Sie Belgien
Belgien hat (Stand 15.6.2021) einen Normalsteuersatz von 21%, daher tragen Sie als Steuersatz 21 ein.
Als Beschreibung tragen Sie 21% ein

WICHTIG WICHTIG WICHTIG
Die Priorität muss immer dieselbe sein, wie bei den bereits bestehenden Normalsteuersätzen!
In diesem Beispiel MUSS die Priorität also 10 sein, denn das ist dieselbe, die bereits für den Normalsteuersatz der Zone Österreich verwendet wird.
Sie tragen hier also immer exakt dieselbe Priorität ein, wie bei den anderen Normalsteuersätzen.

Das ganze sieht dann also so aus:

Nun fügen Sie für Belgien noch den reduzierten Steuersatz ein, er beträgt (Stand 15.6.2021) 6 %

Wieder genau au die Eingabe der Priorität achten, sie MUSS wieder genau dieselbe sein wie für den bereits vorhandenden reduzierten Steuersatz, in diesem Fall also 20:

WICHTIG WICHTIG WICHTIG
Die Priorität muss immer dieselbe sein, wie bei den bereits bestehenden reduzierten Steuersätzen!
In diesem Beispiel MUSS die Priorität also 20 sein, denn das ist dieselbe, die bereits für den reduzierten Steuersatz der Zone Österreich verwendet wird.
Sie tragen hier also immer exakt dieselbe Priorität ein, wie bei den anderen reduzierten Steuersätzen:

Belgien ist damit fertig konfiguriert, es sollte nun so aussehen unter Steuersätze:

Wenn Sie nun zurückschalten auf die Steuerzonen, dann sehen Sie, dass bei Belgien nun ein grünes statt gelbes Icon angezeigt wird, denn dieser Steuerzone sind nun 2 Steuersätze korrekt zugewiesen:

Wechseln Sie nun wieder zu den Steuersätzen und legen für die weiteren EU Länder nach demselben Prinzip die Steuersätze an.
Bei der Priorität immer dieselbe angeben, die bereits für die entsprechende Steuerklasse verwendet wird.

Wenn Sie damit fertig sind, dann erfüllen Sie die Vorgaben ab 01.07. und es wird unter den Steuersätzen so aussehen:

Seite 1:

Seite 2:

Seite 3:

Ihr Shop rechnet weiterhin mit Nettopreisen und rechnet dann den zutreffenden Steuersatz hinzu.
Ist der Kunde nicht eingeloggt oder hat noch keinen Checkout gestartet, wird der Shop wie bisher bei den Preisen den Steuersatz des Shoplandes anzeigen.
Loggt sich nun ein Kunde mit Versandadresse in Belgien ein oder startet den Checkout mit Versandland Belgien, dann wird der Shop den belgischen Steuersatz anzeigen und auf den Nettopreis aufschlagen.
Testen Sie das, nachdem Sie die beschriebenen Änderungen vorgenommen haben, indem Sie mit Testkunden aus verschiedenen EU Ländern zur Kasse gehen.
So machen Sie sich auch gleich damit vertraut, dass Kunden aus anderen EU-Staaten nun andere Bruttopreise angezeigt und verrechnet werden als Kunden aus dem eigenen Shopland.

Hinweis für Shopbetreiber, die derzeit die 10.000 Grenze noch nicht überschreiten, aber knapp davor sind:

Die oben gezeigte Konfiguration mit eigenen Steuerzonen für jedes EU-Land macht auch dann Sinn, wenn Sie aktuell die Grenze noch nicht überschreiten und daher weiterhin bei EU Lieferungen die Steuer des Shoplandes verrechnen.
Um sich leichter zu tun, falls Sie die Grenze dann doch überschreiten, können Sie die Konfiguration auch schon jetzt so wie oben beschrieben vornehmen.
Einziger Unterschied:
Bei den Steuersätzen geben Sie dann nicht die Steuersätze des jeweiligen EU Staates an, sondern immer den Normalsteuersatz und reduzierten Steuersatz Ihres eigenen Shoplandes.
Am Beispiel von Shopland Österreich würden Ihre Steuersätze demnach dann so aussehen:

Seite 1:

Seite 2:

Seite 3:

Wenn Sie das jetzt schon so vorbereiten, dann brauchen Sie später, wenn Sie die Grenze mal überschreiten, nur noch die Steuersätze auf die dann aktuellen Steuersätze der jeweiligen Länder zu ändern.

Hinweis für 1.5.7:
Eine solche Grundkonfiguration ist für Neuinstallationen seit 1.5.6f bereits enthalten.
Ein Update auf 1.5.7 nimmt keinerlei Änderungen an einer bestehenden Steuerkonfiguration vor

Dieser Beitrag ist weder eine Rechtsberatung noch eine steuerliche Beratung.
Er erläutert lediglich, wie Zen Cart mit der neuen Regelung ab 1.7. 2021 umgeht und was Sie in Zen Cart dazu einstellen müssen.
Führen Sie diese Änderungen unbedingt am 01.07.2021 durch, falls Sie von der neuen Regelung betroffen sind.
Weitere Fragen dazu klären Sie bitte mit Ihrer Steuerberaterin oder Ihrem Steuerberater.
Falls Sie eine eigene Rechnungssoftware oder Buchhaltungssoftware verwenden, kontaktieren Sie den Hersteller dieser Software für ein Update.

Die Höhe der Steuersätze in den Screenshots und Erläuterungen dieses FAQ Beitrags sind lediglich Beispiele. Entnehmen Sie die aktuellen für Ihre Waren gültigen Steuersätze für die verschiedenen Länder von der Seite der EU. Klären Sie insbesondere die Höhe der reduzierten Steuersätze, die für Ihre Artikel zutreffen, mit Ihrer Steuerberaterin oder Ihrem Steuerberater.


Steuerkonfiguration für Großbritannien seit 01.01.2021

Da Großbritannien seit 01.01.2021 nicht mehr EU Mitglied ist, muss es steuerlich anders behandelt werden als zuvor.
Ähnlich wie bei Versand in die Schweiz oder nach Norwegen, darf der Shop bei Versand nach Großbritannien keine Steuer verrechnen.
In deutschen Zen Cart Versionen älter als 1.5.6f ist Großbritannien in der Grundkonfiguration noch als EU Land integriert.

Wer nach Großbritannien versendet, sollte daher sicherstellen, dass er im Shop Großbritannien seit 01.01.2021 korrekt als Nicht-EU Land konfiguriert hat.
Mit folgenden Schritten ist das schnell geändert:

1)
Länder & Steuern > Steuerzonen

Steuerzone EU markieren und rechts auf Details:

Großbritannien löschen:

2)

Länder & Steuern > Steuerzonen

Steuerzone Export markieren und rechts auf Details:

Unten rechts auf Einfügen:

Großbritannien hinzufügen:

3)

Konfiguration > Mein Shop > EU-Länder

GB aus der Liste entfernen und aktualisieren:

Diese Einstellung wird verwendet, um auf der Bestellabschlussseite einen Hinweis auf mögliche anfallende Zollgebühren anzuzeigen.
Nur wenn GB nicht mehr in dieser Liste enthalten ist, bekommen die Kunden den entsprechenden korrekten Hinweis.
Auch diverse Zusatzmodule könnten auf diese Einstellung zugreifen, daher immer sicherstellen, dass hier ausschließlich die aktuellen EU-Mitgliedsstaaten eingetragen sind.

Hinweis:
Für Neuinstallationen seit 1.5.6f ist diese Konfigurationsänderung bereits enthalten


Wie konfiguriere ich Geschenkgutscheine?

Um im Shop Geschenkgutscheine zu verkaufen, legen Sie die Geschenkgutscheine als spezielle Artikel an.

Gehen Sie dazu wie folgt vor

1)

Erstellen Sie eine Kategorie namens Geschenkgutscheine

2)

Erstellen Sie in dieser Kategorie nun Ihren ersten Geschenkgutschein, z.B. einen Gutschein im Wert von 100 Euro
Wichtig ist, dass dieser Artikel eine Artikelnummer hat, die mit GIFT beginnt. Das kennzeichnet einen Artikel als Geschenkgutschein.
Und wichtig ist, dass der Artikel als virtueller Artikel eingestellt wird.

Konfigurieren Sie diesen Artikel folgendermaßen:

Artikelstatus: lagernd
Erscheinungsdatum: leer lassen
Artikelhersteller: kein
Artikelname: Geschenkgutschein 100 Euro
Merkmale für Buttonlösung: frei wählbar, falls etwas spezielles als Zusatzinfo im letzten Bestellschritt erscheinen soll
Artikel ist kostenlos: Nein
Artikel ist Preis bitte anfragen: Nein
Preis durch Attribute festgelegt: Nein
Steuersatz: das für Sie passende auswählen
Preis: je nachdem, ob Sie Steuern verrechnen entsprechend eingeben, z.B. 100.00
Virtueller Artikel: Ja (WICHTIG)
Immer versandkostenfrei: Nein
Lagerbestand (Mengeneingabefeld) anzeigen: Ja
Mindestabnahme: 1
Maximalabnahme: 0
Abnahmeeinheit: 1
Beschreibung: Ihr Beschreibungstext
Lagerbestand: 999 oder irgendeinen hohen Wert
Artikelnummer: GIFT100
Artikelbild: Bild zu Ihrem Gutschein hochladen
Gewicht: leer lassen
Herstellerlink: leer lassen
Sortierung: wie Sie wollen

Nach diesem Muster können Sie nun noch weitere Gutscheine mit anderen Beträgen erstellen.

3)

Stellen Sie sicher, dass unter Module > Zusammenfassung das Modul Gutscheine (ot_gv) aktiv ist, falls nicht, installieren mit den Standardwerten. Eventuell nach Ihren Wünschen anpassen.
Lassen Sie Warteschlange für Gutscheinbestellungen auf true

4)

Wenn ein Kunde im Shop einen Geschenkgutschein kauft, überprüfen Sie ob die Bestellung bezahlt wurde.
Wenn ja können Sie den Gutschein freigeben (In der Administration oben links erscheint ein Button für die Gutscheinwarteschlange)
Durch die Freigabe wird der Wert des Gutscheins dem Kundenkonto des Kunden gutgeschrieben.
Dieses Guthaben kann der Kunde nun selbst für eine Bestellung verwenden oder es an eine andere Person weitersenden.
Wenn Geschenkgutschein im Shop aktiv sind, dann erscheint automatisch in der Sidebox Information ein Link zu den Geschenkgutschein FAQ, die das genau für die Kunden erklärt:
index.php?main_page=gv_faq

5)

Achten Sie daruf, dass Geschenkgutscheine nur für Kunden mit Kundenkonto sinnvoll und möglich sind. Falls Sie im Shop das Modul Bestellen ohne Kundenkonto integriert haben gilt:
Nur Kunden mit echtem Kundenkonto können Guthaben auf ihrem Konto haben und dieses auch einlösen.

6)

Geschenkgutscheine sind etwas völlig anderes als Aktionskupons!


Wie erstelle ich Mengenrabatte für einen Artikel?

Unter Webshop > Kategorien und Artikel beim jeweiligen Artikel rechts auf das grüne Dollarzeichen (Artikelpreismanager):

Hier erscheint nun eine Übersicht möglicherweise bereits definierter Preisreduktionen als reine Vorschau.
Um einen neuen Mengenrabatt anzulegen, die Bearbeitung starten:

Hier nun die Mengenrabatte grundsätzlich mal hinzufügen. Standardmäßig werden 5 Rabattstaffeln vorgesehen, wenn das zuwenig ist kann das unter Konfiguration > Layouteinstellungen > Anzahl leerer Rabatte erhöht werden.

Nun die gewünschten Rabatte eintragen. Dazu entweder einen fixen Preis ab einer bestimmten Anzahl hinterlegen (der Preis ist NETTO einzugeben!):

Oder eine prozentuale Reduktion:

Sollte der Artikel bereits als Sonderangebot einen reduzierten Preis haben und der Mengenrabatt soll vom Sonderpreis berechnet werden, kann von Ermäßigungstyp von Preis auf Ermäßigungstyp von Sonderpreis umgestellt werden.

Änderung mit dem Button „Preisänderung aktualisieren“ bestätigen.

Um die Mengenrabatte später wieder zu entfernen wieder in die Bearbeitung einsteigen und sowohl Mindeststückzahl als auch Ermäßigung auf 0 stellen.

Ein Zugriff auf diesen Artikelpreismanager ist natürlich auch unter Webshop > Artikelpreismanager möglich.


Mehrsprachige Ländernamen seit Zen Cart 1.5.5 deutsch

Eine neue Funktionalität in der deutschen Zen Cart Version seit 1.5.5 sind die mehrsprachigen Ländernamen.
In älteren Zen Cart Versionen sind die Ländernamen immer nur einsprachig auf englisch in der Tabelle countries hinterlegt.
Die Namen können dort natürlich geändert werden, z.B. Germany auf Deutschland umbenennen.
In mehrsprachigen Shops bekommen die Kunden die Ländernamen aber immer gleich angezeigt, der deutsche Besucher sieht Deutschland, der englische Besucher auch, weil es ja nur einen Ländernamen gibt.

Seit Zen Cart 1.5.5 deutsch werden die Ländernamen dagegen aus einer neuen Tabelle ausgelesen (countries_name), die die Ländernamen mehrsprachig hinterlegt hat. Immer wenn im Shop egal ob in Frontend oder im Admin ein Ländername angezeigt wird, dann wird berücksichtigt ob der Shop auf englisch oder auf deutsch geschaltet ist und der entsprechende Ländername aus der Tabelle countries_name herangezogen.
Das ermöglicht eine vollständige Mehrsprachigkeit, die dann auch in den Bestellungen in den Adressen oder im Adressbuch des Kunden durchgezogen wird.
Besucher, die die englische Version des Shops nutzen bekommen somit keine deutschen Begriffe mehr zu sehen.

Die Tabelle countries besteht natürlich weiter, sie ist auch ganz zentral, nur die in ihr hinterlegten Ländernamen werden nicht mehr berücksichtigt.

Beim Bearbeiten eines Landes steht ein neues Eingabefeld zur Verfügung, mit dem der Ländername für die im Shop aktiven Sprachen geändert werden kann.

Mitgeliefert werden die Ländernamen für die deutsche und englische Sprache, so dass nach der Installation die Tabelle countries_name bereits für alle Länder mit den entsprechenden Ländernamen vorausgefüllt ist. Die countries_id entspricht der countries_id in der Tabelle countries. Die language_id 1 kennzeichnet die englischen Namen, die language_id 43 die der deutschen Ländernamen:

Sollten im Shop nachträglich neue Sprachen hinzugefügt werden, dann werden danach die entsprechenden Ländernamen für diese Sprache in der Tabelle countries_name nicht vorhanden sein. Sie werden aber benötigt, um die Ländernamen in dieser Sprache anzeigen zu können.
Daher ist es nach dem Hinzufügen einer neuen Sprache nötig, die im Shop aktiven Länder unter Länder & Steuern > Länder zu überarbeiten und den gewünschten Ländernamen für die neu hinzugefügte Sprache nachzutragen.

Wenn im Shop viele Länder aktiv sind kann das mühsam sein
Um sofort auf einen Schlag Ländernamen für alle Länder in der neuen Sprache verfügbar zu haben, kann folgender SQL Befehl via Admin > Tools > SQL Patches installieren oder direkt via phpMyAdmin eingespielt werden:

In diesem Beispiel werden die Ländernamen für die polnische Sprache hinzugefügt. Polnisch hat normalerweise die language_id 48.
Wenn Sie eine andere Sprache hinzugefügt haben, dann ändern Sie natürlich die 48 auf die language_id Ihrer Sprache:

INSERT INTO `countries_name` (`countries_id`, `language_id`, `countries_name`) VALUES
(1, 48, 'Afghanistan'),
(2, 48, 'Albania'),
(3, 48, 'Algeria'),
(4, 48, 'American Samoa'),
(5, 48, 'Andorra'),
(6, 48, 'Angola'),
(7, 48, 'Anguilla'),
(8, 48, 'Antarctica'),
(9, 48, 'Antigua and Barbuda'),
(10, 48, 'Argentina'),
(11, 48, 'Armenia'),
(12, 48, 'Aruba'),
(13, 48, 'Australia'),
(14, 48, 'Austria'),
(15, 48, 'Azerbaijan'),
(16, 48, 'Bahamas'),
(17, 48, 'Bahrain'),
(18, 48, 'Bangladesh'),
(19, 48, 'Barbados'),
(20, 48, 'Belarus'),
(21, 48, 'Belgium'),
(22, 48, 'Belize'),
(23, 48, 'Benin'),
(24, 48, 'Bermuda'),
(25, 48, 'Bhutan'),
(26, 48, 'Bolivia'),
(27, 48, 'Bosnia and Herzegowina'),
(28, 48, 'Botswana'),
(29, 48, 'Bouvet Island'),
(30, 48, 'Brazil'),
(31, 48, 'British Indian Ocean Territory'),
(32, 48, 'Brunei Darussalam'),
(33, 48, 'Bulgaria'),
(34, 48, 'Burkina Faso'),
(35, 48, 'Burundi'),
(36, 48, 'Cambodia'),
(37, 48, 'Cameroon'),
(38, 48, 'Canada'),
(39, 48, 'Cape Verde'),
(40, 48, 'Cayman Islands'),
(41, 48, 'Central African Republic'),
(42, 48, 'Chad'),
(43, 48, 'Chile'),
(44, 48, 'China'),
(45, 48, 'Christmas Island'),
(46, 48, 'Cocos (Keeling) Islands'),
(47, 48, 'Colombia'),
(48, 48, 'Comoros'),
(49, 48, 'Congo'),
(50, 48, 'Cook Islands'),
(51, 48, 'Costa Rica'),
(52, 48, 'Côte d''Ivoire'),
(53, 48, 'Croatia'),
(54, 48, 'Cuba'),
(55, 48, 'Cyprus'),
(56, 48, 'Czech Republic'),
(57, 48, 'Denmark'),
(58, 48, 'Djibouti'),
(59, 48, 'Dominica'),
(60, 48, 'Dominican Republic'),
(61, 48, 'Timor-Leste'),
(62, 48, 'Ecuador'),
(63, 48, 'Egypt'),
(64, 48, 'El Salvador'),
(65, 48, 'Equatorial Guinea'),
(66, 48, 'Eritrea'),
(67, 48, 'Estonia'),
(68, 48, 'Ethiopia'),
(69, 48, 'Falkland Islands (Malvinas)'),
(70, 48, 'Faroe Islands'),
(71, 48, 'Fiji'),
(72, 48, 'Finland'),
(73, 48, 'France'),
(75, 48, 'French Guiana'),
(76, 48, 'French Polynesia'),
(77, 48, 'French Southern Territories'),
(78, 48, 'Gabon'),
(79, 48, 'Gambia'),
(80, 48, 'Georgia'),
(81, 48, 'Germany'),
(82, 48, 'Ghana'),
(83, 48, 'Gibraltar'),
(84, 48, 'Greece'),
(85, 48, 'Greenland'),
(86, 48, 'Grenada'),
(87, 48, 'Guadeloupe'),
(88, 48, 'Guam'),
(89, 48, 'Guatemala'),
(90, 48, 'Guinea'),
(91, 48, 'Guinea-bissau'),
(92, 48, 'Guyana'),
(93, 48, 'Haiti'),
(94, 48, 'Heard and Mc Donald Islands'),
(95, 48, 'Honduras'),
(96, 48, 'Hong Kong'),
(97, 48, 'Hungary'),
(98, 48, 'Iceland'),
(99, 48, 'India'),
(100, 48, 'Indonesia'),
(101, 48, 'Iran (Islamic Republic of)'),
(102, 48, 'Iraq'),
(103, 48, 'Ireland'),
(104, 48, 'Israel'),
(105, 48, 'Italy'),
(106, 48, 'Jamaica'),
(107, 48, 'Japan'),
(108, 48, 'Jordan'),
(109, 48, 'Kazakhstan'),
(110, 48, 'Kenya'),
(111, 48, 'Kiribati'),
(112, 48, 'Korea, Democratic People''s Republic of'),
(113, 48, 'Korea, Republic of'),
(114, 48, 'Kuwait'),
(115, 48, 'Kyrgyzstan'),
(116, 48, 'Lao People''s Democratic Republic'),
(117, 48, 'Latvia'),
(118, 48, 'Lebanon'),
(119, 48, 'Lesotho'),
(120, 48, 'Liberia'),
(121, 48, 'Libya'),
(122, 48, 'Liechtenstein'),
(123, 48, 'Lithuania'),
(124, 48, 'Luxembourg'),
(125, 48, 'Macao'),
(126, 48, 'Macedonia, The Former Yugoslav Republic of'),
(127, 48, 'Madagascar'),
(128, 48, 'Malawi'),
(129, 48, 'Malaysia'),
(130, 48, 'Maldives'),
(131, 48, 'Mali'),
(132, 48, 'Malta'),
(133, 48, 'Marshall Islands'),
(134, 48, 'Martinique'),
(135, 48, 'Mauritania'),
(136, 48, 'Mauritius'),
(137, 48, 'Mayotte'),
(138, 48, 'Mexico'),
(139, 48, 'Micronesia, Federated States of'),
(140, 48, 'Moldova'),
(141, 48, 'Monaco'),
(142, 48, 'Mongolia'),
(143, 48, 'Montserrat'),
(144, 48, 'Morocco'),
(145, 48, 'Mozambique'),
(146, 48, 'Myanmar'),
(147, 48, 'Namibia'),
(148, 48, 'Nauru'),
(149, 48, 'Nepal'),
(150, 48, 'Netherlands'),
(151, 48, 'Bonaire, Sint Eustatius and Saba'),
(152, 48, 'New Caledonia'),
(153, 48, 'New Zealand'),
(154, 48, 'Nicaragua'),
(155, 48, 'Niger'),
(156, 48, 'Nigeria'),
(157, 48, 'Niue'),
(158, 48, 'Norfolk Island'),
(159, 48, 'Northern Mariana Islands'),
(160, 48, 'Norway'),
(161, 48, 'Oman'),
(162, 48, 'Pakistan'),
(163, 48, 'Palau'),
(164, 48, 'Panama'),
(165, 48, 'Papua New Guinea'),
(166, 48, 'Paraguay'),
(167, 48, 'Peru'),
(168, 48, 'Philippines'),
(169, 48, 'Pitcairn'),
(170, 48, 'Poland'),
(171, 48, 'Portugal'),
(172, 48, 'Puerto Rico'),
(173, 48, 'Qatar'),
(174, 48, 'Réunion'),
(175, 48, 'Romania'),
(176, 48, 'Russian Federation'),
(177, 48, 'Rwanda'),
(178, 48, 'Saint Kitts and Nevis'),
(179, 48, 'Saint Lucia'),
(180, 48, 'Saint Vincent and the Grenadines'),
(181, 48, 'Samoa'),
(182, 48, 'San Marino'),
(183, 48, 'Sao Tome and Principe'),
(184, 48, 'Saudi Arabia'),
(185, 48, 'Senegal'),
(186, 48, 'Seychelles'),
(187, 48, 'Sierra Leone'),
(188, 48, 'Singapore'),
(189, 48, 'Slovakia (Slovak Republic)'),
(190, 48, 'Slovenia'),
(191, 48, 'Solomon Islands'),
(192, 48, 'Somalia'),
(193, 48, 'South Africa'),
(194, 48, 'South Georgia and the South Sandwich Islands'),
(195, 48, 'Spain'),
(196, 48, 'Sri Lanka'),
(197, 48, 'St. Helena'),
(198, 48, 'St. Pierre and Miquelon'),
(199, 48, 'Sudan'),
(200, 48, 'Suriname'),
(201, 48, 'Svalbard and Jan Mayen Islands'),
(202, 48, 'Swaziland'),
(203, 48, 'Sweden'),
(204, 48, 'Switzerland'),
(205, 48, 'Syrian Arab Republic'),
(206, 48, 'Taiwan'),
(207, 48, 'Tajikistan'),
(208, 48, 'Tanzania, United Republic of'),
(209, 48, 'Thailand'),
(210, 48, 'Togo'),
(211, 48, 'Tokelau'),
(212, 48, 'Tonga'),
(213, 48, 'Trinidad and Tobago'),
(214, 48, 'Tunisia'),
(215, 48, 'Turkey'),
(216, 48, 'Turkmenistan'),
(217, 48, 'Turks and Caicos Islands'),
(218, 48, 'Tuvalu'),
(219, 48, 'Uganda'),
(220, 48, 'Ukraine'),
(221, 48, 'United Arab Emirates'),
(222, 48, 'United Kingdom'),
(223, 48, 'United States'),
(224, 48, 'United States Minor Outlying Islands'),
(225, 48, 'Uruguay'),
(226, 48, 'Uzbekistan'),
(227, 48, 'Vanuatu'),
(228, 48, 'Vatican City State (Holy See)'),
(229, 48, 'Venezuela'),
(230, 48, 'Viet Nam'),
(231, 48, 'Virgin Islands (British)'),
(232, 48, 'Virgin Islands (U.S.)'),
(233, 48, 'Wallis and Futuna Islands'),
(234, 48, 'Western Sahara'),
(235, 48, 'Yemen'),
(236, 48, 'Serbia'),
(238, 48, 'Zambia'),
(239, 48, 'Zimbabwe'),
(240, 48, 'Åland Islands'),
(241, 48, 'Palestine, State of'),
(242, 48, 'Montenegro'),
(243, 48, 'Guernsey'),
(244, 48, 'Isle of Man'),
(245, 48, 'Jersey'),
(246, 48, 'South Sudan'),
(247, 48, 'Curaçao'),
(248, 48, 'Sint Maarten');

Danach hat man bei jedem Land für die polnische Sprache zumindest mal die englischen Ländernamen hinterlegt und kann die Länder, die für den Shop relevant sind danach in der Administration für die polnische Sprache überarbeiten.

Auch wenn ein Update von 1.5.4 und älter auf 1.5.7 durchgeführt wird, werden nur die deutschen und englischen Ländernamen mitgeliefert.
Sollte der zu aktualisierende Shop noch weitere Sprachen als deutsch und englisch verwenden, dann müssen Sie nach dem Update die Ländernamen für Ihre weiteren Sprachen so wie oben beschrieben nachtragen.


Welche PHP Versionen sind für Zen Cart deutsch geeignet?

Hier eine Übersicht mit welcher PHP Version welche deutsche Zen Cart Version kompatibel ist:

1.5.7j deutsch

Minimum: PHP 8.0.x
Maximum: PHP 8.3.x

Empfohlen: PHP 8.3.x

1.5.7i deutsch

Minimum: PHP 8.0.x
Maximum: PHP 8.3.x

Empfohlen: PHP 8.3.x

1.5.7h deutsch

Minimum: PHP 8.0.x
Maximum: PHP 8.2.x

Empfohlen: PHP 8.2.x

1.5.7g deutsch

Minimum: PHP 7.4.x
Maximum: PHP 8.1.x

Empfohlen: PHP 8.1.x

NICHT geeignet: PHP 8.2.x

1.5.7f deutsch

Minimum: PHP 7.3.x
Maximum: PHP 8.0.x

Empfohlen: PHP 8.0.x

NICHT geeignet: PHP 8.1.x

1.5.6f deutsch

Minimum: PHP 7.1.x
Maximum: PHP 7.4.x

Empfohlen: PHP 7.4.x

NICHT geeignet: PHP 8.x

1.5.6e deutsch

Minimum: PHP 7.1.x
Maximum: PHP 7.3.x

Empfohlen: PHP 7.3.x

NICHT geeignet: PHP 7.4.x

1.5.6d deutsch

Minimum: PHP 5.6.x
Maximum: PHP 7.3.x

Empfohlen: PHP 7.3.x

NICHT geeignet: PHP 7.4.x

1.5.5f deutsch

Minimum: PHP 5.6.x
Maximum: PHP 7.1.x

Empfohlen: PHP 7.1.x

NICHT geeignet: PHP 7.2.x oder PHP 7.3.x

1.5.5e deutsch

Minimum: PHP 5.4.x
Maximum: PHP 7.0.x

Empfohlen: PHP 5.6.x oder PHP 7.0.x

NICHT geeignet: PHP 7.1.x oder PHP 7.2.x oder PHP 7.3.x


Anleitung zum Umzug eines bestehenden Shops auf einen anderen Server

Sie wollen Ihren Shop auf einen neuen Server überspielen?
Sie wollen Ihren lokal unter XAMPP installierten Shop nun auf einen echten Webserver spielen?

Dann gehen Sie folgendermaßen vor:

  1. Datenbank des jetzigen Shops sichern z.B. mit phpMyAdmin
  2. Alle Dateien des jetzigen Shops per FTP runterladen
  3. Auf dem neuen Server eine neue Datenbank anlegen
  4. Auf dem neuen Server in die neue Datenbank die Datenbanksicherung des alten Shops einspielen
  5. Auf dem neuen Server einen Ordner anlegen, wo der neue Shop laufen soll (z.B. shop)
  6. In folgenden Dateien der heruntergeladenen Sicherung die Pfade, URL und Datenbankangaben auf die des neuen Servers ändern:
    – includes/configure.php
    – DEINADMIN/includes/configure.php
  7. Komplette Shopsicherung mit den geänderten configure.php in das zuvor angelegte Verzeichnis auf den neuen Server laden
  8. Überprüfen der Berechtigungen der verschiedenen Ordner am neuen Server. Gleich vergeben wie im bisherigen Shop.
  9. Fertig.

Sollte im Shop irgendein SEO Modul verwendet werden, muss eventuell zusätzlich noch in der .htaccess im Shopverzeichnis der Pfad angepasst werden.


utf-8 ohne BOM

Seit Zen-Cart 1.3.8 müssen die deutschen Sprachdateien (includes/languages/german.php und alle weiteren Dateien unter includes/languages/german) bei Änderungen immer im Format utf-8 ohne BOM abgespeichert werden. Anderenfalls werden Umlaute nicht richtig dargestellt oder es kommt zum Erscheinen von leeren weißen Seiten (blank pages).
Beim Bearbeiten von Sprachfiles also immer einen Texteditor verwenden, der in der Lage ist, in diesem Format zu speichern. Der normale Windows Editor kann das nicht!

Empfehlenswerte Editoren:

Notepad++
http://notepad-plus.sourceforge.net/de/site.htm
In Notepad++ muss dann Folgendes eingestellt werden:
Menu:
–> Format
–> Kodiere als ANSI
–> Kodiere als UTF-8 (ohne BOM)

UltraEdit
http://www.ultraedit.com
In Ultraedit lässt sich das bei „Speichern unter“ auswählen.

Detaillierte Informationen zum Format utf-8 und BOM:
http://de.wikipedia.org/wiki/UTF-8
http://de.wikipedia.org/wiki/Byte_Order_Mark


Wie finde ich heraus in welcher Sprachdatei ein bestimmter Text definiert ist?

In der Zen-Cart Administration gibt es ein sehr mächtiges Tool unter
Admin > Tools > Developers Toolkit
Damit lässt sich schnell finden, wo sich ein bestimmter Text versteckt.

Beispiel:
Im Shop taucht der Begriff Seite 2 auf. Der soll auf etwas anderes geändert werden.

In der Administration auf Tools > Developers Toolkit und den Suchbegriff unten bei Alle Dateien durchsuchen eingeben:

Umschalten auf „Alle Dateien – Webshop“ und auf suchen.

Es werden alle Dateien aufgelistet, in denen der Text definiert ist. In diesen Dateien dann den Text wie gewünscht ändern.


Wie erstelle ich eine neue Define Page?

Wenn die mitgelieferten Inhaltsseiten unter Tools > Seiteneditor nicht ausreichen, kann man leicht weitere eigene Seiten hinzufügen, die dann unter Tools > Seiteneditor editierbar sind.

In diesem Beispiel wird eine neue Define Page namens Beispielseite angelegt, die dann im Shop mit folgendem Link erreichbar sein wird:
meinshop.de/index.php?main_page=beispielseite

Um eine neue Define Page anzulegen, sind immer folgende Dateien erforderlich:
(DEINTEMPLATE steht dabei für den Namen des im Shop aktiven Templates)

  • includes/extra_datafiles/beispielseite_filenames.php
    includes/languages/german/DEINTEMPLATE/beispielseite.php
    includes/languages/german/extra_definitions/DEINTEMPLATE/beispielseite.php
    includes/languages/german/html_includes/define_beispielseite.php
    includes/languages/german/html_includes/DEINTEMPLATE/define_beispielseite.php
    includes/languages/english/DEINTEMPLATE/beispielseite.php
    includes/languages/english/extra_definitions/DEINTEMPLATE/beispielseite.php
    includes/languages/english/html_includes/define_beispielseite.php
    includes/languages/english/html_includes/DEINTEMPLATE/define_beispielseite.php
    includes/modules/pages/beispielseite/header_php.php
    includes/templates/DEINTEMPLATE/templates/tpl_beispielseite_default.php

Um die Funktionalität zu nutzen, die neue Seite admingesteuert ein- und auschalten zu können, muss sie nun noch unter Konfiguration > Eigene Seiten hinzugefügt werden.
Dazu folgenden Befehl via phpMyAdmin einspielen:

INSERT IGNORE INTO configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, use_function, set_function) VALUES
('Define Beispielseite Status', 'DEFINE_BEISPIELSEITE_STATUS', '1', 'Enable the Defined Beispielseite Link/Text?0= Link ON, Define Text OFF1= Link ON, Define Text ON2= Link OFF, Define Text ON3= Link OFF, Define Text OFF', 25, 100, NULL, 'zen_cfg_select_option(array(0, 1, 2, 3), ');
INSERT IGNORE INTO configuration_language (configuration_title, configuration_key, configuration_language_id, configuration_description, last_modified, date_added) VALUES
('Beispielseite', 'DEFINE_BEISPIELSEITE_STATUS', 43, 'Den Inhalt für diese Seite können Sie über Tools->Seiteneditor bearbeiten. Zuständige Datei: define_beispielseite.php BESCHREIBUNG:Link EIN bedeutet, dass der Link in der Infobox sichtbar ist.Text AUS bedeutet, dass der definierte Seitentext nicht eingeblendet wird. OPTIONEN:0= Link EIN, Text AUS1= Link EIN, Text EIN2= Link AUS, Text EIN3= Link AUS, Text AUS', now(), now());

Die Dateien sind angehängt und zeigen die benötigte Struktur und den benötigten Inhalt.
Nach diesem Prinzip können leicht beliebige neue Seiten erstellt werden,
Soll die Seite z.B. Batterieverordnung heißen, dann die entsprechenden Namen der Dateien und die enthaltenen Konstanten entsprechend ändern.

Um sich die Arbeit zu erleichtern kann unter Windows der „Define Pages Generator“ verwendet werden, der die benötigten Dateien automatisch generiert.
Dieses Tool generiert dabei nur die englischen Sprachfiles, die entsprechenden deutschen müssen manuell ergänzt werden.


DEINTEMPLATE? Was ist das Override System?

Der Aufwand für ein späteres Update reduziert sich ganz enorm, wenn man von Anfang an, das Override System nutzt.
Also nie irgendwelche Coredateien bei Änderungen einfach überspielen, sondern wo immer es möglich ist, für geänderte Dateien den jeweiligen Override-Ordner verwenden.
Ebenfalls ratsam: Wenn irgendwelche Zusatzmodule eingebaut werden, dann notieren, welche man eingebaut hat. Und auch Module immer nach dem Override-Prinzip einbauen, gute Module machen das ohnehin, es wimmelt von Ordnern namens DEINTEMPLATE…

Die Override-Ordner heißen immer so, wie das Template, das man im Shop aktiv hat, in diesem Beispiel nenn ichs mal classic.
Zen-Cart schaut immer erst, ob eine benötigte Datei im jeweiligen Override-Ordner vorhanden ist. Falls ja, wird diese verwendet. Falls nein, wird die entsprechende Originaldatei verwendet.

Dieses Override System steht für folgende Dinge zur Verfügung:

1) Sprachdateien
Die werden wohl am häufigsten angepasst und mit eigenen Texten versehen.
Ändere ich z.B. einen Text in der includes/languages/german.php, dann überschreibe ich nicht die bestehende damit, sondern lege sie nach:
includes/languages/classic/german.php
Ändere ich einen Text in der includes/languages/german/header.php, dann überschreibe ich nicht die bestehende damit, sondern lege sie nach:
includes/languages/german/classic/header.php
Ändere ich einen Text in der includes/languages/german/extra_definitions/rl.vat_info.php, dann überschreibe ich nicht die bestehende damit, sondern lege sie nach:
includes/languages/german/extra_definitions/classic/rl.vat_info.php
Macht man später mal ein Update gehen keinerlei Änderungen in den Sprachfiles verloren, weil man ja jede Änderung im Overrideordner der Sprachfiles liegen hat und die werden beim Update nicht überschrieben.

2) Template
Die Originaltemplates liegen in includes/templates/template_default
Die Struktur, die man dort vorfindet (Unterordner common, images, css, jscript, sideboxes usw.) lässt sich komplett ins eigene Template übernehmen.
Der erste Schritt zu einem eigenen Template ist also, in includes/templates/classic exakt diese Struktur zu verwenden und geänderte Templatedateien nie in includes/templates/template_default zu spielen, sondern immer in includes/templates/classic
Macht man später mal ein Update gehen keinerlei Änderungen im eigenen angepassten Template verloren, weil man ja jede Änderung im Overrideordner des Templates liegen hat und die werden beim Update nicht überschrieben.

3) includes/modules
Viele Module ändern Funktionalitäten in Dateien in includes/modules
Gut gemachte Module werden immer das Override System nutzen und geänderte Corefiles dafür in includes/modules/classic legen.
Auch hier wird bei einem Update dann nichts überschrieben

4) includes/extra_datafiles
Auch hier gehören geänderte Dateien nicht überschrieben, sondern nach:
includes/extra_datafiles/classic

5) includes/init_includes
Hier steht ein kompletter Override Ordner includes/init_includes/overrides zur Verfügung, in den geänderte Dateien aus includes/init_includes gelegt werden sollten.

Sollte man bisher immer Originaldateien verändert haben, dann wäre ein Update ein guter Zeitpunkt, den Shop VORHER wo immer es möglich ist, nach dem Override Prinzip zu organisieren.

Seite 1 von 1
generiert von https://www.zen-cart-pro.at/themen/grundlegende-infos/ am 5. März 2026