Jump to content
xt:Commerce Community Forum

Artikelanzahl=0 -> Artikel ausblenden


andre_koller

Recommended Posts

Hallo Andre,

ist nicht so auswendig. Ändere in der includes/modules/product_listing.php diesen Absatz


 while ($listing = xtc_db_fetch_array($listing_query, true)) {

   $rows ++;

   $module_content[] =  $product->buildDataArray($listing);  

 }

in

 while ($listing = xtc_db_fetch_array($listing_query, true)) {

  if ( $listing['products_quantity'] > 0 ) {

   $rows ++;

   $module_content[] =  $product->buildDataArray($listing);

  }

 }


Ben

Link to comment
Share on other sites

Ich hoffe, ich darf mich an dieses Thema "dranhängen".

Statt den Artikel "auszublenden", hätte ich gerne einen Text geschrieben, z.B. "Zur Zeit vergriffen".

Ich dachte, dies über "Lagerampel" lösen zu können, doch eine richtige Lagerampel zu bauen, verstehe ich momentan noch nicht.

Gruß,

Sonja

Link to comment
Share on other sites

Danke Ben.

Klappt soweit wunderbar,

nur wird der Artikel noch unter zuleletzt angesehen oder neueste Artikel angezeigt, wenn einer dieser Fälle eintritt.

Im Kategorie-Menü werden in der Klammer für die Anzahl auch Artikel mit Anzahl = 0 dazu gerechnet.

Kann man dies auch noch irgendwie beheben?

Link to comment
Share on other sites

Hi Sonja,

für die Übersichtsseite musst Du in der includes/classes/products.php die Funktion BuildDataArray um die products_quantity ergänzen und dann im Template so etwas einbauen wie


