2012-08-29 14 views
6

Her türlü şeyi denedim ve hiçbir yere gitmiyorum. Lütfen birisi bana tüm ürün özellik kümelerinin ismini ve kimliğini nasıl alacağımı gösterir? Bir 'Varsayılan' olacaktır ...Magento mevcut öznitelik kümesi kimliklerini ve isimlerini harici komut dosyasından alabilir

Özel bir alıntı sistemi yapıyorum ve özellik kümelerini çekip, kullanıcıların ilk önce bunları seçebilmelerini ve ardından o gruba atanan ürünleri yükleyebilmelerini sağladım.

Yardımlarınız için çok teşekkürler.

$attributeSetCollection = Mage::getResourceModel('eav/entity_attribute_set_collection') ->load(); 

yineleme:

cevap

12

Niteliği yükleyebilirsiniz ile setleri

foreach ($attributeSetCollection as $id=>$attributeSet) { 
    $entityTypeId = $attributeSet->getEntityTypeId(); 
    $name = $attributeSet->getAttributeSetName(); 
    Mage::log("ATTRIBUTE SET :".$name." - ".$id); 
} 

Daha sonra belirlenen özelliğe göre koleksiyonunuzu yükleyebilirsiniz.

+0

Mükemmel:

Nitekim size System.XML böyle alanına ihtiyacınız olacak! Çok teşekkürler :) –

+1

Kod, tüm özellik kümelerini döndürür. Sadece 'Yönetici> Nitelikler> Öznitelik Kümelerini Yönet' bölümünde görülenleri istedim. Bunu koleksiyonuna ekle: // Yalnızca ürünler için kullanılabilecek ve filtre ekleyebileceğiniz setlerle ilgileniyoruz. Mage_Adminhtml_Block_Catalog_Product_Attribute_Set_Grid dayanarak // -> _ prepareCollection() ve // Mage_Adminhtml_Catalog_Product_SetController -> _ setTypeId() $ entity_type = Büyücü :: getModel ('katalog/ürün') -> getResource() -> getTypeId(); $ özniteliğiSetCollection-> setEntityTypeFilter ($ entity_type); NB Çalışması için '-> load()' parçasını kaldırın. – Mondane

2
Eğer aşağıda kodlama takip edebilirsiniz gösterildiğini attributeSets yöneticinin öznitelik kümesi bölümünü yönetmek almak için çalışıyoruz Yani şöyle

:

<?php 
     require_once('app/Mage.php'); 
     umask(0); 
     Mage::app();//->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID); 
     $entityType = Mage::getModel('catalog/product')->getResource()->getTypeId(); 
     $collection = Mage::getResourceModel('eav/entity_attribute_set_collection')->setEntityTypeFilter($entityType); 
     $allSet = array(); 
     foreach($collection as $coll){ 
     $attributeSet['name'] = $coll->getAttributeSetName(); 
     $attributeSet['id'] = $coll->getAttributeSetId(); 
     $allSet[] = $attributeSet; 
     } 
     echo "<pre>"; 
     print_r($allSet); 
     echo "</pre>"; 
?> 

tıklayın here! Daha fazla referans için. Eğer Magento Yönetici Sistemi> Configuration bir Özellik set seçici almak istiyorsanız

0

bu sınıf yararlı olacaktır:

class CompanyName_ModuleName_Model_System_Config_Source_Catalog_Product_Attributeset 
{ 

    protected $_options = array(); 

    public function toOptionArray() 
    { 
     if (!count($this->_options)) { 
      $entityTypeId   = Mage::getResourceModel('catalog/product')->getTypeId(); 
      $attributeSetCollection = Mage::getResourceModel('eav/entity_attribute_set_collection') 
        ->setEntityTypeFilter($entityTypeId); 

      foreach ($attributeSetCollection as $_attributeSet) { 
       $this->_options[] = array(
        'value' => $_attributeSet->getId(), 
        'label' => $_attributeSet->getAttributeSetName() 
       ); 
      } 
     } 
     return $this->_options; 
    } 

} 

Bu catalog_product varlık türü ile sınırlıdır setleri bağlıyor.

<select_attribute_set translate="label"> 
    <label>Default Attribute Set for new importing products</label> 
    <frontend_type>select</frontend_type> 
    <source_model>companyname_modulename/system_config_source_catalog_product_attributeset</source_model> 
    <sort_order>30</sort_order> 
    <show_in_default>1</show_in_default> 
</select_attribute_set> 
İlgili konular