Jump to content
xt:Commerce Community Forum

Attribute ausblenden


pizko

Recommended Posts

Hallo,

Hab über Sufu nichts gefunden.. Ich biete verschiedene Größen in meinem Shop in Form von Attributen an..

Wenn ein Attribut ausverkauft ist möchte ich dass es ausgeblendet wird!

Wie bekomme ich das hin? Ist für den Kunden nämlich nicht angenehm ständig vor und zurück zu klicken in der Hoffnung dass eine andere Größe oder Farbe verfügbar ist!

Danke für Eure Anregungen und Vorschläge:D

Link to comment
Share on other sites

ok geht anscheinend nicht..

Wie kommste denn darauf? Nur weil Dir nach gerade einmal vier Stunden noch keiner geantwortet hat? Etwas Geduld muss hier im Community-Forum schon sein...

Natürlich geht das:

Admin -> Lagerverwaltungs-Optionen

Überprüfen des Warenbestandes: true

Überprüfen des Artikelattribut Bestandes: true

Warenmenge abziehen: true

Einkaufen nicht vorrätiger Ware erlauben: false

Cheers,

IaN

Link to comment
Share on other sites

Nett gemeint, aber das sind doch die Auslieferungseinstellungen wenn mich nicht alles täuscht..

Das *** bei nicht verfügbaren Attributen ist doch gerade mein Problem.. Möchte dass das Attribut ausgeblendet wird damit der Kunde nicht auf gut Glück auf Attribute in meinem Fall Größen klickt und dann enttäuscht wird..

Ich hoffe jetzt verständlich.. Geht also nicht;) Wer hat dann Module die er mir empfehlen kann...

Link to comment
Share on other sites

Ich hoffe jetzt verständlich.. Geht also nicht

Hmm, dann ist bei Dir noch irgendwas anders - bei mir funktioniert das wunderbar.

Beispiel: T-Shirt in rot, grün, blau

-> blau ist alle

-> blau taucht in den Attributlisten (benutze die Dropdown-Felder) dann nicht mehr auf.

Wenn jetzt alle Attribute nicht mehr lieferbar wären, weiss ich auch nicht, was dann passiert (Dropdown ausgeblendet? Oder etwa mit *** als Auswahl?) - den Zustand hatte ich halt noch nicht ;)

Welche Vorlage für die products_options benutzt Du denn? Wie gesagt, bei der product_options_dropdown scheint das zu funktionieren :confused:

Link to comment
Share on other sites

  • 11 months later...
  • 2 months later...

Würde mich gerne anschliessen. Ich habe auch das Problem, dass die Artikelattribute wie z.B. Farbe, Größe usw. in den Artikelansichten nicht ausgeblendet werden, obwohl sie nicht mehr auf Lager sind. Der Kunde erfährt erst dass der Artikel nicht mehr lieferbar ist, wenn er sich im Warenkorb befindet.

In den Lagerverwaltungsoptionen habe ich das einkaufen nicht vorrätiger Waren auf false gestellt. Das ändert aber nichts. Die ausverkauften Attribute werden nach wie vor in den Artikelansichten angezeigt. Ich habe aber schon xtc Shops gesehen, wo die nicht vorhandenen Artikelattribute nicht mehr angezeigt werden.

Habe jetzt das Forum und Google komplett auf den Kopf gestellt, kann aber nichts zu dem Problem finden.

Vielleicht erbarmt sich mal ein Profi dem Fussvolk und gibt uns einen entscheidenen Tipp :D

viele Grüße..

Link to comment
Share on other sites

  • 2 months later...

In irgendeinem Forum (kann hier gewesen sein) hab ich gelesen, wie man Artikel ohne Attribute automatisch ein und ausblendet:

includes/application_top.php

ganz am ende vor ?> folgendes einfügen:

xtc_db_query('UPDATE ' . TABLE_PRODUCTS . ' SET products_status=0 WHERE products_quantity <=0');

xtc_db_query('UPDATE ' . TABLE_PRODUCTS . ' SET products_status=1 WHERE products_quantity >=1');

Artikel wird ausgeblendet, wenn er ausverkauft ist und wieder eingeblendet, sobald ein neuer Lagerbestand im Admin eingetragen wird.

Trotzdem brauche ich noch Hilfe, wenn eben Attribute vorhanden sind.

Link to comment
Share on other sites

Lösung nach Ewigkeiten zufällig endlich gefunden!!! Für alle, die das auch noch brauchen:

Datei: includes/modules/product_attributes.php (Zeilen durch vorhandene Zeilen ersetzen)


