売り切れのときBuy Nowをsold outに置き換えることで、在庫があるときは
Buy Nowボタン、商品がないときはsold out、また商談中などで商品の注文
を一時的に受け付けないときなどはholdなどを表示するようにして注文の
可否を制御する。
売り切れは数量が0のときとし、商談中は数量をマイナス値とする。
数量を限定しての商談は一時的に商品管理画面で直接数量を減らせば済む
ことなので対応は考えないことにする。
/catalog/includes/modules/product_listing.phpへの修正は、
17行目付近、$listing_numrows_sql = $listing_sql;の前の行に、
if (! strpos($listing_sql, "products_quantity")) {
$listing_sql = str_replace("select ", "select p.products_quantity,", $listing_sql);
}
を追加してSQL文を調整し、170行目付近の case \'PRODUCT_LIST_BUY_NOW\':
からbreakまでの間を以下のように修正する。
if (($listing[\'products_quantity\']) == 0) {
$lc_text = \'<span class="markProductOutOfStock">\' . STOCK_MARK_PRODUCT_OUT_OF_STOCK . \'</span>\';
} elseif (($listing[\'products_quantity\']) < 0) {
$lc_text = \'<span class="markProductOutOfStock">\' . \'hold\'/*STOCK_MARK_PRODUCT_HOLDING*/ . \'\';
} else {
$lc_text = \'<a href="\' . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array(\'action\')) . \'action=buy_now&products_id=\' . $listing[\'products_id\']) . \'">\' . tep_image_button(\'button_buy_now.gif\', TEXT_BUY . $listing[\'products_name\'] . TEXT_NOW) . \'</a> \';
}