Magento - 订单细节在管理面板中未显示

3
我们有一个Magento电子商务店。现在,我们遇到了一个奇怪的问题,我无法理解和调试。
对于某些订单,在Magento管理页面的订单详情页面上没有显示任何详细信息,尽管邮件已正确发送给客户并抄送到我们的电子邮件ID。
管理员订单详情页面截图: enter image description here 包含订单详情的电子邮件截图: enter image description here 为什么会发生这种情况?我尝试检查模式,但无法理解。由于我不是Magento专业人员,所以希望您能帮助我解决此问题,您的任何帮助都将对我有所作用。

1
前往 系统 > 配置 > 高级 > 开发人员 > 日志设置 并启用日志记录。然后前往订单查看页面。接着检查 var/exception.logvar/system.log - Sergii Stotskyi
看起来缺少adminhtml模板。启用日志记录将告诉您哪一个。 - user487772
记录已经启用。我已经下载了这两个文件,但不知道应该在那里查看。 - Pankaj Upadhyay
7个回答

8

您可以尝试以下方法,这对我很有效(来源:https://magentary.com/kb/php-syntax-error-after-supee-7405-unexpected/):

Problem description

After SUPEE-7405 patch Sales Order Management screen in Magento Backend is blank or the following error is reported in PHP error log:

PHP Parse error: syntax error, unexpected '[' in app/code/core/Mage/Adminhtml/Helper/Sales.php on line 124

Cause

SUPEE-7405 is prepared with PHP 5.4 in mind, older PHP versions are incompatible with new language constructions used.

Solution

Change line 124 in app/code/core/Mage/Adminhtml/Helper/Sales.php from $links = []; to $links = array();:

--- app/code/core/Mage/Adminhtml/Helper/Sales.php
+++ app/code/core/Mage/Adminhtml/Helper/Sales.php

@@ -121,7 +121,7 @@
     public function escapeHtmlWithLinks($data, $allowedTags = null)
     {
         if (!empty($data) && is_array($allowedTags) && in_array('a', $allowedTags)) {
-            $links = [];
+            $links = array();
             $i = 1;
             $data = str_replace('%', '%%', $data);

4
很可能是本地或社区模块导致了某些故障,如果页面没有完全呈现出来,我会认为这些订单使用了这个本地和/或社区模块。您可以尝试以下几点:
1)通过local.xml禁用所有本地模块
2)通过app / etc / Company_Modulename.xml禁用社区模块,并将active设置为false 每次禁用后重试查看订单,直到找到罪魁祸首。此外,查看页面源代码可能有助于找到输出停止的位置,也可能在页面源代码的末尾有错误。希望这可以帮助到您。

在源代码视图中,我可以看到这些值,我刚刚看到了...不知道为什么它们没有显示在页面上。 - Pankaj Upadhyay
左侧链接列表出现了问题,我的意思是有些代码没有被渲染。左侧链接列表不完整,无法显示。只有一个列表项被打开,但从那之后对应的项目就不见了。 - Pankaj Upadhyay
<li > <a href="#" id="sales_order_view_tabs_order_info" name="order_info" title="Order Information" class="tab-item-link "> <span><span class="changed" title="The information in this tab has been changed."></span><span class="error" title="This tab contains invalid data. Please solve the problem before saving."></span>Information</span> </a> - Pankaj Upadhyay
列表项没有关闭,接下来的列表项在源视图中也没有显示出来。为什么列表被打破了而没有呈现出来。 - Pankaj Upadhyay
你是否尝试禁用社区和/或本地模块来查看问题是否仍然存在? - B00MER
@PankajUpadhyay,那么你是如何解决的呢?你禁用了哪个模块/扩展或者进行了什么代码/数据库更改?我也遇到了同样的问题。 - GunJan Mehta

0

如果 SUPEE-7405 补丁导致此问题,请检查您的系统是否未运行在 PHP 5.3 上。

该补丁破坏了 PHP 5.3 的兼容性,因为它引入了 app/code/core/Mage/Adminhtml/Helper/Sales.php(第124行)中数组字面量的使用,这是自 PHP 5.4 版本以来可用的,因此在应用该补丁后,所需的最低 PHP 版本是 PHP 5.4:

// patched app/code/core/Mage/Adminhtml/Helper/Sales.php lines 121-124
public function escapeHtmlWithLinks($data, $allowedTags = null)
{
    if (!empty($data) && is_array($allowedTags) && in_array('a', $allowedTags)) {
        $links = [];

为了解决这个问题并恢复PHP 5.3的兼容性(使订单再次显示在管理屏幕中),只需使用旧的PHP5.3等效代码进行更正即可:
// patched and fixed app/code/core/Mage/Adminhtml/Helper/Sales.php lines 121-124
public function escapeHtmlWithLinks($data, $allowedTags = null)
{
    if (!empty($data) && is_array($allowedTags) && in_array('a', $allowedTags)) {
        $links = array();

0

我相信这个问题是由于Magento的默认设置引起的,因为这些文件没有指向任何第三方的结账扩展程序。


0

当我用我的原始文件替换

app/design/adminhtml/default/default/template/sales/order/totals

中的tax.phtml文件时,我解决了这个问题。你也可以试试。


0

我禁用了所有插件。在我的情况下,似乎是Apptha一步结帐插件造成了这个问题。


0

将服务器上的PHP 5.3更改为5.6,注销并重新登录。刷新缓存。 它会运行。 适用于版本1.9.2.3的Magento。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接