{if $module_data.PRODUCTS_QUANTITY <= 0}{#TEXT_VERGRIFFEN#}{/if}

Nicht vergessen das TEXT_VERGRIFFEN noch in der Sprachdatei (zB. lang_german.conf) anzulegen. Die notwendigen Anpassungen in der products.php habe ich schon mal im Forum beschrieben: http://www.xt-commerce.com/forum/showthread.php?t=44427&highlight=builddataarray Für die Produktdetailseite ist es ähnlich. Da baust Du

{if $PRODUCTS_QUANTITY <= 0}{#TEXT_VERGRIFFEN#}{/if}

in das Template ein.

Ben

Link to comment
Share on other sites

Hi Ben,

while ($listing = xtc_db_fetch_array($listing_query, true)) {

if ( $listing['products_quantity'] > 0 ) {

$rows ++;

$module_content[] = $product->buildDataArray($listing);

}

}

danke für den Tip, jedoch sieht bei mir der Code gaaaanz anders aus und die Funktion buildDataArray() kennt er nicht, meldet Fehler: :confused:

while ($listing = xtc_db_fetch_array($listing_query, true)) {

$rows ++;

$price = $xtPrice->xtcGetPrice($listing['products_id'], $format = true, 1, $listing['products_tax_class_id'], $listing['products_price'], 1);

if ($_SESSION['customers_status']['customers_status_show_price'] != '0') {

$vpePrice = '';

if ($listing['products_vpe_status'] == 1 && $listing['products_vpe_value'] != 0.0 && $price['plain'] > 0)

$vpePrice = $xtPrice->xtcFormat($price['plain'] * (1 / $listing['products_vpe_value']), true).TXT_PER.xtc_get_vpe_name($listing['products_vpe']);

$buy_now = '';

if ($_SESSION['customers_status']['customers_fsk18'] == '1') {

if ($listing['products_fsk18'] == '0')

$buy_now = '<a href="'.xtc_href_link(basename($PHP_SELF), 'action=buy_now&BUYproducts_id='.$listing['products_id'].'&'.xtc_get_all_get_params(array ('action')), 'NONSSL').'">'.xtc_image_button('button_buy_now.gif', TEXT_BUY.$listing['products_name'].TEXT_NOW).'</a>';

} else {

$buy_now = '<a href="'.xtc_href_link(basename($PHP_SELF), 'action=buy_now&BUYproducts_id='.$listing['products_id'].'&'.xtc_get_all_get_params(array ('action')), 'NONSSL').'">'.xtc_image_button('button_buy_now.gif', TEXT_BUY.$listing['products_name'].TEXT_NOW).'</a>';

}

$fsk18 = '';

if ($listing['products_fsk18'] == '1')

$fsk18 = 'true';

}

$image = '';

if ($listing['products_image'] != '')

$image = DIR_WS_THUMBNAIL_IMAGES.$listing['products_image'];

if (ACTIVATE_SHIPPING_STATUS == 'true') {

$shipping_status_name = $main->getShippingStatusName($listing['products_shippingtime']);

$shipping_status_image = $main->getShippingStatusImage($listing['products_shippingtime']);

}

if ($_SESSION['customers_status']['customers_status_show_price'] != 0) {

$tax_rate = $xtPrice->TAX[$listing['products_tax_class_id']];

// price incl tax

if ($tax_rate > 0 && $_SESSION['customers_status']['customers_status_show_price_tax'] != 0) {

$tax_info = sprintf(TAX_INFO_INCL, $tax_rate.' %');

}

// excl tax + tax at checkout

if ($tax_rate > 0 && $_SESSION['customers_status']['customers_status_show_price_tax'] == 0 && $_SESSION['customers_status']['customers_status_add_tax_ot'] == 1) {

$tax_info = sprintf(TAX_INFO_ADD, $tax_rate.' %');

}

// excl tax

if ($tax_rate > 0 && $_SESSION['customers_status']['customers_status_show_price_tax'] == 0 && $_SESSION['customers_status']['customers_status_add_tax_ot'] == 0) {

$tax_info = sprintf(TAX_INFO_EXCL, $tax_rate.' %');

}

}

$ship_info="";

if (SHOW_SHIPPING=='true') {

$ship_info=' '.SHIPPING_EXCL.'<a href="javascript:newWin=void(window.open(\''.xtc_href_link(FILENAME_POPUP_CONTENT, 'coID='.SHIPPING_INFOS).'\', \'popup\', \'toolbar=0, width=640, height=600\'))"> '.SHIPPING_COSTS.'</a>';

}

$module_content[] = array ('PRODUCTS_NAME' => $listing['products_name'],

'PRODUCTS_MODEL' => $listing['products_model'],

'PRODUCTS_EAN' => $listing['products_ean'],

'PRODUCTS_SHIPPINGTIME'=>$listing['products_shippingtime'],

'PRODUCTS_QUANTITY'=>$listing['products_quantity'],

'PRODUCTS_TAX_INFO' => $tax_info,

'PRODUCTS_SHIPPING_LINK' => $ship_info,

'PRODUCTS_SHORT_DESCRIPTION' => $listing['products_short_description'],

'PRODUCTS_IMAGE' => $image,

'PRODUCTS_PRICE' => $price['formated'],

'PRODUCTS_VPE' => $vpePrice,

'PRODUCTS_LINK' => xtc_href_link(FILENAME_PRODUCT_INFO, xtc_product_link($listing['products_id'],$listing['products_name'])),

'BUTTON_BUY_NOW' => $buy_now,

'PRODUCTS_FSK18' => $fsk18,

'SHIPPING_NAME' => $shipping_status_name,

'SHIPPING_IMAGE' => $shipping_status_image,

'PRODUCTS_ID' => $listing['products_id']);

}

Hab die if-Abfrage nun um den ganzen Block gebaut - und es geht *freu*

Danke!

Sue

Link to comment
Share on other sites

Hi Sue,

haste richtig gemacht!

Vielleicht hätte ich dazuschreiben sollen, das meine Codeschnipsel für die Version 3.04Sp2.1 sind.

In der V 3.04Sp1, die Du vermutlich einsetzt, muss das tatsächlich "um den ganzen Block". Aber bitte innerhalb der while Schleife, also so:


while ($listing = xtc_db_fetch_array($listing_query, true)) {

if ( $listing['products_quantity'] > 0 ) {

$rows ++;

$price = $xtPrice->xtcGetPrice($listing['products_id'], $format = true, 1, $listing['products_tax_class_id'], $listing['products_price'], 1);

.

.

.

'SHIPPING_IMAGE' => $shipping_status_image, 

'PRODUCTS_ID' => $listing['products_id']);

}

} 

Ben

Link to comment
Share on other sites

  • 1 year later...

Ich habe das Problem, dass Artikel nicht mehr aktiviert werden wenn Lagerbestand>0. Ein lustiger Mitarbeiter unserer Logistiksoftware hat die Deaktivierung eingestellt und hat niemandem gesagt wo/wie. Nun arbeitet er nicht mehr bei der Firma.

=> Artikel werden inaktiv geschaltet wenn Lagerbestand=0 und verrotten dann, bis sie bei einer (inzwischen schon Routine-) Kontrolle entdeckt werden.

Kann mir jemand sagen wo das ggf. stecken könnte?

Link to comment
Share on other sites

Wie wäre es, im Admin-Bereich mal den lustigen Navigationspunkt "Lagerverwaltungs-Optionen" im Menübereich "Konfiguration" anzuklicken? Hhmm, was der wohl macht? :rolleyes:

Was finden wir da? Richtiiig: Eine Einstellung: "Einkaufen nicht vorrätiger Ware erlauben": Ja oder nein

Richtig, funktioniert aber offenbar nicht bei jedem. Und wenn man da statt dessen "Ist zur Zeit vergriffen" stehen haben will oder nur den Kaufbutton ausblenden will, oder ...

tuvalu_

Link to comment
Share on other sites

Was finden wir da? Richtiiig: Eine Einstellung: "Einkaufen nicht vorrätiger Ware erlauben": Ja oder nein

Hm..diese Einstellung ist aber nur dafür zuständig, dass die Artikel in den Warenkorb gelegt, aber nicht gekauft werden können. Dafür ist ja dann diese "Kennzeichnung vergriffener Artikel" da. Das Problem ist aber, dass die Artikel deaktiviert werden.

Irre ich mich?

Link to comment
Share on other sites

  • 2 weeks later...

Archived

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

×
  • Create New...