回答:
Magento 1.9.2では、この列にミドルネームが追加されました。
ソース: https : //github.com/OpenMage/magento-mirror/blob/magento-1.9/app/code/core/Mage/Sales/Model/Resource/Order.php#L93-L99
$ifnullFirst = $adapter->getIfNullSql('{{table}}.firstname', $adapter->quote(''));
$ifnullMiddle = $adapter->getIfNullSql('{{table}}.middlename', $adapter->quote(''));
$ifnullLast = $adapter->getIfNullSql('{{table}}.lastname', $adapter->quote(''));
$concatAddress = $adapter->getConcatSql(array(
$ifnullFirst,
$adapter->quote(' '),
$ifnullMiddle,
$adapter->quote(' '),
$ifnullLast
));
残念ながら、彼らは顧客がミドルネームを持っていない場合について本当に考えていませんでした。これは、コードがどのようにあるべきで次のようになります。
$ifnullFirst = $adapter->getIfNullSql('{{table}}.firstname', $adapter->quote(''));
$ifnullMiddle = $adapter->getIfNullSql('{{table}}.middlename', $adapter->quote(''));
$ifnullLast = $adapter->getIfNullSql('{{table}}.lastname', $adapter->quote(''));
$concatAddress = $adapter->getConcatSql(array(
$ifnullFirst,
$adapter->quote(' '),
$ifnullMiddle,
new Zend_Db_Expr('IF({{table}}.middlename IS NULL OR {{table}}.middlename="", "", " ")'),
$ifnullLast
));
app/code/local/Mage/Sales/Model/Resource/Order.php
説明に従って、ファイルをコピーしてパッチを適用できます。
既存のレコードを修正するには、次のスローアウェイPHPスクリプトを使用できます。
<?php
require 'app/Mage.php';
Mage::app();
Mage::getModel('sales/order')->getResource()->updateGridRecords(
Mage::getResourceModel('sales/order_collection')->getAllIds());
echo 'done';
それを置きfixordergrid.php
、Magentoのルートディレクトリに実行し、それを削除します。しばらく時間がかかる場合がありますので、ブラウザではなくコンソールから実行する方が良いでしょう:
php fixordergrid.php
Mage::getModel('sales/order')->getResource()->updateGridRecords(Mage::getResourceModel('sales/order_collection')->getAllIds());
受け入れられた答えをさらに進めるには、コアmagentoコードを編集しないことがベストプラクティスであるため、修正を伴う書き換えを使用する方が良いでしょう。
config.xmlで
<global>
<models>
<sales_resource>
<rewrite>
<order>Yournamespace_Yourextension_Model_Sales_Order_Resource_Order</order>
</rewrite>
</sales_resource>
</models>
</global>