2016-12-27 3 views

答えて

0

良い解決策は、写真がない状態のすべてのシンプルな製品を設定し、設定をsystem->catalog->inventory->stock options->Display Out of Stock Productsに設定することです。

製品のインポートロジックをお持ちの場合は、そのコードをそのロジックに統合することができます。

+0

遅くまで再生して申し訳ありません。私はすでに画像なしアイテムを製品リストから削除しました。今私は設定可能からオプションを削除する必要があります。 1つの構成可能要素が、サイズSおよびMを有する2つの子アイテムを有すると仮定する.Sは画像を有し、Mはそうでない。この場合、私はSだけを表示したいと思います。現在のところ、どちらも表示されています。Mをクリックすると、画像が保存されていない場所が表示されます。 申し訳ありませんが、上記の解決策はここでは機能しません。 –

+0

@JicksonJohnsonKoottala解決策はまだ関連しています。シンプルな製品が在庫切れの場合は、私が言及した設定で設定可能なオプションに表示されません。 – shemaya

+0

@ shemaya申し訳ありませんが、まだそれは良い解決策ではありません。このようにすれば、イメージステータスに基づいて単純な商品を在庫切れにするにはどのようにすればよいのかといった別の質問が必要になるためです。 ?詳細ページでリアルタイムに行う必要があります。私はすでに答えを見つけて上記に載せました。 在庫切れの商品を置くと、設定可能なオプションに表示されません。正しいものです。このエリアからそれを隠すために在庫切れにするのは良い考えではありません。私はあなたがそのアイディアを得たことを願っています –

0

解決策が見つかりました。 私が気づいたことは、構成可能な製品のオプションは、のブロックMage_Catalog_Block_Product_View_Type_Configurableにあります。私がやったことは、私のモジュールでこのブロックを書き直し、その中に以下のコードを入れて関数を変更します。

public function getJsonConfig() 
    { 
     $attributes = array(); 
     $options = array(); 
     $store  = $this->getCurrentStore(); 
     $taxHelper = Mage::helper('tax'); 
     $currentProduct = $this->getProduct(); 

     $preconfiguredFlag = $currentProduct->hasPreconfiguredValues(); 
     if ($preconfiguredFlag) { 
      $preconfiguredValues = $currentProduct->getPreconfiguredValues(); 
      $defaultValues  = array(); 
     } 

     foreach ($this->getAllowProducts() as $product) { 
      if($product->getImage() && $product->getImage() != 'no_selection'){ 
       $productId = $product->getId(); 
       foreach ($this->getAllowAttributes() as $attribute) { 
        $productAttribute = $attribute->getProductAttribute(); 
        $productAttributeId = $productAttribute->getId(); 
        $attributeValue  = $product->getData($productAttribute->getAttributeCode()); 
        if (!isset($options[$productAttributeId])) { 
         $options[$productAttributeId] = array(); 
        } 

        if (!isset($options[$productAttributeId][$attributeValue])) { 
         $options[$productAttributeId][$attributeValue] = array(); 
        } 
        $options[$productAttributeId][$attributeValue][] = $productId; 
       } 
      } 
     } 

私は許さ製品のforeachループでif($product->getImage() && $product->getImage() != 'no_selection'){を追加しました。これは、画像項目を構成可能なオプションjsonオブジェクト配列にフィルタリングするだけです。

関連する問題