Jump to content

[gelöst] Zustand der Ware aus der Artikel-Detailseite nehmen


madmonk

Recommended Posts

Moin

 

habe einen Shop mit Lebensmitteln/Genussmitteln zu bearbeiten. Da es ein wenig seltsam aussieht, wenn ein Kaffee den Zustand neu, gebraucht oder überholt auf der Detailseite aufweist, möchte ich das ändern. :wacko:  (Frisch geröstet wäre ein zeigbarer Zustand) :D

 

Ich finde im Backend keine Möglichkeit, den Zustand auszublenden. Kann ich das vielleicht durch Bearbeitung des entsprechenden Templates?

 

Habe die Syntax und vieles andere von Prestashop noch nicht so richtig verstanden, arbeite aber daran.
Wenn hier jemand also eine Antwort hätte, wäre es schön, wenn er das berücksichtigen würde.

 

Gruß an die Gemeinschaft hier,

 

madmonk

Edited by madmonk (see edit history)
Link to comment
Share on other sites

Wie so oft müssen wir Webworker uns die jeweilige Lösung für ein Problem selbst erarbeiten, auch wenn wir alle gerne die Lösung anderer übernehmen. Das ist ja auch Zeitersparniss.

 

Also zeige ich denen, die das gleiche Problem lösen wollen hier 2 Lösungen.

 

Beachtet aber die folgenden Vorrausetzungen:

  • Sichert bei solchen Operationen am "offenen Herzen" immer eure komplette Installation,
  • macht euch am besten Kopien der Dateien, die ihr ändern wollt, um sie notfalls einfach wieder einspielen zu können,
  • Ihr solltet ein eigenes Theme oder eine Kopie eines Themes anlegen, um manche Änderungen nicht durch Updates (z. Bsp.: bei css-Änderungen) zu verlieren.

So könnt Ihr die Position "Zustand" bei der Artikelanzeige (Produktdetailsseite) verbergen:

 

Die schnellste und einfachste Lösung ist die per CSS

  • Ladet die Datei global.css aus dem Verzeichnis ../themes/namedesthemes/css/ herunter und
  • öffnet sie in einem Text-/Html-Edtior,
  • springt an das Ende der Datei,
  • fügt den folgenden Code-Block ein:
    /*  Unsichbarer Artikelzustand */
    #product_condition {
      visibility: hidden;  /* macht das ganze P-Element unsichtbar
      max-height: 1px;    /* Hält den Abstand zwischen dem Element darüber und darunter klein*/
    }
    
  • Speichert und ladet die Datei wieder an ihren Ursprungsort.

Die zweite Lösung ist für viele von uns schon ein bisschen fremd, es sei den sie coden schon lange im Prestshop-System

 

  • Ladet die Datei product.tpl aus dem Verzeichnis ../themes/namedesthemes/ herunter und
  • öffnet sie in einem Text-/Html-Edtior,
  • sucht darin den folgenden code-Block:
    			<p id="product_condition">
    				<label>{l s='Condition:'} </label>
    				{if $product->condition == 'new'}
    					<link itemprop="itemCondition" href="http://schema.org/NewCondition"/>
    					<span class="editable">{l s='New'}</span>
    				{elseif $product->condition == 'used'}
    					<link itemprop="itemCondition" href="http://schema.org/UsedCondition"/>
    					<span class="editable">{l s='Used'}</span>
    				{elseif $product->condition == 'refurbished'}
    					<link itemprop="itemCondition" href="http://schema.org/RefurbishedCondition"/>
    					<span class="editable">{l s='Refurbished'}</span>
    				{/if}
    			</p>
    
  • ändert diesen in dem ihr in der Anfangs-Zeile vor dem "<p " das hier "<!--"   und nach dem "</p>" das hier "-->" eingebt.
  • Das sieht danach dann so aus:
    			<!-- <p id="product_condition">
    				<label>{l s='Condition:'} </label>
    				{if $product->condition == 'new'}
    					<link itemprop="itemCondition" href="http://schema.org/NewCondition"/>
    					<span class="editable">{l s='New'}</span>
    				{elseif $product->condition == 'used'}
    					<link itemprop="itemCondition" href="http://schema.org/UsedCondition"/>
    					<span class="editable">{l s='Used'}</span>
    				{elseif $product->condition == 'refurbished'}
    					<link itemprop="itemCondition" href="http://schema.org/RefurbishedCondition"/>
    					<span class="editable">{l s='Refurbished'}</span>
    				{/if}
    			</p> -->
    
  • Ladet die Datei wieder an ihren Ursprungsort.
  • Speichert und ladet die Datei wieder an ihren Ursprungsort.
  • ACHTUNG!!! Da diese Datei ein Systemdatei ist, können Updates diese Änderung überschreiben!

 

