2010-10-13 21 views
5

Chcę dodać węzeł Komisji do strony mojego klienta, ponieważ prosili o każdy produkt sku i cenę. Po stronie potwierdzenia/strony powodzenia wystarczy przekazać te wartości. Ale tutaj, jak mogę uzyskać wszystkie szczegóły produktu. W tym sku, cena muszę przekazać. Czy jest jakiś sposób, aby uzyskać szczegóły każdego produktu osobno.Cena wykonania strony powitalnej Magento i zwrot sumy SKU

Dzięki Suresh

Odpowiedz

7

Tak masz rację @leek

Ale jeśli chcesz dodać zaawansowaną konfigurację z CJ następnie postępuj zgodnie z tą metodą.

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

Wszystko działało idealnie.

6

oglądać za event tak:

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

Następnie trzeba coś obsłużyć zdarzenia.

app/code/local/twoja_firma/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(); 
     } 
    } 

} 

patrz tabela w bazie "sales_flat_order_item" lub zrobić var_dump($item->debug()) aby zobaczyć jakie wartości są dostępne. Ponieważ jest to płaski stół, że jedynym sposobem, aby znaleźć więcej informacji na temat produktu jest tak:

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

Uwaga: To nie jest najlepsza metoda! Powinieneś utworzyć nowy blok/szablon i przekazać dane za pomocą innych środków. Nie powinieneś też nigdy tworzyć instancji połączenia Db w widoku/szablonie.

W związku z tym - oto jak wdrożyłem węzeł Komisji w sklepie Magento na długo przed tym, jak nauczyłem się zastępować moduły/szablony/itd.

app \ projekt \ frontend \ Enterprise \ default \ template \ kasa \ 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 --> 
Powiązane problemy