2

我正在部署一个 Magento 1.7 商店,但我不希望客户可以从前端查看和下载发票,访问他们的帐户。我将使用第三方应用程序管理发票流程,并将其发送给不涉及 Magento 的客户。我想使用管理界面中的“发票”按钮将订单标记为已付款并将订单置于“完成”状态,但我需要避免客户可以访问 Magento 发票,因为它不是真正的发票并且不符合欧洲法律。我找到了这个解决方法:我将 /app/design/frontend/base/default/layout/sales.xml 复制到我的模板文件夹中,并对其进行了编辑,删除了所有行

<action method="addLink" translate="label" module="sales"><name>invoice</name><path>*/*/invoice</path><label>Invoices</label></action>

现在在前端帐户中,所有“发票”链接都消失了,但我不确定这是最好的解决方案,因为我可以访问指向 URL http://mydomain.com/sales/order/invoice/order_id/的发票7/ 其中“7”是发票编号...

有人可以帮我找到最佳解决方案吗?

先感谢您!

4

2 回答 2

0

你可以用你自己的重载前端控制器,它什么都不做。就像是:

<global>
<rewrite>

        <mynamespace_mymodule_invoice_cart>
            <from><![CDATA[#^/sales/order/invoice/#]]></from>
            <to>/mymodule/cnewcontroller/</to>
        </mynamespace_mymodule_invoice_cart>
    </rewrite>
<global>

然后为 mymodule/invoice 添加一个前端控制器

于 2012-11-13T21:03:39.157 回答
0

我知道它可能很笨拙,但它对我有用......
我想做的只是阻止客户打印和查看发票,我使用自动发票扩展程序,然后将订单推送到我处理的第三方软件与订单。

frontend\base\default\template\sales\order\invoice\items.phtml我已经注释掉了这些行:

<!--<p class="order-links"><a href="<?php echo $this->getPrintAllInvoicesUrl($_order) ?>" onclick="this.target='_blank'" class="link-print"><?php echo $this->__('Print All Invoices') ?></a></p>-->

<!--<h2 class="sub-title"><?php echo $this->__('Invoice #') ?><?php echo $_invoice->getIncrementId(); ?> <span class="separator">|</span> <a href="<?php echo $this->getPrintInvoiceUrl($_invoice) ?>" onclick="this.target='_blank'" class="link-print"><?php echo $this->__('Print Invoice') ?></a></h2>-->

那就是删除“打印发票”和“打印所有发票”链接。

于 2018-03-08T09:38:53.760 回答