2017-04-04 142 views
0

有沒有什麼方法可以通過哪個簡單的產品圖像將被可配置的產品使用。例如,我有一個可配置的產品,其中有4個簡單的產品,不同的圖像和庫存。所以,可配置產品應該選擇其中一個簡單的產品圖像是存貨的。如果簡單的產品缺貨,那麼可配置的產品應該自動選擇不同的簡單產品圖像。 我需要此功能,因爲有時可配置產品中顯示的顏色選項不適用於客戶。如何將簡單產品圖像用於可配置的產品圖像?

Devs,或者暗示我一些插件,或者是否可以通過任何代碼或任何magento配置或產品中的某種更改。另外,讓我知道這是否可行。 每個建議對我來說都很有價值,謝謝。

+0

我認爲你必須指定一個可配置產品的圖像。我使用帶有簡單配置產品擴展的Magento 1.8.1,當用戶選擇特定的簡單產品時,將圖像更新爲該產品的圖像。我不知道後來的版本是如何處理的。 – PedroKTFC

回答

0

使用下面的代碼上media.phtml文件(app\design\frontend\{{template name}}\default\template\catalog\product\view\media.phtml)

<?php if($_product->getTypeId() == "configurable"){ 
    $_configurable = $_product->getTypeInstance()->getUsedProductIds(); 
    foreach ($_configurable as $_config){ 
     $_simpleproduct = Mage::getModel('catalog/product')->load($_config); 
     $stock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($_simpleproduct); 
     if($stock->getQty() && $stock->getIs_in_stock()){ 
      foreach ($_simpleproduct->getMediaGalleryImages() as $image) { 
       echo '<img src="'.$image->getUrl().'" /><br>'; 
      } 
      break;   
     } 
}} ?> 
0

請檢查這個Product Image Attribute extension,可能對您有用。 擴展允許設置媒體附加屬性。您可以將某些圖像指定爲產品的附加屬性。

按「詢問」討論您需要的附加功能。

+0

請帶上更多關於解決方案的信息。答案應該包含一個答案。 https://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-links-elsewhere-really-good-answers –

0

在查看產品配置的基礎映像

接受的答案是一個有效的解決方案,但是,我寧願叫getUsedProductCollection()直接我認爲這樣更有效率。 getUsedProductIds()最終調用getUsedProductCollection(),同時添加多個屬性,遍歷集合,挑選並返回簡單的產品ID。所以最終這意味着我們需要多個循環,我們只需要一個循環,再加上比我們需要的東西更多的東西。

因此,假設我們正在使用Magentos catalog/product/view/media.phtml模板的副本。我們會更換線36 & 37本:

$baseImage = $_product->getImage(); 
    if($_product->getTypeId() == Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE){ 
     $simpleCollection = $_product->getTypeInstance()->getUsedProductCollection($_product) 
      ->addAttributeToSelect('image') 
      // Optionally: 
      //->addAttributeToSelect('small_image') 
      //->addAttributeToSelect('thumbnail') 
      ->addFieldToFilter('image', array('notnull'=>true)) 
      ->addFilterByRequiredOptions(); 

     // Filter out all child products that are out of stock 
     Mage::getSingleton('cataloginventory/stock') 
      ->addInStockFilterToCollection($simpleCollection); 

     if($simpleCollection->getSize())) 
      $baseImage = $simpleCollection->getFirstItem()->getImage(); 
    } 
?> 
<?php if ($baseImage != 'no_selection' && $baseImage): ?> 

這樣,我們也有情況下沒有可用簡單的產品的後備其實有自己的「基本鏡像」。

然後在原來的線40,我們只需要添加$ baseImage爲Mage_Catalog_Helper_Image的)第三個參數::初始化(:

[...]$this->helper('catalog/image')->init($_product, 'image', $baseImage)[...] 

和任選的,我們可以用同樣的$ simpleCollection列出所有簡單產品圖片以縮略圖的形式,如果我們喜歡的是:

<?php foreach ($simpleCollection as $_simple): ?> 
    <li> 
     <img src="<?php echo $this->helper('catalog/image')->init($_simple, 'thumbnail', $_simple->getImage())->resize(56); ?>" width="56" height="56" /> 
    </li> 
<?php endforeach; ?> 

配置的小圖片在產品列表

當我第一次看到這個問題時,我想它是要求在產品列表中顯示下一個可用的兒童產品的「小圖片」。由於這個問題實際上並不明確,所以對這種可能的解釋至少加上一個簡短的答案可能對那些正好在尋找那個人的人有所幫助。

在產品列表中,我們不希望加載每個可配置的簡單集合,只需要獲得一個產品圖像。當我被要求準備一個可能的解決方案時,我選擇爲可配置(和blunde)產品創建一個新產品屬性,該產品存儲其可用子產品的ID。我添加了股票事件觀察員,以便在鏈接的子產品缺貨時更新此值。

既然我們已經有了一個可以接受的答案,我認爲沒有必要詳細說明這一點。不過,對於這個草稿感興趣的人,我已經上傳了here

相關問題