[Tep-j-general] Re: 在庫切れ画像表示の件(少し進みました。)

Back to archive index

vishwakarman aruni****@tkb*****
2004年 4月 30日 (金) 05:56:10 JST


ごとうさま。

高橋と申します。

私のところでは、新着商品のところでは、在庫ありの商品のみとし、カテゴリごとの
一覧表示、
商品の詳細表示、レビューの表示のときに、「売り切れ」と表示するようにしまし
た。

在庫切れ商品の「売り切れ」の表示を商品ごとに設定できるようにしました。
(adminの商品登録画面で、「売り切れ」の表示の設定できるようにしました)

在庫0の商品をすべて「売り切れ」として表示するのでなく、「売り切れ」の表示設
定した商品を、
在庫が0のときに「売り切れ」として表示するようにしました。

新着商品のところでは、在庫ありの商品のみとしています。

カテゴリの一覧表示、商品の詳細表示、レビューの表示のときに、在庫0でも表示で
きるようにしました。
 products_statusが1のとき「カートに入れる」、それ以外のとき「売り切れ」と表
示を変える。

以下のようにして対応しました。
(プログラムは他の修正もされていますので、行は目安で見てください。)

まだ、PHPの初心者ですので、改善点などあればご教示ください。

---修正は以下のとおりです
●products テーブルにフィールドを追加
  products_sold_out :売り切れの表示有無の判定用

●/admin/categories.php の修正

      case 'insert_product':
      case 'update_product':
のところの 208行
'products_status' =>
tep_db_prepare_input($HTTP_POST_VARS['products_status']),
の後に

'products_sold_out' =>
tep_db_prepare_input($HTTP_POST_VARS['products_sold_out']),
を追加

270行を以下のように修正(products_sold_outを追加)
tep_db_query("insert into " . TABLE_PRODUCTS . " (products_quantity,
products_model,products_image,
products_price, products_buying_price, products_date_added,
products_date_available, products_weight,
products_status, products_sold_out, products_tax_class_id, manufacturers_id)
values ('" .
$product['products_quantity'] . "', '" . $product['products_model'] . "', '"
. $product['products_image'] . "', '" .
 $product['products_price'] . "', '" . $product['products_buying_price'] .
"',  now(), '" .
 $product['products_date_available'] . "', '" . $product['products_weight']
. "', '0', '0', '" .
 $product['products_tax_class_id'] . "', '" . $product['manufacturers_id'] .
"')");

327行を以下のように修正(products_sold_outを追加)
$product_query = tep_db_query("select pd.products_name,
pd.products_description, pd.products_url, p.products_id,
p.products_quantity, p.products_model, p.products_image, p.products_price,
p.products_buying_price, p.products_weight,
 p.products_date_added, p.products_last_modified,
date_format(p.products_date_available, '%Y-%m-%d') as
products_date_available,
 p.products_status, p.products_sold_out, p.products_tax_class_id,
p.manufacturers_id from " . TABLE_PRODUCTS . " p, " .
 TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_id = '" .
$HTTP_GET_VARS['pID'] . "' and
p.products_id = pd.products_id and pd.language_id = '" . $languages_id .
"'");

359行の
    switch ($pInfo->products_status) {
      case '0': $in_status = false; $out_status = true; break;
      case '1':
      default: $in_status = true; $out_status = false;
    }
の後に以下を追加

    switch ($pInfo->products_sold_out) {
      case '0': $list_sold_out = false; $nolist_sold_out = true; break;
      case '1':
      default: $list_sold_out = true; $nolist_sold_out = false;
    }

392行の後に以下を追加
 商品登録画面で 売り切れという表示の有無をラジオボタンで選択するようにする
          <tr><!---  sold out        --->
            <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif',
'1', '10'); ?></td>
          </tr>
          <tr>
            <td class="main"><?php echo TEXT_PRODUCTS_SOLD_OUT; ?></td>
            <td class="main"><?php echo
tep_draw_separator('pixel_trans.gif', '24', '15') . '&nbsp;' .
tep_draw_radio_field('products_sold_out', '1', $list_sold_out) . '&nbsp;' .
TEXT_PRODUCTS_SOLD_OUT_LIST .
 '&nbsp;' . tep_draw_radio_field('products_sold_out', '0', $nolist_sold_out)
