Cần hỏi về system attribute và custom attribute

Thảo luận trong 'Programming Questions' bắt đầu bởi kocoten1992, 17 Tháng mười một 2013.

  1. kocoten1992

    kocoten1992 New Member

    Chào mọi người

    Tôi muốn hỏi vấn đề như thế này, giả sử tôi có 2 cửa hàng bán quần áo và giày dép, tôi muốn thêm những attribute như dress_color, shoes_color, dress_price, shoes_image, shoes_description ... thay cho những thuộc tính hệ thống magento cho sẵn như price, short_description ...

    Nhưng sau khi check lại thì thuộc tính country_of_manufactor - thuộc tính mặc định hệ thống, trong phần thông tin về thuộc tính không hề có lựa chọn nước nào cả ( xem ảnh ), nhưng khi tạo ra sản phẩm thì nó vẫn hiện đầy đủ các nước như anh, mỹ, pháp ...

    Không hiểu là do là system attribute nên nó có những giá trị 'ẩn' thêm hay không ? Chỉ có thuộc tính country_of_manufactor là vậy thôi hay những thuộc tính khác của hệ thống cũng có những giá trị ẩn giống vậy ?

    Ngoài ra, thuộc tính news_from_date với thuộc tính news_to_date của hệ thống, làm sao magento phân biệt được cái nào là bắt đầu, cái nào là kết thúc trong khi vào chi tiết thuộc tính nó chỉ có mỗi Catalog Input Type : Date, ví dụ tôi muốn định nghĩa dress_news_from_date thì magento có tự hiểu được không ?

    Câu hỏi cuối cùng là tôi có nên chọn 'not required' cho tất cả tập tin hệ thống và sử dụng những thuộc tính do tôi định nghĩa ra - vì sẽ dễ quản lý hơn

    Các file đính kèm:

    Bài viết khác cùng chuyên mục:

  2. kennichi89

    kennichi89 Member

    Hi kocoten1992,
    - Trong admin, attribute country_of_manufacture ko hề có 1 option nào cả nhưng khi tạo ra sản phẩm thì nó vẫn hiển thị đầy đủ các nước là bởi vì nó có khai báo source model 'catalog/product_attribute_source_countryofmanufacture' :

    PHP:
    $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY'country_of_manufacture', array(
        
    'group'            => 'General',
        
    'type'              => 'varchar',
        
    'backend'          => '',
        
    'frontend'          => '',
        
    'label'            => 'Country of Manufacture',
        
    'input'            => 'select',
        
    'class'            => '',
        
    'source'            => 'catalog/product_attribute_source_countryofmanufacture',
        
    'global'            => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
        
    'visible'          => true,
        
    'required'          => false,
        
    'user_defined'      => false,
        
    'searchable'        => false,
        
    'filterable'        => false,
        
    'comparable'        => false,
        
    'visible_on_front'  => false,
        
    'unique'            => false,
        
    'apply_to'          => 'simple,configurable,bundle,grouped',
        
    'is_configurable'  => false,
    ));

    Trong model này có viết lại hàm getAllOptions để lấy ra các value của attribute 'country_of_manufacture', vì vậy tuy trong admin attribute này ko có option nào nhưng trong trang quản lý sản phẩm nó vẫn hiện ra rất nhiều nước như anh, mỹ, pháp ... :-D

    - Attribute 'news_from_date' và 'news_to_date', làm sao magento phân biệt được cái nào là bắt đầu, cái nào là kết thúc? Cái này bạn phải mò vào code để xem thôi ^^.
    - tôi muốn định nghĩa dress_news_from_date thì magento có tự hiểu được không ? Ý của bạn là bạn có thể dùng attribute dress_ của bạn thay cho attribute news_from_date cũ phải ko? Ko được đâu, bởi vì magento load attribute 'news_from_date' thông qua attribute code là 'news_from_date', bạn tạo attribute mới mà có attribute code khác 'new_from_date' thì nó sẽ ko hiểu attribute đó đâu.

    - Nếu attribute được set required thì khi bạn save sản phẩm magento sẽ yêu cầu bạn chọn value cho những attribute này rồi mới được save. Cái này là tùy ở bạn thôi :p

    - Có 1 điều bạn cần lưu ý là Magento đã tạo sẵn rất nhiều attribute và nó cũng sử dụng nhiều attribute trong số các attribute được tạo ra, nếu bạn muốn thay đổi nó thì chỉ nên thay đổi label thôi, chứ ko nên xóa đi và tạo 1 attr mới có attribute code khác với cái ban đầu. Ví dụ như attribute 'news_from_date', 'price' .....
    CopyX thích bài này.
  3. manhapt

    manhapt New Member

    Are you kidding me? :D
    news_from_date = bắt đầu
    'news_to_date = kết thúc
  4. kennichi89

    kennichi89 Member

    Are you kidding me?
    "...Ngoài ra, thuộc tính news_from_date với thuộc tính news_to_date của hệ thống, làm sao magento phân biệt được cái nào là bắt đầu, cái nào là kết thúc trong khi vào chi tiết thuộc tính nó chỉ có mỗi Catalog Input Type : Date, ví dụ tôi muốn định nghĩa dress_news_from_date thì magento có tự hiểu được không ?..."

Chia sẻ trang này