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
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
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
(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
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
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
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
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
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
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
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ß
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.
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
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:
Was ist denn da falsch?HTML-Code:<div class="price"> <?php if ($price=="0,00") { echo 'Auf Anfrage'; } else { echo $this->price; } ?> </div>
Hallo,
versuch mal folgendes:
Die Funktion preg_match() findest du unter http://php.net/manual/de/function.preg-match.php beschriebenPHP-Code:
<?php
if (preg_match("/^0,00/i", $this->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
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): ?>
...
Geändert von art-instinct (30.07.2012 um 11:39 Uhr)
Hallo, schau mal was du bei $this->price ausgegeben bekommst.
hierrauf musst du den match anwenden. Sprich 0.00 oder 0,00 oder was sonst.HTML-Code:<pre> Preis: "<?php echo $this->price; ?>"<br> Preis als Zahl: "<?php echo number_format($this->price); ?>"<br> </pre>
^ 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:
[/QUOTE]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): ?>
...
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
wirf aus:PHP-Code:
<?php echo $this->price; ?>
Der neue Schnipsel geht auch nicht. Ich werd noch bekloppt. Ich versuchs morgen weiter. Trotzdem vielen Dank!HTML-Code:<div class="iso_attribute price" id="fmd26_product_34_price"><span class="from">Ab</span> <span class="currency">€</span> 0,00</div>
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
Alleinstehen funzt der Code hier:
nru wenn ich das dann dynamisch ins Template einbauen will, und statt $price $this->price bei preg_match eingebe, geht es wieder nicht.
Bei
Gibt er bei mir nichts aus.PHP-Code:
<?php echo number_format($this->price); ?>
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 in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
Lesezeichen