. '&nbsp;' . TEXT_PRODUCTS_SOLD_OUT_NOLIST; ?></td>
          </tr><!---  sold out  end      --->

535行を以下のように修正(products_sold_outを追加)
      $product_query = tep_db_query("select p.products_id, pd.language_id,
pd.products_name, pd.products_description,
 pd.products_url, p.products_quantity, p.products_model, p.products_image,
p.products_price, p.products_buying_price,
 p.products_weight, p.products_date_added, p.products_last_modified,
p.products_date_available, p.products_status,
p.products_sold_out, p.manufacturers_id  from " . TABLE_PRODUCTS . " p, " .
TABLE_PRODUCTS_DESCRIPTION .
 " pd where p.products_id = pd.products_id and p.products_id = '" .
$HTTP_GET_VARS['pID'] . "'");

730行から732行を以下のように修正(products_sold_outを追加)
  	  $products_query = tep_db_query("select p.products_id,
pd.products_name, p.products_quantity, p.products_image,
 p.products_price, p.products_buying_price, p.products_date_added,
p.products_last_modified, p.products_date_available,
p.products_status, p.products_sold_out from " . TABLE_PRODUCTS . " p, " .
TABLE_PRODUCTS_DESCRIPTION . " pd, "
 . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_id = pd.products_id
and pd.language_id = '" . $languages_id .
 "' and p.products_id = p2c.products_id and pd.products_name like '%" .
$HTTP_GET_VARS['search'] . "%' order by pd.products_name");
    } else {
      $products_query = tep_db_query("select p.products_id,
pd.products_name, p.products_quantity, p.products_image,
p.products_price, p.products_buying_price, p.products_date_added,
p.products_last_modified, p.products_date_available,
 p.products_status, p.products_sold_out from " . TABLE_PRODUCTS . " p, " .
TABLE_PRODUCTS_DESCRIPTION . " pd, " .
TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_id = pd.products_id
and pd.language_id = '" . $languages_id .
 "' and p.products_id = p2c.products_id and p2c.categories_id = '" .
$current_category_id . "' order by pd.products_name");



●/admin/includes/languages/japanese/categories.php に追加

// 'Products Sold Oou:'                    ##  31216 add   -----
define('TEXT_PRODUCTS_SOLD_OUT', '売り切れ商品表示:');
// 'List'                                  ##  31216 add   -----
define('TEXT_PRODUCTS_SOLD_OUT_LIST', '表示する');
// 'Not list'                              ##  31216 add   -----
define('TEXT_PRODUCTS_SOLD_OUT_NOLIST', '表示しない');

●画像の登録
 catalog/includes/languages/japanese/images/buttonsに 
 画像
 button_sold_out.gif(product_info.phpで使用)
 button_sold_out_2.gif(product_listing.phpで使用)
 を登録

/***********************/
●/catalog/default.php の修正
 在庫が0の場合にも商品リストに表示するようにする。

171,174,177,182,185,188行の

where p.products_status = '1'  のところを下記に変更

where ( p.products_status = '1' or p.products_sold_out = '1' )


●/catalog/includes/modules/product_listing.phpの修正

179行を以下に修正
            if($listing_values['products_status'] =='1'){
                 $lc_text = '<a href="' . tep_href_link(basename($PHP_SELF),
tep_get_all_get_params(array('action')) .
 'action=buy_now&products_id=' . $listing_values['products_id'], 'NONSSL') .
'">' . tep_image_button('button_buy_now.gif',
TEXT_BUY . $listing_values['products_name'] . TEXT_NOW) . '</a>&nbsp;';
                }else{
                  $lc_text = '<img
src="includes/languages/japanese/images/buttons/button_sold_out_2.gif"
border="0"
 lt="売り切れ" width="60" height="14">';
                }


●/catalog/reviews.phpの修正
60行の
where p.products_status = '1' のところを下記に変更

where ( p.products_status = '1' or p.products_sold_out = '1' )

●/catalog/includes/boxes/reviews.phpの修正
 23,25 行の
where p.products_status = '1' のところを下記に変更

where ( p.products_status = '1' or p.products_sold_out = '1' )



●/catalog/product_reviews_info.phpの修正
 107行を以下に修正
               if($product_values['products_status'] =='1'){
                     echo '<a href="' . tep_href_link(FILENAME_DEFAULT,
'action=buy_now&products_id=' .
$product_values['products_id'], 'NONSSL') . '">' .
tep_image_button('button_in_cart.gif', IMAGE_BUTTON_IN_CART) .'</a>' ;
                }else{ //31216 TAKA sold out button added
                 echo tep_image_button('button_sold_out.gif',
IMAGE_BUTTON_SOLD_OUT);
                }

●/catalog/product_info.phpの修正
 53行を以下に変更

  $product_info = tep_db_query("select p.products_id, pd.products_name,
pd.products_description, p.products_model,
p.products_quantity, p.products_image, pd.products_url, p.products_price,
p.products_tax_class_id, p.products_date_added,
p.products_date_available, p.manufacturers_id, p.products_status,
p.products_sold_out from " . TABLE_PRODUCTS . " p, " .
TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_id = '" .
$HTTP_GET_VARS['products_id'] . "' and
pd.products_id = '" . $HTTP_GET_VARS['products_id'] . "' and pd.language_id
= '" . $languages_id . "'");

----------------- 
以上です。

 
ヴィシュワカルマン 高橋。

-----Original Message-----
From: tep-j****@lists*****
[mailto:tep-j****@lists*****]On Behalf Of
EZW02****@nifty*****
Sent: Wednesday, April 28, 2004 7:55 PM
To: Tep-J-General @ Lists. Sourceforge. Jp
Subject: [Tep-j-general] 在庫切れ画像表示の件(少し進みました。)


こんにちは。
ごとうと申します。
在庫切れ表示の件で違うスレッドに追加投稿してしましました。
申し訳ございません。

在庫切れ表示の件ですが、商品詳細画面と新着商品リストになんとか「カートに入れ
る」
を「soldout」画像に変更する事ができました。
しかしながら、困った事に新着商品リストの在庫があるものまで全部「カートに入れ
る」が
「soldout」に変わってしまいました。

catalog/default.phpを変更して取り扱い商品一覧の画面は在庫がないものしか
「soldout」
表示しないように修正できていますが、新着商品リストの場合はどこをどう修正すれ
ば良い
のでしょうか。
申し訳ございませんがおわかりになる方がおられましたら教えていただけないで
しょうか。

ごとう。


>-----Original Message-----
>From: EZW02****@nifty***** [mailto:EZW02****@nifty*****]
>Sent: Tuesday, April 27, 2004 7:02 PM
>To: tep-j****@lists*****
>Subject: 在庫切れ画像表示の件
>
>
>こんにちは。
>ごとうと申します。
>osCommerseを最近インストールしていろいろと設定をしています。
>
>在庫切れした場合の在庫切れ画像の表示の設定を行っている所です。
>メーリングリストのログをいろいろと探して設定しているのですが、
>商品詳細画面と新着商品リストの在庫切れ表示の設定で行き詰まりました。
>
>取り扱い商品リスト、商品検索結果リストの在庫が切れた場合の「今すぐ購入」を
>表示させずに在庫切れ画像を表示させる設定はなんとかできたのですが、
>商品詳細画面と新着商品リストでの在庫が切れた場合の「カートに入れる」
>を表示させずに在庫切れ画像を表示させるのをどう書き換えれば良いのかわかりま
せ
>ん。
>
>下記ファイルを換えると良いとは思うのですが。
>/catalog/product_info.php
>/catalog/includes/modules/products_new.php
>
>どなたか教えていただくとありがたいです。
>お忙しいところ申し訳ございません。
>どうぞよろしくお願いします。
>
>ごとう。
>
>
>
>

_______________________________________________
Tep-j-general mailing list
Tep-j****@lists*****
http://lists.sourceforge.jp/mailman/listinfo/tep-j-general




Tep-j-general メーリングリストの案内
Back to archive index