2017-10-06 64 views

回答

1

首先,您需要从订单中获取产品ID并获取该产品的超级属性。

$order_id = 10002; // Your order ID; 
$order = Mage::getModel('sales/order')->load($order_id); 
$items = $order->getAllVisibleItems(); 
foreach($items as $item) { 
$connection = Mage::getSingleton('core/resource')->getConnection('core_read'); 
$sql  = ("SELECT * FROM (
    SELECT 
     ce.sku, 
     ea.attribute_id, 
     ea.attribute_code, 
     CASE ea.backend_type 
      WHEN 'varchar' THEN ce_varchar.value 
      WHEN 'int' THEN ce_int.value 
      WHEN 'text' THEN ce_text.value 
      WHEN 'decimal' THEN ce_decimal.value 
      WHEN 'datetime' THEN ce_datetime.value 
      ELSE ea.backend_type 
     END AS value, 
     ea.is_required AS required 
    FROM catalog_product_entity AS ce 
    LEFT JOIN eav_attribute AS ea 
     ON ce.entity_type_id = ea.entity_type_id 
    LEFT JOIN catalog_product_entity_varchar AS ce_varchar 
     ON ce.entity_id = ce_varchar.entity_id 
     AND ea.attribute_id = ce_varchar.attribute_id 
     AND ea.backend_type = 'varchar' 
    LEFT JOIN catalog_product_entity_int AS ce_int 
     ON ce.entity_id = ce_int.entity_id 
     AND ea.attribute_id = ce_int.attribute_id 
     AND ea.backend_type = 'int' 
    LEFT JOIN catalog_product_entity_text AS ce_text 
     ON ce.entity_id = ce_text.entity_id 
     AND ea.attribute_id = ce_text.attribute_id 
     AND ea.backend_type = 'text' 
    LEFT JOIN catalog_product_entity_decimal AS ce_decimal 
     ON ce.entity_id = ce_decimal.entity_id 
     AND ea.attribute_id = ce_decimal.attribute_id 
     AND ea.backend_type = 'decimal' 
    LEFT JOIN catalog_product_entity_datetime AS ce_datetime 
     ON ce.entity_id = ce_datetime.entity_id 
     AND ea.attribute_id = ce_datetime.attribute_id 
     AND ea.backend_type = 'datetime' 
    WHERE ce.entity_id = ".$item->getProductId()." 
) AS tab 
    WHERE tab.value != ''") 
$rows  = $connection->fetchAll($sql); 
print_r($rows); 
} 

Reference link

+0

感谢,这SQL给所有属性指定产品的选择。但我只想获取订单特定的属性选项。例如:如果订单放置在T恤上,我想获取订购的T恤的尺寸和颜色 – Dilani

+0

对于您从此列中获得的订单,请确定SELECT订单product_options从sales_flat_order_item和magento中您将获得像这样从订单项目。 $ orderItem-> getProductOptions()。在数据库中以串行格式保存了这些细节。 –

相关问题