Ergebnis 1 bis 19 von 19

Thema: Preis bei manchen Produkten weglassen?

  1. #1
    Contao-Nutzer
    Registriert seit
    08.09.2011.
    Beiträge
    71

    Standard Preis bei manchen Produkten weglassen?

    Hallo,

    wie kann man bei Produkten, die bereits verkauft sind, aber weiter aufgeführt werden sollen, oder solchen mit Preis auf Anfrage, den Preis weg?
    Oder kann irgendwie ins Preisfeld schreiben 'auf Anfrage' oder 'verkauft'?

    tschüß,
    beate

  2. #2
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.622
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Das kannst du nur über's Template lösen. Beispielsweise indem du ein entsprechendes Attribut (Checkbox) anlegst und das im Template dann entsprechend behandelst (PHP Kenntnisse vorausgesetzt).
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  3. #3
    Contao-Nutzer
    Registriert seit
    08.09.2011.
    Beiträge
    71

    Standard übliche Attribute in Isotope integrieren?

    (ich habe gerade einen Kunden überredet, von einem anderen shopsystem auf isotope umzusteigen.... und muss nun so simple Fragen 'kann man nicht einfach den Preis weglassen, wenn ein Produkt verkauft ist' leider verneinen...)

    Wie wäre es im Isotope eCommercemodul gleich ein paar sehr übliche Attribute, die jeder Kunde von einem Shop erwarten kann, mitzuliefern? (Bevor hier jeder sein php-Süppchen programmiert, bzw. das gar nicht kann....)

    - Verpackungseinheit (so dass man im Backend Textfelder hat, in denen man attributenamen eingeben kann oder ein Pulldownmenu z.B. Stück, Set, 5er-Pack, Rolle, Bogen, Karton, Packung, ...)

    - begrenzte Mengen (man gibt verfügbare Menge ein, die dann im Warenkorb, etc. bei Mengeneingabe durch den Benutzer auch nicht überschritten werden kann)

    - 'Verkauft' - Produkte können so markiert und nicht mehr bestellt werden, werden aber weiter in Liste und Detailsseite angezeigt (um weiterhin das Reportoire zu zeigen), optional mit und ohne Preis

    - 'zur Zeit nicht bestellbar'/'zur Zeit nicht lieferbar' - Produkte bleiben in der Liste/Detailseite, mit oder ohne Preis, aber können eben nicht in Warenkorb gelegt/bestellt werden

    ....

    tschüß,
    beate

  4. #4
    Contao-Nutzer
    Registriert seit
    08.09.2011.
    Beiträge
    71

    Standard Bitte um Hilfe beim Anlegen des Attributs 'Verkauft'

    Hallo nochmal,
    möchte natürlich dazulernen!
    brauche aber bitte Hilfestellung...

    Ziel ist:
    im Backend beim Editieren eines Produkts soll es die Möglichkeit geben, eine Checkbox 'Produkt verkauft' anzuklicken, so dass im Frontend bei der Produktliste und der Produktdetailseite kein Anzahlfeld und keine 'in den Warenkorb' mehr zu sehen sind.
    (Plus evtl. die Textzeile 'Verkauft' o.ä., könnte man auch im Teaser/in der Produktbeschreibung selbst hinzuschreiben)

    Ich lege in der ShopKonfiguration also ein attribute an:
    Name: Produkt verkauft
    interner name: produkt_ist_verkauft
    Typ: Checkbox Menu
    Field Group: Product Options Settings
    Description: Häkchen setzen, wenn das Produkt verkauft ist/Checkmark when product is sold

    alles andere habe ich nicht ausgefüllt
    beim Produkttyp habe ich bei der Checkbox 'Produkt verkauft' Häkchen gesetzt

    und jetzt muss ich in welchem Template was eingeben?

    neues template erstellen vom mod_iso_productlist oder iso_list_default?
    (und in 'mod_iso_productlist_kundenname' umbenennen?)

    und dann im Code etwas eingeben wie

    <?php if ($this->produkt_ist_verkauft): ?> <?php echo $this->....... ; ?>

    z.B. als Folge die div class 'submit_contaier' auf display:none setzen)
    (als php Nichtkenner weiß ich leider nicht den Code, kann nur versuchen zu formulieren, was Folge sein soll/könnte....)

    Könnt Ihr mir weiterhelfen?
    ich möchte das wirklich hinkriegen/lernen,
    tschüß,
    beate

  5. #5
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.622
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Dein Ansatz ist schon ziemlich gut, die Templates wären iso_list_default und iso_reader_default. Die kannst du umbenennen oder einfach unter diesem Namen im Root-Template-Ordner ablegen.

    Im Template gibt es den Teil, wo Preis und die Buttons ausgegeben werden. Den müsstest du dann mit deiner if-Abfrage entfernen.
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  6. #6
    Contao-Nutzer
    Registriert seit
    08.09.2011.
    Beiträge
    71

    Standard

    hmm, ich probiere noch immer herum (mir fehlt einfach php-grundwissen....)

    bei der Produktbearbeitung selbst, ist die checkbox zwar vorhanden, aber wann immer ich sie anklicke und dann speichere, steht sie danach wieder unangekreuzt da....

    habe in den templates von der product list und product reader eingefügt:

    <?php if( $this->produkt_ist_verkauft): ?><div class="verkauft">VERKAUFT </div>
    <?php else: ?>
    (jetzt würden preis, die buttons für warenkorb, etc. kommen)
    <?php endif; ?>

    das führt jetzt dazu, dass immer 'VERKAUFT' angezeigt wird. (Preis,Buttons erscheinen nicht, was ja beabsichtigt ist)

    statt des fragezeichens am ende von <?php if( $this->produkt_ist_verkauft): ?> brauche ich also eine Art checkbox-ist-angekreuzt-überprüfung, heißt das vielleicht 1 oder true o.ä.?

    Ziel ist wie gehabt: wenn im backend bei einem 'Produkt verkauft' angekrezut wird, soll im Frontend beim Produkt 'VERKAUFT' stehen und Preis/Warenkorbbutton nicht mehr angezeigt werden.

    Was muss ich also in das if statement schreiben, damit es funktioniert wie beabsichtigt?


    tschüß,
    beate

  7. #7
    Contao-Fan
    Registriert seit
    30.06.2009.
    Beiträge
    370

    Standard

    Kannst du nicht für diese Produkte einen eigenen Produktyp neu anlegen (mit eigenem Template - auskommentieren bzw löschen und ersetzen von <?php echo $this->price; ?> im iso_reader_default und iso_list_default )


    MfG
    servpoint

  8. #8
    Contao-Nutzer
    Registriert seit
    08.09.2011.
    Beiträge
    71

    Standard

    Ich würde generell gerne verstehen wie diese if/else statements funktionieren und sich programmieren lassen.
    Denn es gibt viele Einsatzmöglichkeiten: Produkte, die z.B. vorrübergehend nicht auf Lager sind und man deshalb nicht bestellen kann, Produkte mit Preis auf Anfrage, ...
    (also mit Attributen wie 'produkt_zur_Zeit_nicht_lieferbar', 'preis_auf_anfrage', 'einzelstueck', 'preis_vorschlagen', 'letztes exemplar', 'sonderpreis')

    Ich habe jetzt schon, um eine ausklappte Unternavigation mit markierten submenüpunkten sowie oben den richtigen breadcrumbpfad zu kriegen, ein ziemliche Workarounds angelegt ...: für jeden Produkttyp bei den Themes ein eigenes Seitenlayout für die Übersichtsseite (und eigenes Produktlistenmodul) sowie in der Seitenstruktur eine eigene Detailsseite (und mit eigenem produkte detailsseiten reader modul ....)

    Es wird irgendwann sehr kompliziert (und außerdem soll das ganze mal der Endkunde weiterpflegen können (der Null Ahnung von Webdesign/CMS/Modulen/Templates/CSS/php und die Verknüpfung untereinander hat. Er soll einfach beim Produkt z.B. 'verkauft' ankreuzen können.

    Habe trotzdem jetzt den Tip ausprobiert.
    Produkttyp 'Verkauft' mit entsprechendem list und reader template, wo ich alles was mit form input buttons etc. zu tun, herausgelöscht habe;
    Komischerweise wird der Warenkorb-Button immer noch angezeigt; bei Klick dadrauf dann zwar Fehlermeldung, weil Produkt nicht mehr bestellbar ist, aber warum sieht man den Warenkorbbutton überhaupt noch?)
    Gibt es irgendwelche Standardeinstellungen, dass 'in den Warenkorb' immer angezeigt werden soll?

    rätselnd,
    beate

  9. #9
    Contao-Fan
    Registriert seit
    30.06.2009.
    Beiträge
    370

    Standard

    Das Template (iso_reader) ohne Warenkorb sieht dann so aus. (ggfs. class anpassen)

    <form action="<?php echo $this->action; ?>" id="<?php echo $this->formId; ?>" name="<?php echo rand(); ?>" method="post" enctype="<?php echo $this->enctype; ?>">
    <div class="formbody">
    <input type="hidden" name="FORM_SUBMIT" value="<?php echo $this->formSubmit; ?>" />

    <h2 class="price"><?php echo $this->name; ?></h2>
    <p>


    <?php echo $this->images->generateMainImage('medium'); ?>
    <?php if($this->hasOptions): ?>
    <div class="options">
    <?php echo implode("\n", $this->options); ?>
    </div>
    <?php endif; ?>

    <?php echo $this->images->generateGallery(); ?>

    <?php if ($this->sku): ?>
    <div class="sku"><?php echo $this->sku; ?></div><?php endif; if ($this->description): ?>
    <div class="description"><?php echo $this->description; ?></div><?php endif; ?>


    </div>
    </form>

    So müsste nur der Text angezeigt werden.

    MfG
    servpoint

  10. #10
    Contao-Nutzer
    Registriert seit
    01.12.2011.
    Beiträge
    69

    Standard

    Hallo,
    Ich hoffe es ist ok, wenn ich mich mit einer ähnlichen Frage hier noch dran hänge.

    Also Ich brauche bei einigen Produkten die Möglichkeit den Preis auf Anfrage zu setzen. Ich habe mir vorerst ein separates Template, wie von servpoint vorgeschlagen, angelegt wo ich bei Price einfach "Auf Anfrage" eigetragen habe.
    Meine Frage ist, wie kann ich, anstelle des Knopfes "In den Warenkorb" ein kleines Formular einbauen, was den Produktnamen, übernimmt und vielleicht ein bis zwei Felder für Name und Email enthält.

    Danke und Gruß

  11. #11
    Contao-Nutzer Avatar von art-instinct
    Registriert seit
    12.04.2012.
    Ort
    Hannover/Leipzig
    Beiträge
    175

    Standard

    würde diese Frage aus gegebenem Anlass nochmals anstoßen. Es soll beim Produkt die Möglichkeit zum Kauf geben, dort soll ein Preis stehen. Bei der Option "Mieten", soll statt eines Preises "Auf Anfrage" stehen. Momentan steht dort 0,00€, fände es jedoch eleganter wenn erlaubt wäre, einen Text statt nur Zahlen ins Preis-Feld einzutragen.

  12. #12
    Contao-Urgestein Avatar von KATgirl
    Registriert seit
    31.03.2010.
    Ort
    Marburg
    Beiträge
    1.579
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Wir machen das über das Template. Indem wir prüfen ob der Wert 0,00 ist. Dann geben wir aus gratis. Finde das über das Template sehr schön, da beim Lieferschein, Angebot usw. Der Preis erhalten bleibt.
    - GitHub
    - Kontaktanfragen

    "Ein Lächeln ist die kürzeste Entfernung zwischen zwei Menschen." Victor Borge

  13. #13
    Contao-Nutzer Avatar von art-instinct
    Registriert seit
    12.04.2012.
    Ort
    Hannover/Leipzig
    Beiträge
    175

    Standard

    Zitat Zitat von KATgirl Beitrag anzeigen
    Wir machen das über das Template. Indem wir prüfen ob der Wert 0,00 ist. Dann geben wir aus gratis. Finde das über das Template sehr schön, da beim Lieferschein, Angebot usw. Der Preis erhalten bleibt.
    Hi,

    ich versuche jetzt schon ein bisschen, kenne mich aber bei isotope noch nicht so gut aus.
    Habe das template "iso_reader_default.xhtml" und auch dort den Eintrag
    echo $this->price;
    gefunden.
    Aber meine If-Abfrage will und will nicht funktionieren.

    Ich möchte erreichen, dass wenn der Preis 0,00€ beträgt, er statt "€ 0,00" "Auf Anfrage" ausgibt. Einer meiner Versuche:
    HTML-Code:
     <div class="price">
    <?php if ($price=="0,00") 
    { echo 'Auf Anfrage'; }
    else
    { echo $this->price; }
     ?>
    </div>
    Was ist denn da falsch?

  14. #14
    Contao-Urgestein Avatar von KATgirl
    Registriert seit
    31.03.2010.
    Ort
    Marburg
    Beiträge
    1.579
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo,

    versuch mal folgendes:

    PHP-Code:
    <?php
    if (preg_match("/^0,00/i"$this->price)) :
      echo 
    "Schenke ich dir (kostet nix)";
    else :
      echo 
    "Du musst zahlen!";
    endif;
    ?>
    Die Funktion preg_match() findest du unter http://php.net/manual/de/function.preg-match.php beschrieben
    - GitHub
    - Kontaktanfragen

    "Ein Lächeln ist die kürzeste Entfernung zwischen zwei Menschen." Victor Borge

  15. #15
    Contao-Nutzer Avatar von art-instinct
    Registriert seit
    12.04.2012.
    Ort
    Hannover/Leipzig
    Beiträge
    175

    Standard

    Das sieht bei mir jetzt folgendermaßen aus, funktioniert aber nicht. Als Wert wird immer "Du musst zahlen!" ausgegeben, egal welche oder keine Variante gewählt ist.

    Geht bei mir nur um iso_reader_default. In der Übersicht gibt es keine Preise, daher irrelevant.

    Hast du auch Isotope 1.3.2 stable Build 4?

    Edit: Es ist dabeia uch egal, ob ich das Euro-Symbol links, rechts an- oder abgeschaltet habe. Wird immer "Du musst zahlen!" ausgegeben.

    PHP-Code:
    ...
    <div class="description"><?php echo $this->description?></div><?php endif; ?>

     <div class="price">

    <?php 

    if (preg_match("/^0,00/i"$this->price)) : 
      echo 
    "Schenke ich dir (kostet nix)"
    else : 
      echo 
    "Du musst zahlen!"
    endif; 
    ?>
    </div>


    <?php if($this->buttons): ?>
    ...


    Zitat Zitat von KATgirl Beitrag anzeigen
    Hallo,

    versuch mal folgendes:

    PHP-Code:
    <?php
    if (preg_match("/^0,00/i"$this->price)) :
      echo 
    "Schenke ich dir (kostet nix)";
    else :
      echo 
    "Du musst zahlen!";
    endif;
    ?>
    Die Funktion preg_match() findest du unter http://php.net/manual/de/function.preg-match.php beschrieben
    Geändert von art-instinct (30.07.2012 um 11:39 Uhr)

  16. #16
    Contao-Urgestein Avatar von KATgirl
    Registriert seit
    31.03.2010.
    Ort
    Marburg
    Beiträge
    1.579
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo, schau mal was du bei $this->price ausgegeben bekommst.

    HTML-Code:
    <pre>
    Preis: "<?php echo  $this->price; ?>"<br>
    Preis als Zahl: "<?php echo  number_format($this->price); ?>"<br>
    </pre>
    hierrauf musst du den match anwenden. Sprich 0.00 oder 0,00 oder was sonst.

    ^ bedeutet das es am Anfang steht, lass das sonst mal weg, kann sein, das davor noch ein Leerzeichen oder sowas ist.

    versuch mal ob das klappt:

    PHP-Code:
    ...
    <div class="description"><?php echo $this->description?></div><?php endif; ?>

     <div class="price">

    <?php 

    if (preg_match("/0/i"number_format($this->price))) : 
      echo 
    "Schenke ich dir (kostet nix)"
    else : 
      echo 
    "Du musst zahlen!"
    endif; 
    ?>
    </div>


    <?php if($this->buttons): ?>
    ...
    [/QUOTE]

    number_format() schneidet alle nicht Zahlenzeichen weg. Sonst hast du ein Problem, wenn der Preis z.B. 270,00 € ist denn das würde auch auf 0,00 treffen ;-)
    - GitHub
    - Kontaktanfragen

    "Ein Lächeln ist die kürzeste Entfernung zwischen zwei Menschen." Victor Borge

  17. #17
    Contao-Nutzer Avatar von art-instinct
    Registriert seit
    12.04.2012.
    Ort
    Hannover/Leipzig
    Beiträge
    175

    Standard

    Zitat Zitat von KATgirl Beitrag anzeigen
    Hallo, schau mal was du bei $this->price ausgegeben bekommst.
    PHP-Code:
    <?php echo $this->price?>
    wirf aus:

    HTML-Code:
    <div class="iso_attribute price" id="fmd26_product_34_price"><span class="from">Ab</span> <span class="currency"></span> 0,00</div>
    Der neue Schnipsel geht auch nicht. Ich werd noch bekloppt. Ich versuchs morgen weiter. Trotzdem vielen Dank!

  18. #18
    Contao-Urgestein Avatar von KATgirl
    Registriert seit
    31.03.2010.
    Ort
    Marburg
    Beiträge
    1.579
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    PHP-Code:
    <?php  
    # Preis ist 0,00
    $price "<div class='iso_attribute price' id='fmd26_product_34_price'><span class='from'>Ab</span> <span class='currency'>€</span> 0,00</div>";
    # Gegenprobe mit 270,00
    #$price = "<div class='iso_attribute price' id='fmd26_product_34_price'><span class='from'>Ab</span> <span class='currency'>€</span> 270,00</div>";

    if (preg_match("/\s+0,00/i"$price)) :  
      echo 
    "Schenke ich dir (kostet nix)";  
    else :  
      echo 
    "Du musst zahlen!";  
    endif;  
    ?>
    - GitHub
    - Kontaktanfragen

    "Ein Lächeln ist die kürzeste Entfernung zwischen zwei Menschen." Victor Borge

  19. #19
    Contao-Nutzer Avatar von art-instinct
    Registriert seit
    12.04.2012.
    Ort
    Hannover/Leipzig
    Beiträge
    175

    Standard

    Alleinstehen funzt der Code hier:

    Zitat Zitat von KATgirl Beitrag anzeigen
    PHP-Code:
    <?php  
    # Preis ist 0,00
    $price "<div class='iso_attribute price' id='fmd26_product_34_price'><span class='from'>Ab</span> <span class='currency'>€</span> 0,00</div>";
    # Gegenprobe mit 270,00
    #$price = "<div class='iso_attribute price' id='fmd26_product_34_price'><span class='from'>Ab</span> <span class='currency'>€</span> 270,00</div>";

    if (preg_match("/\s+0,00/i"$price)) :  
      echo 
    "Schenke ich dir (kostet nix)";  
    else :  
      echo 
    "Du musst zahlen!";  
    endif;  
    ?>
    nru wenn ich das dann dynamisch ins Template einbauen will, und statt $price $this->price bei preg_match eingebe, geht es wieder nicht.

    Bei
    PHP-Code:
    <?php echo number_format($this->price); ?>
    Gibt er bei mir nichts aus.



    EDIT: Tadaa, Fehler entdeckt. Ich arbeite mit Produktvarianten. Das wird mit PHP so nicht gehen, da sich der Preis ja bei den Variaten ändert - . Muss ich mir wohl eine Lösung - mit Javascript - schreiben lassen und hoffen, dass die halbwegs updatesicher ist.

    Trotzdem vielen Dank! Für Produkte ohne Variaten scheints ja bei dirzu funzen...
    Geändert von art-instinct (31.07.2012 um 08:45 Uhr)

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •