Zum Inhalt springen

Beispiele, HowTo für tx_commerce rc1

Erstellt am 4. September 2006 · 29 Antworten · letzte Antwort am 25. Oktober 2006 · Seite 1 von 2

Tags: TYPO3 4, Frage

batomo ·

Also wenn Du das so machst, dann hast Du höchstens einen Titel, aber nicht alle Titel (und schon garnicht der Subkategrien). Ausserdem braucht man nicht den Produktitel, sondern den Kategorietitel.

Es findet sich aber unter /typo3conf/ext/commerce/static/setup.txt ziemlich unten eine "Vorlage" für ein Menü. Ich habe also mal

lib.tx_commerce.navigation  = HMENU
lib.tx_commerce.navigation {
    special = userfunction
    special.userFunc = user_tx_commerce_catmenu_pub->init
    special{
       category = {$plugin.tx_commerce_lib.catUid}
       showProducts = 0
       overridePid = {$plugin.tx_commerce_lib.overridePid}
       1 = TMENU
       2 = TMENU
       3 = TMENU
    }
    1.itemArrayProcFunc  = user_tx_commerce_catmenu_pub->clear
    2.itemArrayProcFunc  = user_tx_commerce_catmenu_pub->clear
    3.itemArrayProcFunc  = user_tx_commerce_catmenu_pub->clear
}

genommen, bzw. da es schon drin ist das Menü auf

lib.tx_commerce.navigation

gesetzt. Nun funktionierts aber nicht. Dass die TMENU noch im special sind finde ich komisch, allerdings behebt eine Änderung den Fehler nicht...

