2010-10-13 11 views
5

Ich möchte die Kommissionskreuzung zu meiner Kundenseite hinzufügen, in der sie für jedes Produkt SKU und Preis anfragen. Nach der Bestätigungsseite/Erfolgsseite müssen wir nur diese Werte übergeben. Aber hier, wie ich alle Produktdetails bekommen kann. Einschließlich sku, Preis muss ich übergeben. Gibt es eine Möglichkeit, jedes Produkt separat zu erhalten?Magento Checkout-Erfolgsseite Produktpreis und SKU-Retrival

Dank Suresh

Antwort

7

Ja, Sie haben recht @leek

Aber wenn Sie mit CJ erweiterten Setup hinzufügen dann folge dieser Methode.

<!-- Start of CJ Integration Part --> 
<?php 
    $_customerId = Mage::getSingleton('customer/session')->getCustomerId(); 
    $lastOrderId = Mage::getSingleton('checkout/session')->getLastOrderId(); 
    $order = Mage::getSingleton('sales/order'); 
    $order->load($lastOrderId); 
    $_totalData =$order->getData(); 
    $_sub = $_totalData['subtotal'];//USD ==> global_currency_code,base_currency_code order_currency_code 
    // Incase if it is simple do this ==> https://www.emjcd.com/u?AMOUNT= $_sub; 
    //print_r($order); print_r($_totalData); 

    $_order = $this->getOrder(); 
    $allitems = $order->getAllItems(); 
    $index = 1; 
    $cjData = "";//Needed format ==> &ITEM1=3214sku&AMT1=13.49&QTY1=1&ITEM2=6577sku&AMT2=7.99&QTY2=2& 
    foreach($allitems as $item) 
    { 
     $cjData.="&ITEM".$index."=".$item->getSku()."&AMT".$index."=".$item->getPrice()."&QTY".$index."=".$item->getQtyToShip(); 
     $index++; 
    } 
?> 
<div style="display:none;"> 
    <img src="https://www.emjcd.com/u?CID=id&OID=<?php echo $this->getOrderId(); ?>&TYPE=type<?php echo $cjData; ?>&CURRENCY=USD&METHOD=IMG" height="1" width="20"> 
</div> 
<!-- End of CJ Integration Part --> 

Es funktionierte perfekt.

6

Uhr für eine event wie folgt aus:

<config> 
    <global> 
     <events> 
      <sales_order_place_after> 
       <observers> 
        <yourmodule_order_place_after> 
         <class>yourmodule/observer</class> 
         <method>onSalesOrderPlaceAfter</method> 
        </yourmodule_order_place_after> 
       </observers> 
      </sales_order_place_after> 
     </events> 
    </global> 
</config> 

Als nächstes müssen Sie etwas, um das Ereignis zu behandeln.

app/code/local/IhreFirma/Yourmodule /Model/Observer.php

<?php 

class Yourcompany_Yourmodule_Model_Observer { 

    public function onSalesOrderPlaceAfter($observer) { 
     $order = $observer->getOrder(); 
     /* @var $item Mage_Sales_Model_Order_Item */ 
     foreach ($order->getItemsCollection() as $item) { 
      // Do something with $item here... 
      $name = $item->getName(); 
      $price = $item->getPrice(); 
      $sku = $item->getSku(); 
     } 
    } 

} 

finden Sie in der Datenbanktabelle "sales_flat_order_item" oder eine var_dump($item->debug()) tun, um zu sehen, welche Art von Werten zur Verfügung stehen. Da es einen flachen Tisch, der einzige Weg ist, mehr Informationen über ein Produkt zu finden, ist wie folgt:

$product = Mage:getModel('catalog/product')->load($item->getProductId()); 
$product->getDescription(); 
0

Hinweis: dies nicht die beste Methode ist! Sie sollten dafür einen neuen Block/eine neue Vorlage erstellen und die Daten auf andere Weise weitergeben. Sie sollten auch niemals eine Db-Verbindung in der Ansicht/Vorlage instanziieren.

Mit diesem gesagt - hier ist, wie ich Commission Junction in einem Magento-Shop implementiert, lange bevor ich lernte, wie Module/Templates/etc überschrieben werden.

app \ Design \ Frontend \ Unternehmen \ default \ template \ Kasse \ success.phtml

<?php 
$orderId  = $this->getOrderId(); 
$order   = Mage::getModel('sales/order')->loadByIncrementId($orderId); 
$orderTotal = $order->subtotal; 
$orderEntityId = $order->entity_id; 

$db = Mage::getModel('Core/Mysql4_Config')->getReadConnection(); 

// Retrieve ordered products 
$sql = sprintf(" 
    SELECT * 
    FROM `sales_flat_order_item` 
    WHERE (order_id = %d);", 
     $orderEntityId 
); 
$orderedProducts = $db->fetchAll($sql); 

// Loop through each product in order 
foreach ($orderedProducts as $orderedProduct) { 
    $productId = (int) $orderedProduct['product_id']; 
    $quantity = (int) $orderedProduct['qty_ordered']; 
} 
?> 

<!-- Commission Junction -->  
<img src="https://www.emjcd.com/u?AMOUNT=<?php echo $orderTotal; ?>&CID=<INSERT_CID_HERE>&OID=<?php echo $orderId; ?>&TYPE=339032&CURRENCY=USD&METHOD=IMG" height="1" width="20">  
<!-- Commission Junction --> 
Verwandte Themen