引用:
soy_beanさんは書きました:
詳細のほうだけですが、
「カゴに入れる」を押したときに、まだpriceの情報がカートセッションに入っていないため、カートに金額が反映されていないと思います。
カートはセッションの情報を参照して金額や数量だしているみたい。
detail.tplに
<input type="hidden" name="price" value="<!--{$arrProduct.price02_min_inctax}-->" />
あたりを追加して
LC_Page_Products_Detail.phpの
case 'cart'内の$objCartSess->addProductにpriceを追加
$objCartSess->addProduct($product_class_id, $this->objFormParam->getValue('quantity'), $this->objFormParam->getValue('price'));
SC_CartSession.phpのfunction addProductを
function addProduct($product_class_id, $quantity, $price) {
にして
if (strlen($val) <= INT_LEN) { 内に
$this->cartSession[$productTypeId][$i]['price'] = $price;
if (!$find) { 内に
$this->cartSession[$productTypeId][$max+1]['price'] = $price;
を追加する感じで自分はごまかしました。
もっといいやり方あると思いますし、
他で使うかもしれないので元の関数は残して、
いじる関数は別名にした方がいいと思います。
SC_CartSession#addProduct の末尾に下記コードを1行追加するだけで十分なようです。(2.12.2 で確認)
$this->getCartList($productTypeId);
----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。