2010-04-30 33 views
7

Tôi gặp sự cố khi hiển thị thuộc tính tùy chỉnh sản phẩm. Tôi đã đọc mọi tài nguyên thông qua google nhưng vẫn không thành công. Vấn đề là tôi phải hiển thị thuộc tính kích thước của sản phẩm có thể định cấu hình trên lưới danh mục và chế độ xem danh sách. Mỗi giải pháp trên google đề nghị một cái gì đó giống nhưThuộc tính sản phẩm Magento và cấu hình

$_product->getAttributeText('size') 

nhưng tôi đã kết thúc tại chỉ là một chuỗi duy nhất - "S" hay "M" thay vì một mảng. Làm cách nào tôi có thể tìm nạp tất cả các kích thước có thể có của tất cả các sản phẩm đơn giản thuộc về sản phẩm có thể định cấu hình cụ thể mà không gặp nhiều rắc rối?

CẬP NHẬT

Sau khi sử dụng giải pháp của Joseph Mastey đề nghị tôi gặp phải một vấn đề khác. Tôi quản lý để hiển thị tất cả các tùy chọn có thể cho thuộc tính đã cho, nhưng bây giờ tôi cần phải chỉ hiển thị các tùy chọn có sẵn để mua. Ví dụ: nếu kích thước áo phông L hết hàng hoặc bị vô hiệu, tùy chọn L sẽ không được hiển thị. Làm thế nào tôi có thể giải quyết vấn đề này?

+0

Bạn có bao giờ tìm ra giải pháp cho việc này không? Tôi đang đối mặt với cùng một vấn đề. – Luke

Trả lời

18

Khi giao dịch với các sản phẩm có thể định cấu hình (hoặc bất kỳ lúc nào bạn xử lý một khái niệm chỉ cho một loại sản phẩm, vì thuộc tính có thể định cấu hình), có thể bạn đang làm việc với getTypeInstance. Xem bên dưới, tôi lấy các thuộc tính có thể định cấu hình cho sản phẩm, sau đó tìm thuộc tính cho kích thước. Bạn cũng có thể chạy qua mọi thuộc tính có thể cấu hình nếu muốn. Hoặc nếu kích thước là thuộc tính có thể định cấu hình duy nhất, chỉ cần bỏ qua số if() đó.

$attrs = $_product->getTypeInstance(true)->getConfigurableAttributesAsArray($_product); 
foreach($attrs as $attr) { 
    if(0 == strcmp("size", $attr['attribute_code'])) { 
     $options = $attr['values']; 
     foreach($options as $option) { 
      print "{$option['store_label']}<br />"; 
     } 
    } 
} 

Hy vọng điều đó sẽ hữu ích! Cảm ơn,

Joe

+0

Cảm ơn bạn rất nhiều vì sự giúp đỡ của bạn. Chỉ có một vấn đề đơn giản, getConfigurableAttributesAsArray phải được gọi với tham số $ _product. – artega

Các vấn đề liên quan