Also mal kucken den Code ankucken...? ;((

Gruss batomo

merzilla ·

Stimmt, da hast du recht... mein TS ist da falsch.
Ich habe nun mal das Menü aus der txt verwendet und so geändert:

#
# Comerce Menue
#

lib.menulinks  = HMENU
lib.menulinks {
    special = userfunction
    special.userFunc = user_tx_commerce_catmenu_pub->init
    special{
           // Kategorie fuer Startebene
       category = {$plugin.tx_commerce_lib.catUid}
           // zeige Producte
       showProducts = 0
           // PID fuer die Anzeige der Seite
       overridePid = {$plugin.tx_commerce_lib.overridePid}
           // Menuebenen
       1 = TMENU
       2 = TMENU
       3 = TMENU
       4 = TMENU
    }
    1.itemArrayProcFunc  = user_tx_commerce_catmenu_pub->clear
    2.itemArrayProcFunc  = user_tx_commerce_catmenu_pub->clear
    3.itemArrayProcFunc  = user_tx_commerce_catmenu_pub->clear
}

In den Zeilen 5+6 hab ich mein Feld angegeben, wo das Menü rein soll. Dies ist das Feld, das ich mit TemplaVoila angelegt habe.

Nun sehe ich auf meiner Product Listing Seite in der Navigation die erste Ebene der Kategorien:
+ Kategorie1
|
+ Kategorie2
|
+ SYSTEM

Wenn ich auf Kategorie1 klicke, geht ein neues Fenster auf, in dem die Navi nun so aussieht:
+ Kategorie1
: |
: +- Sub1.1
: +- Sub1.2
: +- Sub1.3
: +- Sub1.4
|
+ Kategorie2
|
+ SYSTEM

Die Sub1.x kann ich nun nicht mehr aufklappen, obwohl es doch was mit den TMENUs zu tun hat, oder? Zum Testen hab ich auch noch 4 = TMENU eingebaut, siehe Zeile 20.

Aber gib mal statt

lib.tx_commerce.navigation = HMENU

dein Feld an, also

lib.yourFieldName

und natürlich auch in der Zeile darunter.

Vielleicht siehst du dann was, so wie ich, auch wenn´s noch nicht das Endergebnis ist.
Wie hast du die Kategorien angelegt? Ich habe als 1. Ebene EINE Oberkategorie, und darunter dann die eigentlichen (sieht man auch oben an meiner Struktur).

Grüße
merzilla

batomo ·

Hallo merzilla,

super, dass es bei Dir funktioniert! Eigentlich habe ich das genau so gemacht. 😉
Funktioniert das eigentlich nur auf der Produkteseite oder überall?

Dein Fehler könnte sein, dass Du nicht weiterverschachtelte Kategorien hast (funktioniert glaube ich i.M. eh nur bis Ebene 2). Versuch mal showProducts=1 zu setzen.

Ich habe:

plugin.tx_commerce_lib.catUid = 0

Installiert ist die GrayTree 0.0.6

Bei mir existiert aber auch noch der Fehler, dass auf der Produktseite nur die oberste Kategorie angezeigt wird, obwohl ich anderen bei Kategorieauswahl auch selektiert habe.

Gruss Andreas

merzilla ·

Hi Andreas,

was genau meinst du mit "überall" funktionieren? Auf der Produktseite steht zunächst nur die Hauptkategorie (Ebene 0 bzw 1) in der Navi. Wenn ich da draufklicke, passiert nichts. Ich muss dann im Content-Bereich der Seite auf eine der Kategorien klicken (die Kategorien werden gemäß dem Template aus pi1 angezeit), dann zeigt er im Content die Produkte aus dieser Kategorie und in der Navi stehen dann die Kategorien der 1. bzw 2. Ebene.
Und diejenige Kategorie, in der ich gerade bin, zeigt dann auch in der Navi die Produkte, quasi wie mit ACT.
Wenn ich

plugin.tx_commerce_lib.catUid = 0

eingebe, passiert irgenwie nichts. Aber showProducts = 1 hat das mit dem aufgeklappten Untermenü bewirkt. Danke dir!

"Bei mir existiert aber auch noch der Fehler, dass auf der Produktseite nur die oberste Kategorie angezeigt wird..."
Das Problem hatte ich auch.
Ich habe dann im Modul "Category" von Commerce die Struktur anders machen müssen:

:
-O (Kugel = Category)
|
- Kundenname(Kategorie1)
|
- Sub1.1
: |
: - Produkt1
:
- Sub1.2
: |
: - Prod1
: |
: - Prod2
|
- Sub1.3

In den Plugin-Options hab ich dann bei der produktseite nur die Kategorie1 ausgewählt. Bisher hatte ich dort auch alle ausgewählt, und er hat dann nur die oberste angezeigt.

Grüße
merzilla

batomo ·

Hallo merzilla,

vielen Dank für Deine Tips. Habe das jetzt hinbekommen, kann aber nicht mehr ganz nachvollziehen warum (Wahrscheinlich einfach, weil ich keinen Navigationstitel ausgefüllt hatte 😉.

Habe mir schon fast gedacht, dass man die Kategorien so umstrukturieren muss wie Dus gemacht hast. Dann sollte in der Menüdefinition category auf die Nummer der "Kundenname"-Kategorie gesetzt werden. (Nur falls sonst noch jemand hier mitliest 😉

Im Moment habe ich eigentlich nur noch das Problem, dass ich nicht weiss, was mit diesem "Attribute auswählen"-Tab mit Auswahl/Sollte/Kann/Produkt/Filterattribute zu tun ist. Und für was ist "Zusatzinfos"? Kann man da einen Hook reinhängen?

Gruss batomo

merzilla ·

Moin,

also ich weiß auch nicht genau, warum man die Category-Struktur so anlegen muss, damit´s klappt. Zuerst ging da bei mit dieser Variante gar nicht, da ich graytree 0.0.4 hatte, die hatte wohl nen Fehler, sodass ich bei den Plugin-Einstellungen für die Product-List die Kategorien nicht aufklappen konnte.
Mit der 0.0.6 gings dann, nachdem auch die commerce nochmal re-installiert wurde. 😉

Im TS sollte man, wie du sagst batomo, die category manuell setzen. Bei mir ist das dann:

category = 11

Somit erscheinen auf der ersten Product-List-Seite in der Navi die Unterseiten von der Seite mit uid 11, welche dem "Kundenname(Kategorie1)" aus meinem letzten post entspricht.

Damit für ein Produkt und/oder einen Artikel alle gewünschten Attribute angezeigt werden, wähle ich die Attribute bei dem Feld "Produkt" unter "Attribute auswählen" aus. Verstehe auch noch nicht so richtig die Unterschiede zwischen den Feldern, aber ich habe da auch noch nicht allzuviel rumexperimentiert.
Was mit "Zusatzinfos" zu tun ist, weiß ich nicht. Meinst du, dass er dort evtl. selbsterstellte Hooks angibt? - Mittlerweile weiß ich schon aus nem Buch, was Hooks sind. Damit gearbeitet, oder welche selbst erstellt, hab ich leider auch noch nicht. Da werde ich aber nicht drum herum kommen, da der Shop einige specials enthalten soll. Naja... Es gibt ja nette Helfer im Forum!

Ich habe auch noch ein Problem mit der Navi: Wie muss ich den die TMENUs überschreiben, damit er nicht nur die Produkte der aktuellen Kategorie aufklappt, sondern alle? Mit expAll geht das irgendwie nicht. Ich habe das mal auf zwei Arten versucht.
So:

 // Menuebenen
       1 = TMENU
       expAll = 1
       2 = TMENU
       expAll = 1
       3 = TMENU
       4 = TMENU

und so:

// Menuebenen
       1 = TMENU
       1.expAll = 1
       2 = TMENU
       2.expAll = 1
       3 = TMENU
       4 = TMENU

Aber er verhält sich so, als ob da irgendwo ein "ACT" wäre... 🙁
Hat jemand nen Rat? - Batomo, bei dir hört sich´s ja so an, als ob du deine Navi nun nach deinen Wünschen erstellt hast.

Grüße
merzilla

Greenhorn2013 ·

Frage:

Wie kann ich bei Commerce das Feld: Company beim Checkout rausnehmen?
Ich habe es schon im Template versucht, nur leider bringt das gar nichts.

batomo ·

Mit

plugin.tx_commerce_pi3.billing.sourceFields.company >
plugin.tx_commerce_pi3.delivery.sourceFields.company >

im Setup kriegste die Felder weg.

Die Felder werden sämtlich aus dem TS generiert. Im Template ist das Tag ###SINGLE_INPUT### entscheidend.

@mercilla: eigentlich müsste Version 2 gehen. Tuts bei mir aber auch nicht. Weiss auch nicht, ob .expAll nicht generell bei .special nicht geht. ACT geht glaube ich nicht. Könnte man als Feature Request bei Bugs eintragen...

merzilla ·

Hallo zusammen,

@batomo: Danke für deine Antwort. Dann müssen wir evtl. auf die Doku warten. Vielleicht steht dort dann drin, wie man das Menü komplett aufklappen kann.

Ich habe nun auch noch ein anderes seltsames Verhalten bemerkt. Und zwar, wenn ich auf meiner Produkt-Seite (product listing) auf eine Kategorie klicke, öffnet sich dieser Link in einem neuen Fenster. Die Auswahl einer anderen Kategorie im 1. Fenster bewirkt die Änderung im 2. Fenster.
Wo kann ich das ändern, dass er im gleichen Fenster bleibt?

@Greenhorn: Tut mir leid, ich weiß nicht, wie man im Shop die Bilder anspricht.

Grüße
merzilla

batomo ·

@merzilla: Wo klickst Du? Im Menü oder im Contentbereich? Ersteres habe ich nicht, aber evtl. hast Du dort explizit im Menü ein target angegeben (mal den Objectbrowser bemühen). Wenn es im Content ist, musst Du das Template anpassen.

@Greenhorn: Ich würde mal im Objectbroser schauen. Dort findest Du Dinge wie:

plugin.tx_commerce_pi1.image_article_list

wo Du sicher das Klick zum Vergrössern angeben kannst. Halt in der TS-Ref unter IMAGE/IMAGELINK oder so nachschauen. Besonders cool wäre es, das mit der kj_imagelightbox2 zu verknüpfen. Aber ist wohl nur ne Spielerei für nen Shop. Aber ne coole 😉 Wenns geht, poste mal den Code hier....

Bin im Moment mit der Mehrsprachigkeit beschäftigt und weiss nicht genau wie ich Kategorien/Produkte/Atribute übersetzen kann. Sprache kann man wählen, aber muss man die jeweils kopieren, also ganz neu erstellen?

Gruss Andreas

Greenhorn2013 ·

@batomo
ich habe jetzt

plugin.tx_commerce_pi1{
image_product_list{
    file.maxW = 150  
    imageLinkWrap = 1
    imageLinkWrap {
      enable = 1
      bodyTag = <BODY bgColor=white>
      wrap = |
      width = 400m
      height = 400
      JSwindow = 1
      JSwindow.newWindow = 1
      JSwindow.expand = 17,20
    }
  }
}

eingebunden. Ändern tut sich aber nichts 🙁

merzilla ·

Hallo Greenhorn,
Also wenn ich unter Commerce->Products->select attributes die Attribute auswähle und bei "edit attributes" was angebe, dann gibt er die Attribute automaisch auf der produkt- und Artikeleinzelseite aus. Ich verwende momentan das Standard-Template aus pi1.

@batomo: Ich klicke im Menü. Ich weiß auch nicht, an was es liegen könnte. Ich hab überprüft, ob irgendwo ein target drin ist. Dem ist aber nicht so. Im object-Browser steht [PAGE_TARGET]=_self .
_top hab ich auch schon versucht, bringt leider nichts. Und ich habe auch schon im Haupttemplate foldende Zeilen geschrieben:

styles.content.links.target = _self
PAGE_TARGET = _self
page.config.target = _self

Komisch...
Hast du schon Erfahrungen mit RealURL und Commerce?
Wie kann ich erreichen, dass z.B.

richtig dargestellt wird?
Es handelt sich hierbei um eine Einzelseite.
Ich werde aus der Doku nicht so schlau. Oder kennt jemand ein Beispiel?

Grüße
merzilla

batomo ·

@Greenhorn: Ich würde mal noch

imageLinkWrap.typolink.parameter.field=image_link
imageLinkWrap.typolink.extTarget = _blank

dazunehmen. Ausserdem hab ich in einem Beispiel

imageLinkWrap.JSwindows.newWindow = 0

(Keine Ahnung was der Parameter macht.)

@merzilla: Wenn Du den generierten Code im Frontend anschaust, müsste doch eigentlich klar werden warum einmal ein Fenster geöffnet wird und einmal nicht. Sonst paste mal das HTMl hier (naja also den relevanten Teil..😉

RealURL wäre cool, steht aber noch auf meiner ToDo...😉

Gruss batomo

merzilla ·

Hallo batomo,

Wenn ich meine produktliste.html, also die Seite mit dem "product list"-plugin das erste mal aufrufe, z.B. auch über das Backend mit "show", dann sehen die Links in der Navi so aus:

<a href="commerce-test/produktliste.html?tx_commerce_pi1%5BcatUid%5D=2&amp;tx_commerce_pi1%5BbasketHashValue%5D=&amp;cHash=2d86b6f7f4" target="PAGE" onfocus="blurLink(this);">Navigations-Sofware (cat-nav-title)</a>

Im Content Bereich wird derselbe Link durch den Marker so eingefügt:

<a href="no_cache/commerce-test/produktliste.html?tx_commerce_pi1%5BcatUid%5D=2" > Navigations-Software (cat-title) </a>

Wie gesagt, öffnet sich beim oberen Link, also aus der Navi raus, die Seite in einem neuen Fenster.
Dort sieht der Code für die Navi so aus:

<a href="commerce-test/produktliste.html?tx_commerce_pi1%5BcatUid%5D=2&amp;tx_commerce_pi1%5BbasketHashValue%5D=&amp;cHash=2d86b6f7f4" target="PAGE" onfocus="blurLink(this);">Navigations-Sofware (cat-nav-title)</a>

und im content so:

<a href="no_cache/commerce-test/produktliste.html?tx_commerce_pi1%5BcatUid%5D=2" > Navigations-Software (cat-title) </a>

Also kein Unterschied. Nur dass er jetzt im neuen Fenster bleibt. Auch wenn ich im ersten Fenster in der Navi klicke, wird der Link im schon geöffneten, neuen Fenster ausgeführt.
Das ist aber nur beim "Commerce menu" so. Alle anderen durch Typoscript generierten Navi-Menüs der Webseite funktionieren.
Ich verstehe nicht warum das so ist.
Für Hilfe wäre ich sehr dankbar.

Viele Grüße
merzilla

Greenhorn2013 ·

!Dringend - Update
Folgendes Problem:
1. Die Atrribute werden im Warenkorb nicht angezeigt
2. Im Backend steht das Produkt mit dem falschen Attribut drin.

Bsp.:
Produkt: Tasche
Artikel: Tasche Weiss [25,-] / Tasche Grau [25,-]
Im Warenkorb und Checkout steht der Preis korrekt und im BE auch, nur sagt er mir, das die Tasche weiss ist. Weiterhin ist mir aufgefallen, wenn ich den Preis des einen Attributes ändere, so wird das andere Attribut vom Preis her angepasst.

Wo liegt hier das Problem?

[UPDATE]
Das Problem tritt derzeit nur auf, wenn die Select Liste verwendet wird, wenn alle Artikel angezeigt werden, dann klappts auch mit dem Artikel 🙂

Greenhorn2013 ·

Also ich habe das ganze jetzt mit einem 2. Produkt umgangen, ist zwar nicht sinn und Zweck geht so kurzfristig nicht anders.

Dafür habe ich schon wieder ein weiteres Problem entdeckt.
Ich wollte einer Benutzergruppe fürs BE die Berechtigungen für Commerce erteilen, jedoch wenn ich auf speichern klicke, so werden die Berechtigungen für die folgenden Tabellen nicht übernommen:
- Kategorien
- Verfolgungscode
- Bestellung Type
- Verfolgung
- Bestellungen
- Bestellte Artikel
- Benutzer Zustände

Hat jemand schon eine Gruppe am laufen die auch die bestellten Artikel einsehen kann und kein admin ist?

Greenhorn2013 ·

Und schon wieder nen neues Problem 🙂
Im Backend von Commerce unter den eingegangenen Bestellungen wird die Währung nicht korrekt angezeigt. Als Währungscode ist per default EUR gewählt. Im Backend wird aber nichts angegeben.
Als ich mir dann die DB Tabellen angeschaut und die Constanten war auch klar warum. Der Währungscode in der Tabelle ist vom Typ her integer. Da lauf TS nun an die DB ein String übergeben wird kann das nicht funktionieren, oder hab ich da was übersehen?