2010-10-13 64 views
5

我想添加佣金交匯點到我的客戶站點,因爲他們要求每個產品SKU和價格。在確認頁面/成功頁面之後,我們只需要傳遞值。但在這裏,我可以如何獲得所有的產品細節。包括sku,我需要通過的價格。是否有任何方法可以分別獲得每個產品的詳細信息Magento Checkout成功頁面產品價格和SKU retrogra

感謝 蘇雷什

回答

7

是的,你是對的@leek

但是,如果你想添加與CJ高級設置然後按照這個方法。

<!-- 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 --> 

它的工作完美。

6

關注爲event這樣的:

<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> 

接下來,你需要的東西來處理該事件。

應用程序/代碼/本地/ Yourcompany/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(); 
     } 
    } 

} 

看到數據庫表 「sales_flat_order_item」 或做var_dump($item->debug()),看看什麼樣的價值觀是可用的。因爲它是一個平坦的桌面查找有關產品的更多信息的唯一方式是這樣的:

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

注:這是不是最好的方法!您應該爲此創建一個新塊/模板並通過其他方式傳遞數據。你也不應該在視圖/模板中實例化一個Db連接。

這樣說 - 這是我在Magento商店早已學會如何覆蓋modules/templates/etc之前,如何實現佣金連接。

應用程序\設計\前臺\企業\ DEFAULT \模板\結賬\ 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 -->