9

在查看订单时,我的员工希望能够单击产品名称或 SKU,并将其作为指向该产品产品信息编辑页面的链接。

我想出了如何将产品名称更改为链接,该链接是前端产品页面的 url,但我不希望链接转到前端,我需要它链接到产品编辑管理仪表板中的页面。

这是我使用的代码:

app/design/adminhtml/default/default/template/sales/order/view/items/renderer/ default.phtml

<div class="item-text">
<?php $_pullProduct = Mage::getModel('catalog/product')->loadByAttribute('sku', $_item->getData('sku')); ?>
<a target="_blank" rel="external" href="<?php echo Mage::getUrl() . $_pullProduct->getData('url_path'); ?>"><?php echo $this->getColumnHtml($_item, 'name') ?></a>
</div>

...这将我正确链接到产品前端页面。现在,正如我所说,这不是我想要的,那么我如何让它成为产品管理仪表板编辑页面的链接?

我尝试将同一文件中的上述代码更改为:

<div class="item-text">
<?php $_pullProduct = Mage::getModel('catalog/product')->loadByAttribute('sku', $_item->getData('sku')); ?>
<a target="_blank" rel="external" href="<?php echo Mage::getSingleton('adminhtml/url')->getUrl('adminhtml/catalog_product/edit', array('id' => $this->getProduct()->getId()))?>"><?php echo $this->getColumnHtml($_item, 'name') ?></a>
</div>

...但是这是不对的,当我尝试这个时,订单视图页面会中断。我觉得我快要接近了,请你们帮助我朝着正确的方向前进吗?

4

2 回答 2

14

好的,所以下面的代码,在 app/design/adminhtml/default/default/template/sales/order/view/items/renderer/ default.phtml中使用

完美运行!这个答案是Marius在 Magento Stack Exchange 网站上给我的。谢谢马吕斯!

<div class="item-text">
<?php $_pullProduct = Mage::getModel('catalog/product')->loadByAttribute('sku', $_item->getData('sku')); ?>
<a target="_blank" rel="external" href="<?php echo Mage::helper('adminhtml')->getUrl('adminhtml/catalog_product/edit', array('id' => $_pullProduct->getId()))?>"><?php echo $this->getColumnHtml($_item, 'name') ?></a>
</div>
于 2013-05-06T20:51:58.490 回答
1

我不确定这是否有帮助,但希望这将使您走上正确的道路。关于 Mage 1.7.0.2 中的管理链接,我遇到了类似的问题

如果用户尝试通过观察者功能编辑已标记为不是他的产品(我使用属性来存储产品的管理员用户),我试图将用户重定向到目录产品列表页面。

我使用了以下代码:

Mage::app()->getResponse()->setRedirect(Mage::getUrl('adminhtml/catalog_product/index'))->sendResponse();

有用。以前所有重定向都只会指向前端。您需要弄清楚如何将此代码放入 .phtml 文件中。我的建议是扩展此模板的核心块。

于 2013-04-24T00:56:26.907 回答