Claudiocool Posted September 27, 2017 Share Posted September 27, 2017 (edited) Hallo Leute, irgendwie will mein Denkapparat heute nicht so recht... Ich habe ein ausverkauftes Produkt, welches aber dennoch bestellbar sein soll. Dooferweise wird es, sobald bestellbar, in der Product-List zwar mit orangem Hintergrund (label-.warning) angezeigt aber eben leider nicht mit "Out of stock" Die Zeile mit den megamäßig verschachtelten if's sieht so aus: {if $product.quantity <= 0}{if $product.allow_oosp}{if isset($product.available_later) && $product.available_later}{$product.available_later}{else}{l s='In Stock'}{/if}{else}{l s='Out of stock'}{/if}{else}{if isset($product.available_now) && $product.available_now}{$product.available_now}{else}{l s='In Stock'}{/if}{/if} So, jetzt fehlt also quasi wohl eine Bedingung, oder? Edited September 28, 2017 by Claudiocool (see edit history) Link to comment Share on other sites More sharing options...
Scully Posted September 27, 2017 Share Posted September 27, 2017 (edited) Lieber Claudio, Was für andere gilt auch hier.... ein Beispiel eines Produktes in Deinem Shop würde helfen. So sähe der entwirrte Code aus - jedoch sehen wir da auch nicht die CSS Klasse für die Warnung: {if $product.quantity <= 0} {if $product.allow_oosp} {if isset($product.available_later) && $product.available_later} {$product.available_later} {else} {l s='In Stock'} {/if} {else} {l s='Out of stock'} {/if} {else} {if isset($product.available_now) && $product.available_now} {$product.available_now} {else} {l s='In Stock'} {/if} {/if} Edited September 27, 2017 by Scully (see edit history) Link to comment Share on other sites More sharing options...
Claudiocool Posted September 27, 2017 Author Share Posted September 27, 2017 (edited) Das Besipiel kann man sehen, wenn man im Shop auf RDKS-Sensoren-->Alligator geht.... Und vor dem ersten {else} sollte m.E. eine Ausgabe stehen, sonst tut er gar nix, baiu ich da was ein, bleibt die Seite weiss.... Die CSS-Klasse für die Warnung wird weiter oben aufgerufen, in dem Programmteil wird nur die Ausgabe generiert, aber der Fall, dass Bestand = 0 und Verkauf erlaubt ist, scheint hier nicht zu greifen, da kommt dann "In Stock", was ich aber nicht will Edited September 27, 2017 by Claudiocool (see edit history) Link to comment Share on other sites More sharing options...
Scully Posted September 28, 2017 Share Posted September 28, 2017 Wir brauchen wohl etwas mehr Quellcode. Link to comment Share on other sites More sharing options...
Claudiocool Posted September 28, 2017 Author Share Posted September 28, 2017 Ich denke mal, das ist die Originaldatei, zumindest in dem Bereich..... <div class="button-container"> <if ($product.id_product_attribute == 0 || (isset($add_prod_display) && ($add_prod_display == 1))) && $product.available_for_order && !isset($restricted_country_mode) && $product.customizable != 2 && !$PS_CATALOG_MODE} {if (!isset($product.customization_required) || !$product.customization_required) && ($product.allow_oosp || $product.quantity > 0)} {capture}add=1&id_product={$product.id_product|intval}{if isset($product.id_product_attribute) && $product.id_product_attribute}&ipa={$product.id_product_attribute|intval}{/if}{if isset($static_token)}&token={$static_token}{/if}{/capture} <a class="button ajax_add_to_cart_button btn btn-default" href="{$link->getPageLink('cart', true, NULL, $smarty.capture.default, false)|escape:'html':'UTF-8'}" rel="nofollow" title="{l s='Add to cart'}" data-id-product-attribute="{$product.id_product_attribute|intval}" data-id-product="{$product.id_product|intval}" data-minimal_quantity="{if isset($product.product_attribute_minimal_quantity) && $product.product_attribute_minimal_quantity >= 1}{$product.product_attribute_minimal_quantity|intval}{else}{$product.minimal_quantity|intval}{/if}"> <span>{l s='Add to cart'}</span> </a> {else} <span class="button ajax_add_to_cart_button btn btn-default disabled"> <span>{l s='Add to cart'}</span> </span> {/if} {/if} <a class="button lnk_view btn btn-default" href="{$product.link|escape:'html':'UTF-8'}" title="{l s='View'}"> <span>{if (isset($product.customization_required) && $product.customization_required)}{l s='Customize'}{else}{l s='More'}{/if}</span> </a> </div> {if isset($product.color_list)} <div class="color-list-container">{$product.color_list}</div> {/if} <div class="product-flags"> {if (!$PS_CATALOG_MODE AND ((isset($product.show_price) && $product.show_price) || (isset($product.available_for_order) && $product.available_for_order)))} {if isset($product.online_only) && $product.online_only} <span class="online_only">{l s='Online only'}</span> {/if} {/if} {if isset($product.on_sale) && $product.on_sale && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE} {elseif isset($product.reduction) && $product.reduction && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE} <span class="discount">{l s='Reduced price!'}</span> {/if} </div> {if (!$PS_CATALOG_MODE && $PS_STOCK_MANAGEMENT && ((isset($product.show_price) && $product.show_price) || (isset($product.available_for_order) && $product.available_for_order)))} {if isset($product.available_for_order) && $product.available_for_order && !isset($restricted_country_mode)} <span class="availability"> {if ($product.allow_oosp || $product.quantity > 0)} <span class="{if $product.quantity <= 0 && isset($product.allow_oosp) && !$product.allow_oosp} label-danger{elseif $product.quantity <= 0} label-warning{else} label-success{/if}"> {if $product.quantity <= 0}{if $product.allow_oosp}{if isset($product.available_later) && $product.available_later}{$product.available_later}{else}{l s='In Stock'}{/if}{else}{l s='Out of stock'}{/if}{else}{if isset($product.available_now) && $product.available_now}{$product.available_now}{else}{l s='In Stock'}{/if}{/if} </span> {elseif (isset($product.quantity_all_versions) && $product.quantity_all_versions > 0)} <span class="label-warning"> {l s='Product available with different options'} </span> {else} <span class="label-danger"> {l s='Out of stock'} </span> {/if} </span> {/if} {/if} </div> {if $page_name != 'index'} <div class="functional-buttons clearfix"> {hook h='displayProductListFunctionalButtons' product=$product} {if isset($comparator_max_item) && $comparator_max_item} <div class="compare"> <a class="add_to_compare" href="{$product.link|escape:'html':'UTF-8'}" data-id-product="{$product.id_product}">{l s='Add to Compare'}</a> </div> {/if} </div> {/if} </div><!-- .product-container> --> Link to comment Share on other sites More sharing options...
Scully Posted September 28, 2017 Share Posted September 28, 2017 Zeile 14 in meinem der Lesbarkeit halber formatierten Ausschnitt zeigt "in Stock", obschon in Zeile 9 die Abfrage wie folgt lautet: if $product.quantity <= 0 Das heisst zu Deutsch übersetzt: wenn A) die die Bestellbarkeit des Produktes trotz fehlendem Bestand gegeben ist UND kein Verfügbarkeitsdatum im Produkt angegeben, dann zeigt es "in Stock". Musst halt Text in Zeile 14 ändern. Oder ein Verfügbarkeitsdatum setzen. <span class="availability"> {if ($product.allow_oosp || $product.quantity > 0)} <span class="{if $product.quantity <= 0 && isset($product.allow_oosp) && !$product.allow_oosp} label-danger {elseif $product.quantity <= 0} label-warning {else} label-success{/if}"> {if $product.quantity <= 0} {if $product.allow_oosp} {if isset($product.available_later) && $product.available_later} {$product.available_later} {else} {l s='In Stock'} {/if} {else} {l s='Out of stock'} {/if} {else} {if isset($product.available_now) && $product.available_now} {$product.available_now} {else} {l s='In Stock'} {/if} {/if} </span> {elseif (isset($product.quantity_all_versions) && $product.quantity_all_versions > 0)} <span class="label-warning"> {l s='Product available with different options'} </span> {else} <span class="label-danger"> {l s='Out of stock'} </span> Link to comment Share on other sites More sharing options...
Claudiocool Posted September 28, 2017 Author Share Posted September 28, 2017 Scully, danke, du hast mir den passenden Denkanstoss gegeben, programmtechnisch konnte ich keinen Fehler finden, weil da keiner da ist... Es ist nur so, dass da eine textvariable zu wenig da ist. Also hab ich die gesetzt und den passenden Text dazu in den Übersetzungen erstellt. jetzt gehts. 1 Link to comment Share on other sites More sharing options...
Scully Posted September 28, 2017 Share Posted September 28, 2017 Es ist nur so, dass da eine textvariable zu wenig da ist. Also hab ich die gesetzt und den passenden Text dazu in den Übersetzungen erstellt. jetzt gehts. So kann man das sicher auch auch sehen. Ich vermute, die Entwickler haben das mit Absicht so gemacht, ich verstehe aber Deinen Ansatz in der Denke schon. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now