Seite 1 von 1

Anzeige individueller Varianten-Preise (Artikelvarianten-Festpreis) im Dropdown-Menü anstatt Standard-Aufpreis

Verfasst: 25 Okt 2025, 18:02
von Johannes.Kayßer
Ich wünsche mir die Anzeige des individuellen Varianten-Preises (mittels Artikelvarianten-Festpreis) im Dropdown-Menü auf der Produkt- oder Kategorieseite anstelle des unter Admin -> Optionen festgelegten Standard-Aufpreises.

Laut Gambio ist das nicht möglich.

Beispiel: https://shop.tannenhof-imshausen.de/bio ... ch-kg.html
Bei der Dropdown-Auswahl Größe mal die Varianten
extra klein ∅ < 5 cm
oder
klein ∅ 5 - 5,6 cm
auswählen und die anzeigten Aufpreise mit dem tatsächlich angezeigten Gesamtpreis vergleichen.

Für diese beiden Größen habe ich bei diesem Produkt einen geringeren als den Standard-Aufpreis hinterlegt: Artikel bearbeiten -> Reiter 'Varianten' -> Artikelvariante bearbeiten -> Preistyp -> Artikelvarianten-Festpreis auswählen und einen anderen Preis als den Standard-Aufpreis angeben.

Damit der Kunde die günstigeren Varianten auch bemerkt, sollte ihm natürlich auch der tatsächliche Aufpreis der jeweiligen Variante angezeigt werden und nicht der Standard-Aufpreis.
Für die Abfrage, ob eine Variante lieferbar ist oder nicht wird doch schon auf die gleiche Tabelle products_properties_combis zugegriffen, da sollte es doch kein Problem sein, auch den zugehörigen Aufpreis mit auszulesen.


Über Vorschläge, wie das jetzt schon unter Gambio umzusetzen wäre, freue ich mich.

Danke, Johannes

Re: Anzeige individueller Varianten-Preise (Artikelvarianten-Festpreis) im Dropdown-Menü anstatt Standard-Aufpreis

Verfasst: 26 Okt 2025, 09:58
von Burkhard
Mal so off-topic: Warum hast du 7,8 % Mehrwertsteuer??

Re: Anzeige individueller Varianten-Preise (Artikelvarianten-Festpreis) im Dropdown-Menü anstatt Standard-Aufpreis

Verfasst: 26 Okt 2025, 10:22
von Burkhard
Wenn du Themes verwendest und wirklich Varianten hast und Aufpreise anzeigen aktiviert, kannst du mal probieren:

1) Diese Datei

Code: Alles auswählen

{block name="modifier_group_type_dropdown"}
    {assign "show_additional_price" $content_data.show_additional_price}
    <div class="modifier-group modifier-{$content_data.modifier.type}-group modifier-type__dropdown form-group form-group-big-select"{if !$content_data.modifier.visible} style="display: none;"{/if}>
        <label for="{$content_data.modifier.id}" class="modifier-label control-label">
            {$content_data.modifier.label}:
        </label>
        <div class="modifier-content">
            <select id="{$content_data.modifier.id}" name="{$content_data.modifier.name}" class="form-control js-calculate">
                {if $content_data.modifier.type eq 'property'}
                    <option value="0" title="{$txt.PLEASE_SELECT}">
                        {$txt.PLEASE_SELECT}
                    </option>
                {/if}
                {foreach from=$content_data.modifier.items item=modifier}
                    {assign var="variant_base" value=$PRICE_RAW}
                    
                    {* numerischen Aufpreis holen, falls vorhanden *}
                    {if isset($modifier.additionalInfo.priceNumeric)}
                        {assign var="modifier_price" value=$modifier.additionalInfo.priceNumeric}
                    {else}
                        {* Fallback: Textpreis in Zahl umwandeln *}
                        {assign var="modifier_price" value=$modifier.additionalInfo.price|regex_replace:'/[^0-9\.\,]/':''}
                    {/if}

                    {* Gesamtpreis berechnen *}
                    {assign var="variant_price" value=$variant_base + $modifier_price}

                    <option value="{$modifier.value}"{if $content_data.modifier.selected.value eq $modifier.value} selected="selected"{/if}
                        {if $show_additional_price && isset($modifier.additionalInfo.price) && $modifier.additionalInfo.price != ""}
                            data-price="{$variant_price|price_format}"
                        {/if}
                        data-label="{$modifier.info}"
                        {if !$modifier.selectable} disabled{/if}>
                        {$modifier.info}
                        {if $show_additional_price && isset($modifier.additionalInfo.price) && $modifier.additionalInfo.price != ""}
                            {$variant_price|price_format}
                        {/if}
                        {if $modifier.additionalInfo.stock} {$modifier.additionalInfo.stock}{/if}
                    </option>
                {/foreach}
            </select>

            {literal}
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22.66 12.64">
                <title>chevron-down</title>
                <g><path d="M11.33,12.64a1.33,1.33,0,0,1-.93-.38l-10-10A1.31,1.31,0,0,1,2.24.39l9.09,9.08L20.42.39a1.31,1.31,0,0,1,1.86,1.85l-10,10A1.33,1.33,0,0,1,11.33,12.64Z"/></g>
            </svg>
            {/literal}
        </div>
    </div>
{/block}
als modifier_group_type_dropdown.html ablegen in GXModules/bork/variantenpreise/Shop/themes/All/

