Pregunta

Después de un exitoso fin me gustaría proponer directamente la URL descargable para productos comprador comprado en el archivo success.phtml.

Me escribió esta pieza de código para saber los valores del producto de la última orden:

// Get the latest Order ID
$order = Mage::getModel('sales/order')->load(Mage::getSingleton('checkout/session')->getLastOrderId());
// Get every products on the latest order
$items = $order->getAllItems();

// Loop the products
foreach ($items as $item){
    $product = Mage::getModel('catalog/product')->setStoreId($order->getStoreId())->load($item->getProductId());
    // HERE I NEED FUNCTION TO GET DOWNLOADABLE URL LINK
}
¿Fue útil?

Solución

He encontrado una solución, aquí está:

En primer lugar, crear un nuevo archivo en la plantilla .phtml / descargables /, llamé a la mina downloadablelist.phtml

A continuación, copie todos plantilla / descargables / cliente / productos / list.phtml en nuestra nueva downloadablelist.phtml

Esto nos dará una copia del cliente cuenta Mi lista de productos descargables.

Llame a nuestro bloque en la página éxito:

<?php echo $this->getLayout()->createBlock('downloadable/customer_products_list')->setTemplate('downloadable/checkout/downloadablelist.phtml')->toHtml(); ?>

Ahora Limpié lo que no necesito de la lista de productos. He quitado la mesa y añadí un lugar ul.

A continuación es para mostrar sólo los productos que están hechos de la última orden.

<?php
$_items = $this->getItems();
$orderId = Mage::getSingleton('checkout/session')->getLastRealOrderId();
if(count($_items)):
$_group_id = Mage::helper('customer')->getCustomer()->getGroupId();
echo '<p><strong>'.$this->__('Downloadable products').' : </strong></p>'; ?>
<ul style="margin-left: 30px; list-style: disc;">
        <?php foreach ($_items as $_item):
            $itemOrderId = $_item->getPurchased()->getOrderIncrementId();
            if($itemOrderId == $orderId) {?>
            <li><?php echo $this->htmlEscape($_item->getPurchased()->getProductName()) ?> - <a href="<?php echo $this->getUrl('downloadable/download/link/', array('id' => $_item->getLinkHash(), '_secure' => true)) ?>" title="<?php echo Mage::helper('downloadable')->__('Start Download') ?>" <?php echo $this->getIsOpenInNewWindow()?'onclick="this.target=\'_blank\'"':''; ?>><?php echo $_item->getLinkTitle() ?></a></li>
            <?php }
            endforeach; ?>
    </ul>
<?php endif; ?>

Me cambió la dirección URL del archivo descargable original tuvo que:

href="<?php echo $this->getUrl('downloadable/download/link/', array('id' => $_item->getLinkHash(), '_secure' => true)) ?>"

Gracias

Otros consejos

Esto funcionó para mí:

$links = Mage::getModel('downloadable/link_purchased_item')->getCollection()
 ->addFieldToFilter('order_item_id', $item->getId());
foreach ($links as $link) {
 echo Mage::helper('downloadable')->__('download') .
  $this->getUrl('downloadable/download/link', 
  array('id' => $link->getLinkHash(), '_store' => $order()->getStore(), 
  '_secure' => true, '_nosid' => true));
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top