[Tep-j-general] Re: 商品ごとに配送方法を限定するには? (長文)

Back to archive index

Seiji Sogabe sogab****@alles*****
2005年 4月 17日 (日) 03:13:05 JST


こんにちは、曽我部です。

Margy Mutoh wrote:
> 曽我部さん、こんにちは。Margyです。(長文です。すみません)
> 
> ご報告遅くなりましたが、アドバイスいただいたコード、無事
> 動作確認しました。ありがとうございました。m(_ _)m
> おかげさまで、だいぶやりたいことが見えてきまして、これを
> 参考にうちのショップに最適な解決方法を模索しておりました。
> 結局、
> 
> 1)基本的には曽我部さんの案のように、常温/クール混在での
> チェックアウトを許さない方向で、
> 
> 2)配送モジュールで、ではなく、在庫数不足の警告のように、
> 「カートを見る」ページ(shopping.php)で警告を出す
> (〜できればチェックアウトさせない)
> 
> …というスタイルが最善であろうという結論に至りました。

たしかに、最後に警告を出すよりこちらのほうが、親切ですね。


> ----------------------------------------------------------------
> ●判定パターン
> ・常温(無印)/冷蔵(-C)/冷凍(-F) の3パターン
> 
> ●動作パターン
> ・1点でも他と違う配送温度が混在していたら、その商品をカートに
> 入れてカートの中身が表示された時点で警告を表示する
> ※admin基本設定-ショップ情報の「商品の追加後にカートを表示」= true
> 
> ◎TODO
> ・配送温度が混在している(mixed)場合、警告表示とともに、
> shopping_cart.phpの「レジヘ」ボタンを隠し、header.phpの「レジヘ
> 進む」リンクを無効にして、配送選択ページへ進ませない

shopping_cart.phpはわりと簡単にできそうですが、header.phpのほうは
力技以外は少し工夫がいりそうです。

> ・混在エラーが出た場合、在庫切れ商品のように、shopping_caret.php
> で配送温度の違う商品に目印を表示する(どの商品がひっかかったかを
> 明確に提示するため)

配送温度の違う商品をどう判断するかは置いといて、
classes/shopping_cart.phpの get_products()で、商品の配送温度を判断して
$products_array[]に追加しておけば、少なくとも商品の配送温度を
カートで表示できそうです。


> ----------------------------------------------------------------
> catalog/shopping_cart.php
> ※108行目あたり…

ですが、処理は変わらないほうですが、

<?php
      $delivery_temperature = $cart->get_delivery_temperature();
      $text = '';
      switch ($delivery_temperature) {
        case "normal":
          $text = '*** 現在のカートの中身は、すべて常温便でお届けする商品です ***';
          break;
        case "chilled":
        . (省略)
        .
      }
?>
      <tr>
        <td class="stockWarning" align="center"><br><?php echo $text; ?></td>
      </tr>

?>

のほうが、見やすいと思います。"stockWarning"はちょっとアレですが。

では。

-- 
sogab****@alles*****




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