Magento 1.7 - 如何从Order View页面链接到产品的Admin Edit Page?

时间:2013-04-22 20:55:29

标签: magento magento-1.7

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

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

这是我用过的代码:

应用程序/设计/ adminhtml /默认/默认/模板/销售/订单/视图/项目/渲染器/的 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>

...但是这不对,当我尝试这个时,Order View页面会中断。我觉得我已经越来越近了,你能帮我解决正确的方向吗?

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:1)

我不确定这是否有帮助,但希望这会带给你正确的道路。我在Mage 1.7.0.2中遇到了类似管理链接的问题

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

我使用了以下代码:

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

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