Jump to content

Artikelzustand nicht angeben.


Recommended Posts

Bei jedem Artiekl gibt es einen Artikelzustand. Nur im Shop steht dann einfach neu da. Das kommt so rüber, als wäre es ein ganz neues Produkt, und nicht einfach nur ein unbenutzter Artikel. Gibt es die Möglichkeit einen anderen Wert anzugeben, der dann nicht dasteht, oder dass man den Artikelzustand einfach abschaltet?

Link to comment
Share on other sites

Neu steht für soeben ergänzte Artikel. Das kannst du auch unter Voreinstellungen -> Produkte -> Anzahl der Tage, an denen ein Produkt als "neu" betrachtet wird, steuern.

Das hat aber nichts mit dem Artikelzustand zu tun was du unter den Angaben im Produkt meinst. Bei Tonerpatronen z.B. kann man angeben, ob die Tonerpatrone Neu oder rebuildt ist. Für das ist diese Auswahl gedacht.

Du brauchst also nichts abschalten, aber du kannst die Tage reduzieren, so wird dann wenn jemand das Modul Neue-Produkte anklickt nur die Produkte sehen, die in den letzten X-Tagen eingefügt wurden im Shop.

Link to comment
Share on other sites

Nur dass ich das richtig verstehe. Das grüne NEU das ich sehe bezieht sich auf das Erstellungdatum des Artikels, und nicht auf den Artikelzustand? Wenn ja, dann paßt es eh so wie es ist. Wo sehe ich dann aber den Artikelzustand? Ist nur interessehalber, brauchen tue ich das eh nicht...

Link to comment
Share on other sites

Richtig. Wenn du in deinen Einstellungen stehen hast 2 Tage, werden die Artikel nur 2 Tage als neu angezeigt. Das andere "Neu" was du meinst wird im Produkt selbst angezeigt und ist der Zustand des Artikels, ob Neu oder "gebraucht" refurbished in diesem Fall. Standard brauchst du dich beim Artikel um nichts kümmern, der ist immer Neu. Wenn du allerdings einen gebrauchten oder überholten Artikel verkaufst, hast du die Möglichkeit diesen Zustand extra anzugeben, damit der Kunde weiss, was er da kauft.

Link to comment
Share on other sites

Oje, hoffentlich geh ich Euch allen nicht schon auf die Nerven. Habe gestern meine Verbesserungsvorschläge/Wünsche an den Hersteller geschickt, und auch im englischen Forum gepostet. Ich hoffe nur, ich trete damit nicht wieder unabsichtlich jemandem auf die Füße...

 

Ich finde den PrestaShop nämlich recht gut!

Link to comment
Share on other sites

Ha, ich habe jetzt die Antwort vom CEO persönlich. Wir sind da nicht ganz am Holzpfad, aber der Zustand wurde nur für ebay und Amazon gecodet. Wollen wir das im Produkt auch selbst weitergeben, müssen wir selbst Hand anlegen oder wenn es gut geht auf die nächste warten (zugegeben keine Glanzleistung, aber manche Entwickler denken nicht weiter...):

 

This field is designed for export to eBay and Amazon (for instance).

 

You can display it on your product page by adding:

 

{code}

{l s='Condition:'} {$product->condition}

{code}

 

We will probably add it in the next template.

Link to comment
Share on other sites

  • 2 years later...

Hierzu noch mal eine kurze Frage...

Kann ich die Drop-Downliste, die den Artikelzustand unter den Angaben zum Produkt nennt, erweitern?

Gemeint ist hier beispielsweise »neu«, »gebraucht«, »überholt«

Wenn ja, wo???

 

Nutze PS 1.6.0.6 mit dem Standardtemplate.

Danke ;)

Link to comment
Share on other sites

  • 1 month later...

Kann ich die Drop-Downliste, die den Artikelzustand unter den Angaben zum Produkt nennt, erweitern?

Gemeint ist hier beispielsweise »neu«, »gebraucht«, »überholt«

Wenn ja, wo???

 

Nutze PS 1.6.0.6 mit dem Standardtemplate.

 

 Würde mich ebenfalls interessieren!

 M.E. sollte Prestashop generell die Möglichkeit geben, den Artikelzustand in  relativ leichter und einfacher Form (beliebig) zu erweitern.

Beispielsweise wären sicherlich alle Shopbesitzer, die Sammlerartikel (wie z.B. Münzen) anbieten danbkar,

wenn es diese Möglichkeit gebe.

Ich selbst benötige etwa 8- 10 verschiedene Artikelzustände (jeweils in den 3 Hauptsprachen: deutsch, englich u. spanisch).

 

