1

マジェント1.8vを使用。

顧客がカートに製品を追加するときの私のカスタマイズ。一部の製品の数量は変更できません (つまり、数量は固定されています)。また、一部の製品は数量を変更できます。

例 :

cat1 
  products 
cat2
  subcat      
  subcat

例: cat1 製品は数量変更が許可されているため、ショッピング カートに追加すると 1 になり、残りのカテゴリは許可されないため、在庫アイテム値になります。

このクラス Mage/Checkout/Model/Cart.php で以下のコードを試していますが、エラーがスローされます

$categoryIds=$this->getProduct()->getCategoryIds($productid);
    foreach($categoryIds as $categoryId)    
    $category = Mage::getModel('catalog/category')->load($categoryId);
    if ($category->getName() == 'cat1')   
        $minimumQty = $product->getStockItem()->getMinSaleQty();  
   else if($category->getName() == 'cat2')                        
         minimumQty=stock_item->loadByProduct($product)->getQty();   

カテゴリ名を取得するにはどうすればよいですか?

4

1 に答える 1

1

ローカル インストールで問題を再現しようとしました。

私は次のようにしました

app\design\frontend\base\default\template\checkout\cart\item\default.phtml製品の入力ボックスを含む td のファイルに、次のコードを追加しました。

<?php
    $categoryIds = $this->getProduct()->getCategoryIds($_item->getId());
    foreach($categoryIds as $categoryId) {
        $category = Mage::getModel('catalog/category')->load($categoryId);
        if($category->getId()=='3') {
            $minimumQty = $this->getProduct()->getStockItem()->getMinSaleQty(); 
        } else {
            $minimumQty = $this->getQty();
        }
    }
?>
<input name="cart[<?php echo $_item->getId() ?>][qty]" value="<?php echo $minimumQty ?>" size="4" title="<?php echo $this->__('Qty') ?>" class="input-text qty" maxlength="12" />

私のカテゴリは 3 です。ファイルを実行すると、この製品のショッピング カートに追加する最小数量である 3 が正しく表示されます。

私はmagentoがこの発生時にすでにエラーメッセージを表示しているので疑問に思っていましたが、つまり

ご希望の数量をご注文いただけない商品もございます。

カートの上と

  • 購入できる最小数量は 3 です。

下の商品名

なぜこれを行う必要があるのですか?

于 2013-11-15T11:01:17.327 に答える