2017-10-06 5 views

Répondre

1

Vous devez d'abord obtenir l'identifiant du produit de la commande et récupérer le super attribut pour ce produit.

$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

Merci, Cette SQL donne l'attribut toutes les options d'un produit donné. mais je veux seulement chercher des options d'attributs spécifiques. Par exemple: si la commande a été passée pour un t-shirt, je veux aller chercher la taille et la couleur du t-shirt commandé – Dilani

+0

ok pour la commande spécifique que vous obtenez de cette colonne SELECT product_options FROM sales_flat_order_item et dans magento vous obtiendrez comme ceci de l'article de commande. $ orderItem-> getProductOptions(). dans la base de données enregistré ces détails en format sérialisé. –