$products_options_name_query = xtDBquery("select distinct popt.products_options_id, popt.products_options_name from ".TABLE_PRODUCTS_OPTIONS." popt, ".TABLE_PRODUCTS_ATTRIBUTES." patrib where patrib.products_id=’".$product->data['products_id']."‘ and patrib.options_id = popt.products_options_id and popt.language_id = ‘".(int) $_SESSION['languages_id']."‘ AND patrib.attributes_stock > 0 order by popt.products_options_name");[/PHP]

[PHP]
$products_options_query = xtDBquery("select pov.products_options_values_id,
pov.products_options_values_name,
pa.attributes_model,
pa.options_values_price,
pa.price_prefix,
pa.attributes_stock,
pa.attributes_model
from ".TABLE_PRODUCTS_ATTRIBUTES." pa,
".TABLE_PRODUCTS_OPTIONS_VALUES." pov
where pa.attributes_stock > 0 AND pa.products_id = ‘".$product->data['products_id']."‘
and pa.options_id = ‘".$products_options_name['products_options_id']."‘
and pa.options_values_id = pov.products_options_values_id
and pov.language_id = ‘".(int) $_SESSION['languages_id']."‘
order by pa.sortorder");
[/PHP]

Link to comment
Share on other sites

  • 5 months later...

<?php

/* -----------------------------------------------------------------------------------------
$Id: product_attributes.php 1255 2005-09-28 15:10:36Z mz $

XT-Commerce - community made shopping
http://www.xt-commerce.com

Copyright (c) 2003 XT-Commerce
-----------------------------------------------------------------------------------------
based on:
(c) 2000-2001 The Exchange Project (earlier name of osCommerce)
(c) 2002-2003 osCommerce(product_info.php,v 1.94 2003/05/04); www.oscommerce.com
(c) 2003 nextcommerce (product_info.php,v 1.46 2003/08/25); www.nextcommerce.org

Released under the GNU General Public License
-----------------------------------------------------------------------------------------
Third Party contribution:
Customers Status v3.x (c) 2002-2003 Copyright Elari [email protected] | www.unlockgsm.com/dload-osc/ | CVS : http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/elari/?sortby=date#dirlist
New Attribute Manager v4b Autor: Mike G | [email protected] | http://downloads.ephing.com
Cross-Sell (X-Sell) Admin 1 Autor: Joshua Dechant (dreamscape)
Released under the GNU General Public License
---------------------------------------------------------------------------------------*/

$module_smarty = new Smarty;
$module_smarty->assign('tpl_path', 'templates/'.CURRENT_TEMPLATE.'/');


if ($product->getAttributesCount() > 0) {
$products_options_name_query = xtDBquery("select distinct popt.products_options_id, popt.products_options_name from ".TABLE_PRODUCTS_OPTIONS." popt, ".TABLE_PRODUCTS_ATTRIBUTES." patrib where patrib.products_id='".$product->data['products_id']."' and patrib.options_id = popt.products_options_id and popt.language_id = '".(int) $_SESSION['languages_id']."' order by popt.products_options_name");

$row = 0;
$col = 0;
$products_options_data = array ();
while ($products_options_name = xtc_db_fetch_array($products_options_name_query,true)) {
$selected = 0;
$products_options_array = array ();

$products_options_data[$row] = array ('NAME' => $products_options_name['products_options_name'], 'ID' => $products_options_name['products_options_id'], 'DATA' => '');
$products_options_query = xtDBquery("select pov.products_options_values_id,
pov.products_options_values_name,
pa.attributes_model,
pa.options_values_price,
pa.price_prefix,
pa.attributes_stock,
pa.attributes_model
from ".TABLE_PRODUCTS_ATTRIBUTES." pa,
".TABLE_PRODUCTS_OPTIONS_VALUES." pov
where pa.products_id = '".$product->data['products_id']."'
and pa.options_id = '".$products_options_name['products_options_id']."'
and pa.options_values_id = pov.products_options_values_id
and pov.language_id = '".(int) $_SESSION['languages_id']."'
order by pa.sortorder");
$col = 0;
while ($products_options = xtc_db_fetch_array($products_options_query,true)) {
$price = '';
if ($_SESSION['customers_status']['customers_status_show_price'] == '0') {
$products_options_data[$row]['DATA'][$col] = array ('ID' => $products_options['products_options_values_id'], 'TEXT' => $products_options['products_options_values_name'], 'MODEL' => $products_options['attributes_model'], 'PRICE' => '', 'FULL_PRICE' => '', 'PREFIX' => $products_options['price_prefix']);
} else {
if ($products_options['options_values_price'] != '0.00') {
$price = $xtPrice->xtcFormat($products_options['options_values_price'], false, $product->data['products_tax_class_id']);
}

$products_price = $xtPrice->xtcGetPrice($product->data['products_id'], $format = false, 1, $product->data['products_tax_class_id'], $product->data['products_price']);
if ($_SESSION['customers_status']['customers_status_discount_attributes'] == 1 && $products_options['price_prefix'] == '+')
$price -= $price / 100 * $discount;

$attr_price=$price;
if ($products_options['price_prefix']=="-") $attr_price=$price*(-1);
$full = $products_price + $attr_price;
$products_options_data[$row]['DATA'][$col] = array ('ID' => $products_options['products_options_values_id'], 'TEXT' => $products_options['products_options_values_name'], 'MODEL' => $products_options['attributes_model'], 'PRICE' => $xtPrice->xtcFormat($price, true), 'FULL_PRICE' => $xtPrice->xtcFormat($full, true), 'PREFIX' => $products_options['price_prefix']);

//if PRICE for option is 0 we don't need to display it
if ($price == 0) {
unset ($products_options_data[$row]['DATA'][$col]['PRICE']);
unset ($products_options_data[$row]['DATA'][$col]['PREFIX']);
}

}
$col ++;
}
$row ++;
}

}

if ($product->data['options_template'] == '' or $product->data['options_template'] == 'default') {
$files = array ();
if ($dir = opendir(DIR_FS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/module/product_options/')) {
while (($file = readdir($dir)) !== false) {
if (is_file(DIR_FS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/module/product_options/'.$file) and ($file != "index.html") and (substr($file, 0, 1) !=".")) {
$files[] = array ('id' => $file, 'text' => $file);
} //if
} // while
closedir($dir);
}
$product->data['options_template'] = $files[0]['id'];
}

$module_smarty->assign('language', $_SESSION['language']);
$module_smarty->assign('options', $products_options_data);
// set cache ID

$module_smarty->caching = 0;
$module = $module_smarty->fetch(CURRENT_TEMPLATE.'/module/product_options/'.$product->data['options_template']);

$info_smarty->assign('MODULE_product_options', $module);
?>[/PHP]

das ist meine product_attributes.php

Link to comment
Share on other sites

Wenn ich das oben in meine product_attributes.php einfüge kommt die fehler meldung.

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '’3‘ and patrib.options_id = popt.products_options_id and popt.language_id = ‘2‘ ' at line 1

select distinct popt.products_options_id, popt.products_options_name from products_options popt, products_attributes patrib where patrib.products_id=’3‘ and patrib.options_id = popt.products_options_id and popt.language_id = ‘2‘ AND patrib.attributes_stock > 0 order by popt.products_options_name

[XT SQL Error]

Link to comment
Share on other sites

  • 9 months later...

sorry das ich das thema wieder vorhole, aber ich brauchte diese funktion und wollte nur mal kurz erklären wie der code eingebunden wird

suchen nach

$products_options_query = xtDBquery("select pov.products_options_values_id,
pov.products_options_values_name,
pa.attributes_model,
pa.options_values_price,
pa.price_prefix,
pa.attributes_stock,
pa.attributes_model
from ".TABLE_PRODUCTS_ATTRIBUTES." pa,
".TABLE_PRODUCTS_OPTIONS_VALUES." pov
where pa.products_id = '".$product->data['products_id']."'
and pa.options_id = '".$products_options_name['products_options_id']."'
and pa.options_values_id = pov.products_options_values_id
and pov.language_id = '".(int) $_SESSION['languages_id']."'
order by pa.sortorder");[/PHP]

ersetzen durch

[PHP]$products_options_query = xtDBquery("select pov.products_options_values_id,
pov.products_options_values_name,
pa.attributes_model,
pa.options_values_price,
pa.price_prefix,
pa.attributes_stock,
pa.attributes_model
from ".TABLE_PRODUCTS_ATTRIBUTES." pa,
".TABLE_PRODUCTS_OPTIONS_VALUES." pov
where pa.attributes_stock > 0 AND pa.products_id = '".$product->data['products_id']."'
and pa.options_id = '".$products_options_name['products_options_id']."'
and pa.options_values_id = pov.products_options_values_id
and pov.language_id = '".(int) $_SESSION['languages_id']."'
order by pa.sortorder"); [/PHP]

wenn der lagerbestand z.b. bei der grösse S NULL ist, wird in der Produktanzeige nur M, L und XL angezeigt. funktioniert bei mir super.

gruß patrick

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...