Würde mich freuen, wenn jemand (uns allen) helfen könnte.

 

Ich habe gesehen, dass auch im englischsprachigen Forum

Unklarheiten dazu bestehen. http://www.prestashop.com/forums/topic/331966-adding-options-to-product-condition-list/?hl=%2Bproduct+%2Bcondition&do=findComment&comment=1685381

Link to comment
Share on other sites

Naja, der Entwickler, der diese Auswahl dazuprogrammiert hat, hatte wohl nichtv gerade seine Sternstunde, Aber lösbar ist das schon, ihr müsst Änderungen in 5 Dateien und zwei Datenbank-Tabellen vornehmen.

 

Fangen wir mal an (für PS1.6.06 mit default_bootstrap-theme und ps_ als Preselection in der Datenbank, der neue Auswahlbegriff soll "beschädigt" bzw "damaged" heissen):

 

1:

\admin78467\themes\default\template\controllers\products\informations.tpl

hier sucht ihr (ca bei Zeile 306):

 

                    <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>

und ersetzt das mit :

 

                    <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>
                        <option value="damaged" {if $product->condition == 'damaged'}selected="selected"{/if}>{l s='Damaged'}</option>
                    </select>

 

2.

\classes\Product.php

ca bei Zeile 179:

 

/** @var enum Product condition (new, used, refurbished) */
    public $condition;

ersetzen mit:

 

    /** @var enum Product condition (new, used, refurbished, damaged) */
    public $condition;

 

in der gleichen datei ca bei Zeile 291

 

'condition' =>                     array('type' => self::TYPE_STRING, 'shop' => true, 'validate' => 'isGenericName', 'values' => array('new', 'used', 'refurbished'), 'default' => 'new'),

ersetzen mit:

 

            'condition' =>                     array('type' => self::TYPE_STRING, 'shop' => true, 'validate' => 'isGenericName', 'values' => array('new', 'used', 'refurbished', 'damaged'), 'default' => 'new'),
 

 

3.

\js\admin-products.js

ca bei Zeile 1093

 

                    tabs_manager.onLoad('Informations', function(){
                        $('#condition').attr('disabled', true);
                        $('#condition option[value=refurbished]').removeAttr('selected');
                        $('#condition option[value=used]').removeAttr('selected');
                    });

 

ersetzen mit:

 

                    tabs_manager.onLoad('Informations', function(){
                        $('#condition').attr('disabled', true);
                        $('#condition option[value=refurbished]').removeAttr('selected');
                        $('#condition option[value=used]').removeAttr('selected');
                        $('#condition option[value=damaged]').removeAttr('selected');
                    });

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

Fortsetzung: (im vorigen Post habe ich die max Länge erreicht)

 

4.

\modules\blocklayered\blocklayered.php

ca bei Zeile 1034

 

                    $condition_list = array(
                        'new' => $this->translateWord('New', (int)$filter['id_lang']),
                        'used' => $this->translateWord('Used', (int)$filter['id_lang']),
                        'refurbished' => $this->translateWord('Refurbished', (int)$filter['id_lang'])
                    );

ersetzen mit:

 

                    $condition_list = array(
                        'new' => $this->translateWord('New', (int)$filter['id_lang']),
                        'used' => $this->translateWord('Used', (int)$filter['id_lang']),
                        'refurbished' => $this->translateWord('Refurbished', (int)$filter['id_lang']),
                        'damaged' => $this->translateWord('Damaged', (int)$filter['id_lang'])
                    );

 

in der gleichen Datei ca bei Zeile 1752:

 

                preg_match('/^(.*)_([0-9]+|new|used|refurbished|slider)$/', substr($key, 8, strlen($key) - 8), $res);

ersetzen mit:

 

                preg_match('/^(.*)_([0-9]+|new|used|refurbished|damaged|slider)$/', substr($key, 8, strlen($key) - 8), $res);

 

und in der geichen datei ca bei Zeile 1760:

 

                    if ($res[1] == 'condition' && in_array($value, array('new', 'used', 'refurbished')))

ändern in:

 

                    if ($res[1] == 'condition' && in_array($value, array('new', 'used', 'refurbished', 'damaged')))

 

und in der gleichen Datei ca bei Zeile 2438:

 

                    $condition_array = array(
                        'new' => array('name' => $this->l('New'),'nbr' => 0),
                        'used' => array('name' => $this->l('Used'), 'nbr' => 0),
                        'refurbished' => array('name' => $this->l('Refurbished'),
                        'nbr' => 0)
                    );