2) Diese Datei

Code: Alles auswählen

<?php
/* --------------------------------------------------------------
	SperrgutProductInfoContentView.inc.php 2016-09-20
	Gambio GmbH
	http://www.gambio.de
	Copyright (c) 2015 Gambio GmbH
	Released under the GNU General Public License (Version 2)
	[http://www.gnu.org/licenses/gpl-2.0.html]
	--------------------------------------------------------------
*/

class _PriceRawProductInfoThemeContentView extends _PriceRawProductInfoThemeContentView_parent
{
	public function _assignProductData()
		{	
			if (isset ($_GET['info'])) 
			{
					global $product;
					$actual_products_id = $product->data['products_id'];
			}
			elseif (isset($_GET['products_id']))
			{
					$actual_products_id = (int) $_GET['products_id'];
			}
			
		$sql = xtc_db_query("select IFNULL(specials.specials_new_products_price, products.products_price) AS price from products 
							left join specials on products.products_id = specials.products_id where products.products_id = ". $actual_products_id);
			while ($price_raw = xtc_db_fetch_array($sql))
				{
					$this->set_content_data('PRICE_RAW', $price_raw['price']*1.19);
				}
		
		return parent::_assignProductData();
		}
}
?>
als _PriceRawProductInfoThemeContentView.inc.php ablegen in GXModules/bork/variantenpreise/Shop/Overloads/ProductInfoThemeContentView/

Caches leeren und testen. Nicht selbst ausprobiert, experimentell. Wenn es nicht klappt, beide Dateien löschen und wieder Caches leeren. Wenn du durch die Fehlermeldung nicht an die Caches herankommst: https://www.werbe-markt.de/gambio-news/ ... n-zugriff/

Re: Anzeige individueller Varianten-Preise (Artikelvarianten-Festpreis) im Dropdown-Menü anstatt Standard-Aufpreis

Verfasst: 26 Okt 2025, 15:05
von Burkhard
Achso, derzeit in der Cloud lese ich gerade - dann wirds wohl nichts mit Anpassungen außer wenn du den Trick von den Dominiks machst, der nicht updatesicher ist...

Re: Anzeige individueller Varianten-Preise (Artikelvarianten-Festpreis) im Dropdown-Menü anstatt Standard-Aufpreis

Verfasst: 26 Okt 2025, 19:37
von Johannes.Kayßer
Burkhard hat geschrieben: 26 Okt 2025, 09:58 Mal so off-topic: Warum hast du 7,8 % Mehrwertsteuer??
Ich bin pauschalierender Landwirt.

Vielen Dank für den Tipp, werde ich testen und dann berichten!


Wie meiner Signatur zu entnehmen ist, habe ich auch in der Cloud einige Anpassungen laufen: Also nicht nur Module installiert, sondern auch Shop-Dateien bearbeitet.

Re: Anzeige individueller Varianten-Preise (Artikelvarianten-Festpreis) im Dropdown-Menü anstatt Standard-Aufpreis

Verfasst: 26 Okt 2025, 22:42
von Johannes.Kayßer
So, habe mir nun Deine Theme-Anpasssung ansgeschaut: Das kann leider so nicht funktionieren, das Problem ist ja gerade, dass die Variable $modifier.additionalInfo.price nicht den Artikelvarianten-Festpreis enthält, sondern den standardmäßigen Aufpreis.

Re: Anzeige individueller Varianten-Preise (Artikelvarianten-Festpreis) im Dropdown-Menü anstatt Standard-Aufpreis

Verfasst: 27 Okt 2025, 16:10
von Burkhard
Das ist mir schon klar! Deswegen hast du einen Overload, der den Vaterartikelpreis holt der zum Aufpreis addiert werden soll, so dass sich daraus der Gesamtpreis der Variante ergeben soll. Also den Vaterartikelpreis (unter Berücksichtigung von Sonderpreisen) übergeben ans Thema funktioniert auf jeden Fall (hier allerdings mit statischen 19 % Mwst - das müsstest du dann auf deine 7, irgendwas ändern), ich habe nur nicht getestet ob die Addition von Vatergrundpreis und Kinderaufpreis funktioniert. @Johannes.Kayßer