Gruß

madmonk

  • Like 2
Link to comment
Share on other sites

@kulli
Habe eine ganze Weile die suche benutzt, dennoch nix gefunden. Manchmal ist das mit der suche ja auch das Problem von verwendeten Ausdrücken oder Sprache. Ich habe das übrigens noch mal probiert und finde nur meinen eigenen Beitrag.

 

An den richtigen Platz, da geb ich Dir recht´, das ist nicht immer ganz einfach. Da ich davon ausging, ich kann das nur in den Templates ändern, habe ich diesen Platz für richtig befunden. Anfängerfehler, sorry. :rolleyes:

Link to comment
Share on other sites

Vielleicht will ja der eine oder andere aber gar nicht auf das "Neu" und "Gebraucht" verzichten?

 

Wofür man aber eine Option "aufgearbeitet/überholt - refurbished" braucht, wenn man nicht gerade Hardware verkauft, leuchtet mir echt nicht ein!

Warum sie also nicht etwas zweckentfremden als Option für die Nichtanzeige in den Produktdetails? :)

Deswegen könnte man das auch für eine elegantere Lösung nutzen. Ich schlage vor, die Option "refurbished" zu verwenden für die neue Option "none". Das ist deswegen einfacher, weil Prestashop die drei Optionen "new - used - refurbished" wirklich in der Datenbanktabelle ps_products festgeschrieben hat! Sonst wäre nämlich noch eine Datenbankänderung nötig.

 

1. Zuerst braucht man eine kleine (nur kosmetische) Änderung im Back Office, und zwar in

<admin-Verzeichnis>themes/default/template/controllers/products/informations.tpl

Da stehen die 3 Optionen:

<div class="form-group">                <div class="col-lg-1"><span class="pull-right">{include file="controllers/products/multishop/checkbox.tpl" field="condition" type="default"}</span></div>                                <label class="control-label col-lg-2" for="condition">                    {l s='Condition'}                </label>                <div class="col-lg-3">                    <select name="condition" id="condition">                        <option value="new" {if $product->condition == 'new'}selected="selected"{/if} >{l s='New'}</option>                        <option value="used" {if $product->condition == 'used'}selected="selected"{/if} >{l s='Used'}</option>                        <option value="refurbished" {if $product->condition == 'refurbished'}selected="selected"{/if}>{l s='Refurbished'}</option>                    </select>                </div>                </div>
Statt "Refurbished" kommt in die letzte Option als Anzeige-Wert "None". Hat den Vorteil, dass es dafür schon eine Übersetzung gibt. ;)

 

Es soll also in Zeile 322 nicht heißen

<option value="refurbished" {if $product->condition == 'refurbished'}selected="selected"{/if}>{l s='Refurbished'}</option>
sondern:
<option value="refurbished" {if $product->condition == 'refurbished'}selected="selected"{/if}>{l s='None'}</option>
2. Die Anzeige des Zustands in der /themes/<DeinTheme>/Product.tpl wird dann von der Bedingung abhängig gemacht, dass der Zustand nicht "refurbished" ist, also in Zeile 158 der product.tpl im default-bootstrap statt

{if !$product->is_virtual && $product->condition}
diese If-Abfrage etwas erweitern zu
{if !$product->is_virtual && ($product->condition && $product->condition != 'refurbished')}
Mit diesen minimalen Eingriffen wird der Zustand inklusive Label nur dann angezeigt, wenn es erwünscht ist. Bei der Auswahl von "Keine" wird nichts angezeigt.

 

Die Übersetzungen sind übrigens z.T. unsinnig und wohl ergoogelt! Es muss natürlich heißen: Neu - Gebraucht - Überholt und nicht: Neu - Verwendet - Überholt. Oder, wie in meiner Version: Neu - Gebraucht - Keine

 

Nicht vergessen: Nach den Änderungen Cache löschen und Template einmal neu kompilieren.

Edited by Wuschel (see edit history)
  • Like 1
Link to comment
Share on other sites

@Wuschel

Ja, natürlich gibt es immer auch noch andere Lösungen und je mehr der einzelne Lösungssuchende findet, um so eher ist etwas für ihn dabei.

 

 

Vielleicht will ja der eine oder andere aber gar nicht auf das "Neu" und "Gebraucht" verzichten?

Na klar ist das so, ebenso wie es für die Produkte anderer keinen Sinn macht. Also das Element ist gut, es lässt sich halt nur nicht übers Backend abschalten.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...