ändern in:

 

                    $condition_array = array(
                        'new' => array('name' => $this->l('New'),'nbr' => 0),
                        'used' => array('name' => $this->l('Used'), 'nbr' => 0),
                        'refurbished' => array('name' => $this->l('Refurbished'), 'nbr' => 0),
                        'damaged' => array('name' => $this->l('Damaged'), 'nbr' => 0)
                    );

 

5.

\themes\default-bootstrap\product.tpl

ca bei Zeile 168

 

            {capture name=condition}
                {if $product->condition == 'new'}{l s='New'}
                {elseif $product->condition == 'used'}{l s='Used'}
                {elseif $product->condition == 'refurbished'}{l s='Refurbished'}
                {/if}
            {/capture}

ersetzen mit:

 

            {capture name=condition}
                {if $product->condition == 'new'}{l s='New'}
                {elseif $product->condition == 'used'}{l s='Used'}
                {elseif $product->condition == 'refurbished'}{l s='Refurbished'}
                {elseif $product->condition == 'damaged'}{l s='Damaged'}
                {/if}
            {/capture}

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

Fortsetzung (gleicher Grund)

6.

Die zwei Änderungen in der Datenbank (phpmyadmin/sql)

 

 

ALTER TABLE `ps_product` CHANGE `condition` `condition` ENUM( 'new', 'used', 'refurbished', 'damaged' ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'new'

und dann noch :

 

ALTER TABLE `ps_product_shop` CHANGE `condition` `condition` ENUM( 'new', 'used', 'refurbished', 'damaged' ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'new'

 

So, damit funktioniert das Ganze schon mal mit dem Begriff "damaged" wenn ihr das auf Deutsch braucht einfach im BO --> Lokalisierung -->Übersetzungen das "damaged"  suchen und mit z.B. "Beschädigt" übersetzen.

 

Analog dazu könnt ihr beliebig viele andere Auswahlbegriffe einfügen - und gegebenenfalls auch immer an den override-Ordner denken.

 

Im BO siehts dann so aus:

post-467854-0-66559200-1401656543_thumb.jpg

 

Das es funktioniert seht ihr hier:

http://prestashop.multimedia-bodensee.de/tshirts/1-faded-short-sleeve-tshirts.html

 

Grüsse

Whiley

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

Whiley zunächst besten Dank für Deine Bemühungen u. Anleitung.

 

 

Analog dazu könnt ihr beliebig viele andere Auswahlbegriffe einfügen - und gegebenenfalls auch immer an den override-Ordner denken.

 

Frage: Was heisst "an den override-Ordner denken"?
Was sollten wir genau machen, dass es mit der Änderung klappt?

 

 

Ich bin Deinen Anweisungen gefolgt (ohne an den override-Ordner zu denken) -

Folge: Ich kann jetzt im BO keinen Artikel mehr öffnen und ihn natürlich auch nicht modifizieren.

 

 

  preg_match('/^(.*)_([0-9]+|new|used|refurbished|  preg_match('/^(.*)_([0-9]+|new|used|refurbished||damaged|slider)$/', substr($key, 8, strlen($key) - 8), $res);|damaged|slider)$/', substr($key, 8, strlen($key) - 8), $res);

 

Übrigens, ich vermute einen kleinen Schreibfehler.   Ein "|" zuviel zwischen refurbished und damaged.

Link to comment
Share on other sites

Hey Blacky2013,

 

die Funktion der Änderung hat zunächst nichts mit meiner Bemerkung zum override-Ordner zu tun. Damit du dir deine Änderungen nicht aus Versehen beim nächsten Update überschreibst solltest du deine geänderten Dateien in den Override- Ordner packen:

http://doc.prestashop.com/display/PS15/Overriding+default+behaviors

Aber, wie gesagt, die Änderungen müssen auch so laufen mit dem Tippfehler ||| könntest du richtig liegen (ich kann es erst heute abend überprüfen), du kannst es ja mal korrigiert testen, bzw ich hänge dir einfach mal meine geänderten (funktionsfähigen!!!) Dateien an.

 

Grüsse

Whiley

zustand.zip

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

Hallo Blacky2013,

 

der Fehler, der bei dir auftritt kann nicht durch den Tippfehler mit den beiden || kommen (ich habe ihn im oberen post zwischenzeitlich aus optischen Gründen korrigiert), der Fehler muss durch etwas anderes ausgelöst werden, das Beste ist du verwendest meine Dateien aus der zustand.zip, die laufen auf alle Fälle.

 

Grüsse

Whiley

Link to comment
Share on other sites

... der Fehler muss durch etwas anderes ausgelöst werden, das Beste ist du verwendest meine Dateien aus der zustand.zip, die laufen auf alle Fälle.

 

Grüsse

Whiley

 

 

 

 

Hallo Whiley,

 

was du sagtest ist mir schon klar. Der kleine Schreibfehler war nur eine Randanmerkung.

 

Vielleicht liegt es meinen entsprechenden Übersetzungen.

(Mein Shop sollte 3 sprachig sein. Möglicherweise ein Fehler dort.)

 

Auf jeden Fall besten, besten Dank für Deine zip-Datei!

Wirklich sehr nett von Dir.

 

Ich werde alles an diesem Wochenende checken.

Herzliche Grüsse,

Blacky2013.

Link to comment
Share on other sites

  • 2 years later...

Dann muss ich das hier mal aufwärmen.

 

Prestashop 1.6.1.6

 

informations.tpl Zeile 317 - 322

					<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>
						 <option value="newissue" {if $product->condition == 'newissue'}selected="selected"{/if}>{l s='Neu mit Fehlern'}</option>
					</select>

Product.php Zeile 182:

 /** @var string Enumerated (enum) product condition (new, used, refurbished, newissue) */
    public $condition;

Product.php Zeile 305

'condition' =>                    array('type' => self::TYPE_STRING, 'shop' => true, 'validate' => 'isGenericName', 'values' => array('new', 'used', 'refurbished', 'newissue'), 'default' => 'new'),

products.js Zeile 1165 - 1170

tabs_manager.onLoad('Informations', function(){
						$('#condition').attr('disabled', true);
						$('#condition option[value=refurbished]').removeAttr('selected');
						$('#condition option[value=used]').removeAttr('selected');
						$('#condition option[value=newissue]').removeAttr('selected');
					});

blocklayered.php Zeile 1023 - 1029

case 'condition':
					$condition_list = array(
						'new' => $this->translateWord('New', (int)$filter['id_lang']),
						'used' => $this->translateWord('Used', (int)$filter['id_lang']),
						'refurbished' => $this->translateWord('Refurbished', (int)$filter['id_lang']),
						'newissue' => $this->translateWord('Neu mit Fehlern', (int)$filter['id_lang'])
					);

blocklayered.php  Zeile 1748

preg_match('/^(.*)_([0-9]+|new|used|refurbished|newissue|slider)$/', substr($key, 8, strlen($key) - 8), $res);

blocklayered.php  Zeile 1756

if ($res[1] == 'condition' && in_array($value, array('new', 'used', 'refurbished', 'newissue')))

blocklayered.php  Zeile 2505 - 2512

case 'condition':
					$condition_array = array(
						'new' => array('name' => $this->l('New'),'nbr' => 0),
						'used' => array('name' => $this->l('Used'), 'nbr' => 0),
						'refurbished' => array('name' => $this->l('Refurbished'),
						'newissue' => array('name' => $this->l('Neu mit Fehlern'), 
						'nbr' => 0)
					);

product.tpl Zeile 164 - 183

			<p id="product_condition">
				<label>{l s='Condition:'} </label>
				{if $product->condition == 'new'}
					<link itemprop="itemCondition" href="https://schema.org/NewCondition"/>
					<span class="editable">{l s='New product'}</span>
					
				{elseif $product->condition == 'used'}
					<link itemprop="itemCondition" href="https://schema.org/UsedCondition"/>
					<span class="editable">{l s='Used'}</span>
					
				{elseif $product->condition == 'refurbished'}
					<link itemprop="itemCondition" href="https://schema.org/RefurbishedCondition"/>
					<span class="editable">{l s='Refurbished'}</span>
				{/if}
				
				{elseif $product->condition == 'newissue'}
					<link itemprop="itemCondition" href="https://schema.org/RefurbishedCondition"/>
					<span class="editable">{l s='Neu mit Fehlern'}</span>
				{/if}
			</p>

Schema.org kennt ja "neu mit Fehlern" nicht

https://schema.org/OfferItemCondition

 

Danach SQL:

ALTER TABLE `ps_product` CHANGE `condition` `condition` ENUM( 'new', 'used', 'refurbished', 'newissue' ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'new'

Und:

ALTER TABLE `ps_product_shop` CHANGE `condition` `condition` ENUM( 'new', 'used', 'refurbished', 'newissue' ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'new'

Danach cache löschen und neu einloggen. Danach rufe ich einen Artikel auf und siehe da, Zustand "Neu mit Fehlern" ist da:

83afdd32bf4948cb8efd8e0f732018a3.png

 

Das ganze kann ich jedoch nicht Speichern, weil dann das kommt:

e1f576f36e644ed4ba3a507b19c0e739.pngIch weiß jetzt jedoch nicht recht, woran das liegen könnte :/

 

Jemand eine Idee?

Edited by Lausli (see edit history)
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...