2010-10-13 2 views
5

Я хочу добавить соединение с комиссией на мой клиентский сайт, в котором они запросили у каждого продукта ски и цену. После страницы подтверждения/страницы успеха нам нужно передать значения. Но вот как я могу получить все детали продукта. В том числе ску, цена, которую мне нужно пройти. Есть ли способ получить информацию о каждом продукте отдельно.Magento Checkout цена страницы успеха продукта и повторение SKU

Благодаря Суреш

ответ

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 в представлении/шаблоне.

Сказанное - вот как я реализовал комиссию Junction в магазине Magento задолго до того, как узнал, как переопределять модули/шаблоны/и т. Д.

приложение \ дизайн \ интерфейс \ предприятия \ умолчанию \ шаблон \ Checkout \ 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 --> 
Смежные вопросы