Typo3 - Shop: Unterschied zwischen den Versionen

Aus Wikizone
Wechseln zu: Navigation, Suche
 
(9 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
Es gibt verschiedene Möglichkeiten einen Shop in Typo3 einzubinden. Standardmäßig gibt es die Extension tt_products. Man kann aber auch größtere Shops wie OS-Commerce oder XT-Commerce einbinden.  
 
Es gibt verschiedene Möglichkeiten einen Shop in Typo3 einzubinden. Standardmäßig gibt es die Extension tt_products. Man kann aber auch größtere Shops wie OS-Commerce oder XT-Commerce einbinden.  
 +
== Bestellvorgang ==
 +
Hier werden die Schritte des Bestellvorgangs und damit die benötigten Teile des Templates geschildert.
 +
  
 
== tt_products ==
 
== tt_products ==
Zeile 176: Zeile 179:
 
   </p>
 
   </p>
 
<!-- ###display_variant5_isNotSingle### -->
 
<!-- ###display_variant5_isNotSingle### -->
 +
      <!-- ###ITEM_SINGLE### end -->
 +
</pre>
 +
'''Warenkorb:'''
 +
<pre>
 +
      <input type="Submit" name="order2" value="In den Warenkorb">
 +
      <input type="button" name="warenkorb" value="zum Warenkorb" onclick="self.location.href='index.php?id=###PID_BASKET###'">
 +
    </form>
 +
  !-- ###ITEM_LIST### end -->
 +
<!-- ###ITEM_CATEGORY_AND_ITEMS### end -->
 
</pre>
 
</pre>
 +
 +
'''weitere Marker:'''
 +
###PRODUCT_SUBTITLE###
  
 
=== weitere Features ===
 
=== weitere Features ===
Zeile 188: Zeile 203:
 
=== Updates ===
 
=== Updates ===
 
Bei Updates unbedingt fh_libary und tables mit Upgraden
 
Bei Updates unbedingt fh_libary und tables mit Upgraden
 +
 +
== Shop-Template ==
 +
 +
=== Zahlungsart abhängig von der Lieferungsart einstellen ===
 +
 +
Mit folgendem Code
 +
      40.excludePayment = 10,40
 +
die Lieferungsart 40 läßt im Beispiel die Zahlungsart 10 und 40 nicht zu.
 +
 +
=== verschiedene Layouts auf einer Seite ===
 +
In HB-Tech.de eingesetzt um auf der Startseite ein zweites Layout für die Topseller zu verwirklichen.
 +
Problem:
 +
 +
Das Layout der Listenansicht wird sowohl für die Standardansicht als auch für Angebote etc. verwendet. Ich möchte aber ein schöneres Template für die Topseller haben.
 +
 +
 +
Lösung:
 +
 +
Einfach ein zweites HTML-Template anlegen, daß nur die benötigten Teile enthält und auf der entsprechenden Seite die Voreinstellungen für den Shop in einem zweiten TypoScript-Template überschreiben.
 +
 +
Beispiel:
 +
=== TypoScript für Topseller ===
 +
Das Skript wird auf der jeweiligen Topseller Seite als Template aufgesetzt um hier die entsprechenden WErte zu überschreiben.
 +
 +
==== Constants ====
 +
<pre>
 +
### Highlights ###
 +
plugin.tt_products.maxW_list = 130
 +
plugin.tt_products.maxH_list = 80
 +
plugin.tt_products.file.templateFile >
 +
 +
[globalVar = GP:L = 1]
 +
plugin.tt_products.file.templateFile = fileadmin/templates/shop/shop_aktionen_de.html
 +
[else]
 +
plugin.tt_products.file.templateFile = fileadmin/templates/shop/shop_aktionen_en.html
 +
[global]
 +
</pre>
 +
==== Setup ====
 +
<pre>
 +
page.10.template.file > 
 +
page.10.template.file = fileadmin/templates/index.html
 +
</pre>
 +
 +
==== HTML-Template für topseller ====
 +
<pre>
 +
<nowiki>
 +
<!-- ***************************** Produkt-Liste****************************************-->
 +
<h3>ITEM_LIST_TEMPLATE</h3>
 +
<!-- ###ITEM_LIST_TEMPLATE### begin
 +
Dieser Bereich ist für die Listenansicht der Produkte. Wird auch für Suchergebnisse genutzt.
 +
-->
 +
<div id="shop_aktionen">
 +
  <!-- ###ITEM_CATEGORY_AND_ITEMS### begin -->
 +
    <!-- ###ITEM_LIST### begin -->
 +
      <form method="post" action="###FORM_URL###" name="###FORM_NAME###">
 +
        <!-- ###ITEM_SINGLE### begin-->
 +
          <div class="shop_item_single">
 +
            <div class="shop_item_descr">
 +
              <h2><!--###LINK_ITEM###-->###PRODUCT_TITLE###<!--###LINK_ITEM###--></h2>
 +
            </div>
 +
            <div class="shop_image">###PRODUCT_IMAGE###</div>
 +
            <div class="shop_order_box">
 +
              <div class="shop_prize">
 +
                ###PRICE_NO_TAX### Euro
 +
              </div>
 +
            </div> <!-- Ende shop_order_box -->
 +
            <span class="stopFloat"></span>
 +
          </div> <!-- Ende shop_item_single -->
 +
        <!-- ###ITEM_SINGLE### end -->
 +
      </form>
 +
    <!-- ###ITEM_LIST### end -->
 +
  <!-- ###ITEM_CATEGORY_AND_ITEMS### end -->
 +
</div>
 +
<!-- ###ITEM_LIST_TEMPLATE### end -->
 +
<!--*****************************************************************************************-->
 +
 +
</nowiki>
 +
</pre>
 +
 +
=== Datenblatt als externer Link (_blank) ===
 +
Bis V2.4.11 keine bessere Möglichkeit gefunden als
 +
hart Codiert in der Datei:
 +
 +
/typo3conf/ext/tt_products/lib/class.tx_ttproducts_single_view.php
 +
 +
Zeile 218:
 +
$wrappedSubpartArray['###LINK_DATASHEET###']= array('<a target="_blank" href="uploads/tx_ttproducts/datasheet/'.$datasheetFile.'">','</a>');
 +
 +
== Commerce ==
 +
Ein neuerer Typo3 Shop ist commerce. Hier ein paar Schnipsel die vielleicht mal nützlich sind.
 +
 +
 +
TYPO3 Blogger
 +
 +
TYPO3 News, Development & Insider Infos
 +
HDNET - TYPO3 Agentur
 +
 +
    * Home
 +
    * Blogger
 +
    * Photos
 +
    * Kontakt/Werbung
 +
    * Impressum
 +
 +
12. Dezember 2008
 +
Türchen 12: Commerce Menü Integration
 +
Tim Lochmüller in TYPO3
 +
 +
Gestern hat Frank erklärt wie man Extension Inhalte leicht durch Redakteure verwalten kann. Heute will ich euch eine Commerce Menü Integration Nahe bringen…
 +
 +
Um ein Commerce Menü zu integrieren brauchen wir natürlich erst einmal ein normales Menü. In unserem Beispiel lösen wir dies mittels eines normalen TMENU:
 +
 +
lib.mainmenu = HMENU
 +
lib.mainmenu {
 +
        special = directory
 +
        special.value = xx (Eure Root ID oder ohne special Anweisung)
 +
 +
        1 = TMENU
 +
        1 {
 +
                wrap = <ul class="mainmenu">|</ul>
 +
                noBlur = 1
 +
                NO.ATagTitle.field = subtitle // title
 +
                NO.allWrap =  <li>|</li>
 +
                NO.ATagParams = class="no"
 +
                NO.stdWrap.htmlSpecialChars = 1
 +
 +
                ACT = 1
 +
                ACT.wrapItemAndSub = <li>|</li>
 +
                ACT.ATagTitle.field = subtitle // title
 +
                ACT.ATagParams = class="act"
 +
              ACT.stdWrap.htmlSpecialChars = 1
 +
        }
 +
        2 < .1
 +
        3 < .1
 +
}
 +
 +
Auch das Commerce Menü ist ein normales TMENU, welches aus einer userFunction aus Commerce gespeist wird:
 +
 +
lib.catmenu = HMENU
 +
lib.catmenu {
 +
        special = userfunction
 +
        special.userFunc = user_tx_commerce_catmenu_pub->init
 +
        special {
 +
                category = {$plugin.tx_commerce_lib.catUid}
 +
                showProducts = 1
 +
                overridePid = {$plugin.tx_commerce_lib.overridePid}
 +
        }
 +
 +
        1 = TMENU
 +
        1 {
 +
                wrap = <ul class="catmenu">|</ul>
 +
                itemArrayProcFunc = user_tx_commerce_catmenu_pub->clear
 +
                expAll = 1
 +
                noBlur = 1
 +
                NO.wrapItemAndSub = <li>|</li>
 +
                ACT = 1
 +
                ACT.wrapItemAndSub = <li>|</li>
 +
        }
 +
 +
        2 < .1
 +
        3 < .1
 +
}
 +
 +
Und nun kommt der Clou der Integration. Per Condition hängen wir das Commerce Menü einfach in unseres bestehendes TYPO3 Menü ein. Ihr müsst natürlich die passende Seiten ID eintragen (xxx) um das Menü zu intigrieren.
 +
 +
[PIDinRootline = xxx]
 +
lib.mainmenu.1 {
 +
        ACT {
 +
              after.cObject = HMENU
 +
              after.cObject < lib.catmenu
 +
        }
 +
}
 +
[END]
 +
 +
Danke Alex für den Code!
 +
Viel Spaß damit.
 +
 +
Von Tim Lochmüller, Adventskalender 2008

Aktuelle Version vom 27. Februar 2009, 12:15 Uhr

Es gibt verschiedene Möglichkeiten einen Shop in Typo3 einzubinden. Standardmäßig gibt es die Extension tt_products. Man kann aber auch größtere Shops wie OS-Commerce oder XT-Commerce einbinden.

Bestellvorgang[Bearbeiten]

Hier werden die Schritte des Bestellvorgangs und damit die benötigten Teile des Templates geschildert.


tt_products[Bearbeiten]

neuere Versionen benötigen einige zusäztzliche Extension z.B. die tables,static_info_tables, oder fh_libary damit alles funktiert. Bessere Funktionalitäten erhält man noch mit den Extensions rtehtmlarea und weiteren (je nach Version).

wichtige Bedienhinweise (Version 2.4)[Bearbeiten]

  • Das 'in Stock' Feld muß ausgefüllt werden damit das Produkt angezeigt wird. Der Wert -1 bedeutet 'immer vorätig'
  • Es sollten immer Bruttopreise eingegeben

wichtige Einstellungen (Version 2.4)[Bearbeiten]

  • Benutze ein Multicollumn Template (displayBasketColumns=1 oder höher) auch wenn du nur 1 Spalte im Listentemplate hast.
  • Wenn du Varianten (Farbe, Größe, etc.) verwenden willst müssen die entsprechenden Constanten auf 0 gesetzt werden (selectColors, selectSize), damit die Anzahlberechnung in der Produkt Liste richtig berechnet wird.
  • Calculation Scripte sollten nur mit der priceTax und der TAXpercentage Variable arbeiten. Die priceNoTax Variable wird ab August 2008 gelöscht. Für die Berechnung stehen die globalen Variablen $this->calculatedArray und $this->itemArray zur Verfügung.
  • Rabbat - kann man an 3 Stellen anlegen:
    • Discount Feld für einen frontend user (Prozentwert)
    • price2 Feld für spezielle feuser Gruppen o.ä. Das macht man im TypoScript via IF-statement
    • discountprice calculation - Abhängig vom Wert der produktanzahl mit spezial Preis. Verfügbar für die Frontend user gruppe discountGroupName
  • Angebote - Plugincode LISTOFFERS
  • Highlights - Plugincode LISTHIGHLIGHTS
  • AGB - Es muß im Bezahlprozess den AGBs zugestimmt werden.
    • Diese werden auf einer Seite angelegt und im TS mit PIDagb verwiesen. Als Link kann man auf verschiedenen Seiten als Ziel agbtarget angeben.
    • Zweite Möglichkeit: AGBs als pdf Dokument auf den Server stellen. Dies wird an die Kundenmail angehängt.

Wichtige TypoScript-Einstellungen[Bearbeiten]

TS Warum
plugin.domain = myDomain.com kann wichtig für die ordnungsgemäße Funktion sein
plugin.tt_products.displayBasketColumns = 1 ToDo
plugin.tt_products.templateFile = fileadmin/myhtmltemplate.tmpl Template File
plugin.tt_products.pid_list = 22,24,45 Wo sind die Produkte gespeichert (Default die aktuelle Seite d.h. wo sich das Plugin befindet)

tt_products Schritt für Schritt[Bearbeiten]

Extensions installieren[Bearbeiten]

Installieren Sie zunächst die Extension 'Table Library' (table) und anschließend 'Shop system' (tt_products) aus dem Extension Repository jeweils in der letzten Version.

Sie benötigen außerdem die Extension sr_feuser_register zur Anmeldung an den Shop. Bitte informieren Sie sich über Anpassungen an dieser Extension in der zugehörigen Dokumentation.

Eine neue Seite für den Shop[Bearbeiten]

Erstellen Sie eine neue Seite für den Shop

Plugin tt_products einfügen[Bearbeiten]

Fügen Sie nun über 'Seiteninhalt anlegen' auf dieser Seite das Plugin Produkte ein.

Für die Startseite des Shops wählen Sie 'Produkte:Liste', da die Produkte hier gelistet werden sollen. Da noch kein Sysordner angelegt wurde, kann im Moment noch keine Seite in das Feld 'Ausgangspunkt' eingetragen werden. Dies erfolgt in einem späteren Schritt.

Seiten für den Shop erstellen[Bearbeiten]

Auf die gleiche Art und Weise erstellen Sie nun weitere Seiten.

Für die Seite Warenkorb wählen Sie die Plugin Option Anzeigentyp: Warenkorb: Inhalt

Für die Seite Kasse wählen Sie die Plugin Option Anzeigentyp: Warenkorb: Eingabe Bezahlung

Für die Seite Bestätigung wählen Sie die Plugin Option Anzeigentyp: Warenkorb: Bestellung abschließen

Für die Seite Auftragsstatus wählen Sie die Plugin Option Anzeigentyp: Bestellung: Verwaltung

Für die Seite Benutzerregistrierung wählen Sie die Plugin Option Anzeigentyp: Warenkorb: Eingabe Kundendaten


Plugin sr_feuser_register einfügen[Bearbeiten]

Auf der Seite Benutzerregistrierung müssen Sie nun, wie oben beschrieben, ein zweites Plugin einfügen:

Erstellen Sie nun einen weiteren Seiteninhalt und fügen Sie dort das Plugin für die Frontend Benutzer Registrierung ein. Wählen Sie aus der Liste der Erweiterungen 'Benutzer – Registrierung' aus und speichern Sie die Seite. Eine Dokumentation in englischer Sprache finden Sie unter Typo3.org, Documentation Matrix 'Front End User Registration'.

Template für die Shopseite[Bearbeiten]

Erstellen Sie nun ein neues Basis Template für Ihre Shopseite und binden es ins Haupttemplate ein. Geben Sie als erstes den Pfad zum HTML Template ein (siehe Abschnitt wichtige TS Einstellungen). Als Ausgangspunkt bieten sich die Beispieltemplates aus dem Extension Ordner an.

Sysordner erstellen[Bearbeiten]

Erstellen Sie nun eine neue Seite unterhalb Ihrer Shop-Seite. Der Kopf mit den beiden Pfeilen in Abb. 10 bedeutet in diesem Fall, dass die Shopseite in einem Bereich mit Zugriff nur für bestimmte Benutzergruppen eingerichtet wurde. Wenn der Shop sich im allgemeinen Bereich mit Zugriff für alle Benutzer befindet, werden der Kopf und die Pfeile nicht angezeigt.

Wählen Sie den Seitentyp 'Sysordner' für diese Seite aus. Wählen Sie als Seitentitel den Seitentitel 'Artikel' aus, da hier Ihre Produkte und Artikel angelegt werden. Klicken Sie anschließend auf Speichern.

Produkte und Artikel anlegen[Bearbeiten]

Sie können nun einen Datensatz, also ein Produkt oder einen Artikel anlegen. Klicken Sie auf 'Neuen Datensatz anlegen'.


Wählen Sie 'Produkte' aus und das Fenster zum Anlegen der Produkte öffnet sich.


An dieser Stelle ist es wichtig, sich den Unterschied zwischen Artikel und Produkt vor Augen zu führen. Ein Artikel ist eine Variante eines Produktes. Wenn Sie z. B. T-Shirts vertreiben, dann ist das T-Shirt mit dem V-Ausschnitt das Produkt. Der Artikel wäre dann das T-Shirt in unterschiedlicher Farbe und Größe.

Das Produkt ist also ein Oberbegriff, wenn es mehrere Variationen davon gibt, spricht man hier von Artikeln.

Wenn Sie keine Variationen haben, dann verwenden Sie nur Produkte, nicht Artikel.

Achten Sie darauf, dass Sie 'Produkte Artikel' auswählen, wenn Sie Artikel anlegen und nicht 'Produkte'. Denn nur so können Sie für jede einzelne Variante einen eigenen Titel und Preise eingeben.

Bitte verwechseln Sie das nicht mit den Kategorien. Denn die Kategorie ist wiederum die Produktgruppe. Im Beispiel wären das dann “alle T-Shirts” oder “Bekleidung”. Je nachdem, wie Sie Ihre Produkte kategorisieren möchten.


Unterhalb des Feldes 'Faktor für Maßeinheit' gibt es noch weitere Felder für Bemerkungen und zum Einfügen von Bildern. Legen Sie nun Ihr Produkt an.

Hier können Sie Ihre Produkte eingeben und speichern. Bitte nehmen Sie hier keine Eintragungen in den als Variante 1-4 ausgewiesenen Feldern vor.

Diese Felder betreffen die Artikel - Artikel sind keine Produkte, sondern Variationen von Produkten.

Wenn ein Produkt angelegt wird (T-Shirt mit V-Ausschnitt), speichern Sie dies als Produkt ab.

Wenn Sie dieses T-Shirt in den Größen 'Groß', 'Mittel' und 'Klein' zu verschiedenen Preisen verkaufen wollen, dann legen Sie dazu Artikel an, nämlich diese drei Größen. Wenn Sie also 'Datensatz anlegen', 'Produkte Artikel' auswählen, geben Sie dort alles ein und über die Auswahlbox 'Produkt' wählen Sie dann das Produkt T-Shirt mit V-Ausschnitt aus. Außerdem kann man hier noch die Farbe, oder was auch immer gewünscht ist, angeben.

Das zunächst angelegte Produkt T-Shirt mit V-Ausschnitt, dem ja keine Variationen übergeben wurden, überschreiben Sie mit den neuen Angaben.

D. h. eigentlich ist das Produkt quasi das Elternelement. Die Grund-Eigenschaften werden auf den Artikel vererbt.

Wenn Sie das Shirt also in 10 Farben und 3 Größen haben, sind das ein Produkt und 30 Artikel.

Die Angaben in der Artikeltabelle haben Vorrang vor den Einträgen in der Produktetabelle. Nur die Einträge, die in der Produkttabelle stehen, aber nicht in der Artikeltabelle, werden dann für jeden Artikel zu diesem Produkt zugewiesen.

Ausgangspunkt der Seite festlegen[Bearbeiten]

Bitte gehen Sie jetzt wieder zu Ihrer ersten Shop-Seite und wählen Bearbeiten (Bleistiftsymbol) aus.

Tragen Sie jetzt in das Feld Ausgangspunkt den eben erstellten Sysordner namens Artikel ein. (Kann man auch Global über TypoScript festlegen - siehe TS Einstellungen)

Template, Setup und Constants anpassen[Bearbeiten]

Sie müssen nun das Shop-Template und die Setup und Constant-Dateien Ihres Shops anpassen. In der Regel müssen die Page ids angepasst werden. Man kann aber auch Marker für die Page ids anlegen und dann im TS die Seiten festlegen (Siehe z.B. das HTML-Template example_template_bill_de.tmpl).

Bearbeiten Sie das HTML-Template im Editor und speichern es unter neuem Namen z.B. products_eur.tmpl. Wählen Sie im Webmodul von Typo3 'Dateiliste' aus, laden Sie das Template in das gewünschte Verzeichnis und speichern es ab. Tragen Sie das Template wie vorher beschrieben im TS - Template ein.

Wenn Sie eine älterne Version des Shops einsetzen, beachten Sie bitte diesen Marker name=”###FIELD_NAME###” im Basket-Template-Bereich des Templates. In älteren Versionen ersetzen Sie ihn bitte nur innerhalb des ###BASKET-TEMPLATE###-Bereichs duch ###FIELD_NAME_BASKET###"

Browservorschau[Bearbeiten]

Wenn Sie Ihr Template angepasst haben und nun über das Icon mit der Lupe 'Speichern und Ansehen' auswählen, können Sie bereits die Produktlistenansicht in der Browservorschau sehen.

Produkt Artikel (Varianten mit neuen Preisen)[Bearbeiten]

Marker[Bearbeiten]

Page Browser

<!--###LINK_PREV###-->vorherige Seite<!--###LINK_PREV###-->
<!-- ###LINK_BROWSE### begin --> [ ###BROWSE_LINKS### ] <!-- ###LINK_BROWSE### end-->
<!--###LINK_NEXT###-->nächste Seite<!--###LINK_NEXT###-->

<!-- ###ITEM_CATEGORY_AND_ITEMS### begin -->
  <!-- ###ITEM_CATEGORY### begin -->
    ###CATEGORY_TITLE###
  <!-- ###ITEM_CATEGORY### end -->
   
  <!-- ###ITEM_LIST### begin -->
    <form method="post" action="###FORM_URL###" name="###FORM_NAME###">
      <!-- ###ITEM_SINGLE### begin--> 
        ###PRODUCT_IMAGE###
          <!--###LINK_ITEM###-->###PRODUCT_TITLE###<!--###LINK_ITEM###-->

Beispiele für Produktvarianten:

	  <!-- ###display_variant2### -->Grösse:
            <SELECT class="shop_selectbox" name="###FIELD_SIZE_NAME###" rows="1">
              ###PRODUCT_SIZE###
            </SELECT>
	  <!-- ###display_variant2### -->

          <!-- ###display_variant5_isSingle### -->
            <p>Einzelprodukt: ###PRODUCT_ADDITIONAL_SINGLE###</p>
	  <!-- ###display_variant5_isSingle### -->

          <!-- ###display_variant5_isNotSingle### -->
            <p>Stückzahl:
              <INPUT size="4" maxlength="4" type="text" 
              name="###FIELD_NAME###" value="###FIELD_QTY###">
            </p>

Add to Memo-Funktion:

  <p>
    <input type="image" name="addtomemo" src="typo3/ext/tt_products/res/icons/fe/addmemo.png" value="Artikel merken" onClick="document.getElementsByName('###FORM_NAME###')[0].action='###FORM_MEMO###&tx_ttproducts_pi1[addmemo]=###PRODUCT_ID###';" title="Artikel merken">
  </p>
	<!-- ###display_variant5_isNotSingle### -->
      <!-- ###ITEM_SINGLE### end -->

Warenkorb:

      <input type="Submit" name="order2" value="In den Warenkorb">
      <input type="button" name="warenkorb" value="zum Warenkorb" onclick="self.location.href='index.php?id=###PID_BASKET###'">
    </form>
  !-- ###ITEM_LIST### end -->
<!-- ###ITEM_CATEGORY_AND_ITEMS### end -->

weitere Marker:

###PRODUCT_SUBTITLE###

weitere Features[Bearbeiten]

  • Memo page - für eingeloggte Besucher
  • Voucher System - Belohnungen für Käufe aufgrund von Tipps gibt es Rabattpunkte
  • Rabatte aufgrund früherer Käufe
  • Gutscheine
  • Gebinde zusammenstellen - der Käufer kann z.B. sagen 1 Wein-Sechser mit 2xRot 2xRose 2x Weiß


Updates[Bearbeiten]

Bei Updates unbedingt fh_libary und tables mit Upgraden

Shop-Template[Bearbeiten]

Zahlungsart abhängig von der Lieferungsart einstellen[Bearbeiten]

Mit folgendem Code

     40.excludePayment = 10,40 

die Lieferungsart 40 läßt im Beispiel die Zahlungsart 10 und 40 nicht zu.

verschiedene Layouts auf einer Seite[Bearbeiten]

In HB-Tech.de eingesetzt um auf der Startseite ein zweites Layout für die Topseller zu verwirklichen. Problem:

Das Layout der Listenansicht wird sowohl für die Standardansicht als auch für Angebote etc. verwendet. Ich möchte aber ein schöneres Template für die Topseller haben.


Lösung:

Einfach ein zweites HTML-Template anlegen, daß nur die benötigten Teile enthält und auf der entsprechenden Seite die Voreinstellungen für den Shop in einem zweiten TypoScript-Template überschreiben.

Beispiel:

TypoScript für Topseller[Bearbeiten]

Das Skript wird auf der jeweiligen Topseller Seite als Template aufgesetzt um hier die entsprechenden WErte zu überschreiben.

Constants[Bearbeiten]

### Highlights ###
plugin.tt_products.maxW_list = 130
plugin.tt_products.maxH_list = 80
plugin.tt_products.file.templateFile >

[globalVar = GP:L = 1]
plugin.tt_products.file.templateFile = fileadmin/templates/shop/shop_aktionen_de.html
[else]
plugin.tt_products.file.templateFile = fileadmin/templates/shop/shop_aktionen_en.html
[global]

Setup[Bearbeiten]

page.10.template.file >  
page.10.template.file = fileadmin/templates/index.html

HTML-Template für topseller[Bearbeiten]


<!-- ***************************** Produkt-Liste****************************************-->
<h3>ITEM_LIST_TEMPLATE</h3>
<!-- ###ITEM_LIST_TEMPLATE### begin
	Dieser Bereich ist für die Listenansicht der Produkte. Wird auch für Suchergebnisse genutzt. 
	-->
<div id="shop_aktionen">
  <!-- ###ITEM_CATEGORY_AND_ITEMS### begin -->
    <!-- ###ITEM_LIST### begin -->
      <form method="post" action="###FORM_URL###" name="###FORM_NAME###">
        <!-- ###ITEM_SINGLE### begin-->
          <div class="shop_item_single">
            <div class="shop_item_descr">
              <h2><!--###LINK_ITEM###-->###PRODUCT_TITLE###<!--###LINK_ITEM###--></h2>
            </div>
            <div class="shop_image">###PRODUCT_IMAGE###</div>
            <div class="shop_order_box">
              <div class="shop_prize">
                ###PRICE_NO_TAX### Euro
              </div>
            </div> <!-- Ende shop_order_box -->
            <span class="stopFloat"></span>
          </div> <!-- Ende shop_item_single -->
        <!-- ###ITEM_SINGLE### end -->
      </form>
    <!-- ###ITEM_LIST### end -->
  <!-- ###ITEM_CATEGORY_AND_ITEMS### end -->
</div>
<!-- ###ITEM_LIST_TEMPLATE### end -->
<!--*****************************************************************************************-->


Datenblatt als externer Link (_blank)[Bearbeiten]

Bis V2.4.11 keine bessere Möglichkeit gefunden als hart Codiert in der Datei:

/typo3conf/ext/tt_products/lib/class.tx_ttproducts_single_view.php

Zeile 218:

$wrappedSubpartArray['###LINK_DATASHEET###']= array('<a target="_blank" href="uploads/tx_ttproducts/datasheet/'.$datasheetFile.'">','</a>');

Commerce[Bearbeiten]

Ein neuerer Typo3 Shop ist commerce. Hier ein paar Schnipsel die vielleicht mal nützlich sind.


TYPO3 Blogger

TYPO3 News, Development & Insider Infos HDNET - TYPO3 Agentur

   * Home
   * Blogger
   * Photos
   * Kontakt/Werbung
   * Impressum

12. Dezember 2008 Türchen 12: Commerce Menü Integration Tim Lochmüller in TYPO3

Gestern hat Frank erklärt wie man Extension Inhalte leicht durch Redakteure verwalten kann. Heute will ich euch eine Commerce Menü Integration Nahe bringen…

Um ein Commerce Menü zu integrieren brauchen wir natürlich erst einmal ein normales Menü. In unserem Beispiel lösen wir dies mittels eines normalen TMENU:

lib.mainmenu = HMENU lib.mainmenu {

       special = directory
       special.value = xx (Eure Root ID oder ohne special Anweisung)
       1 = TMENU
       1 {

wrap =

               noBlur = 1
               NO.ATagTitle.field = subtitle // title

NO.allWrap =

  • |
  • NO.ATagParams = class="no" NO.stdWrap.htmlSpecialChars = 1 ACT = 1 ACT.wrapItemAndSub =

  • |
  • ACT.ATagTitle.field = subtitle // title ACT.ATagParams = class="act" ACT.stdWrap.htmlSpecialChars = 1 } 2 < .1 3 < .1 } Auch das Commerce Menü ist ein normales TMENU, welches aus einer userFunction aus Commerce gespeist wird: lib.catmenu = HMENU lib.catmenu { special = userfunction special.userFunc = user_tx_commerce_catmenu_pub->init special { category = {$plugin.tx_commerce_lib.catUid} showProducts = 1 overridePid = {$plugin.tx_commerce_lib.overridePid} } 1 = TMENU 1 { wrap =

      |
                   itemArrayProcFunc = user_tx_commerce_catmenu_pub->clear
                   expAll = 1
                   noBlur = 1
    

    NO.wrapItemAndSub =

  • |
  • ACT = 1 ACT.wrapItemAndSub =

  • |
  • } 2 < .1 3 < .1 } Und nun kommt der Clou der Integration. Per Condition hängen wir das Commerce Menü einfach in unseres bestehendes TYPO3 Menü ein. Ihr müsst natürlich die passende Seiten ID eintragen (xxx) um das Menü zu intigrieren. [PIDinRootline = xxx] lib.mainmenu.1 { ACT { after.cObject = HMENU after.cObject < lib.catmenu } } [END] Danke Alex für den Code! Viel Spaß damit. Von Tim Lochmüller, Adventskalender 2008