未確認の顧客をCSVインポートでインポートする方法は?


7

CSVインポートで顧客をインポートしようとしています:

System > Import/Export > Import > Customers > Append Complex Data

インポート後「未確認」のお客様をインポートしたいのですが。

注:これを有効にするには、設定System > Configuration > Customer Configuration > Create New Account Options > Require Emails Confirmationを「はい」に有効にする必要があります。

バックエンドの確認フィールドの値は次のとおりです。

<select id="_accountconfirmation" class=" select" name="account[confirmation]">
  <option value="">Confirmed</option>
  <option selected="selected" value="HASH_VALUE">Not confirmed</option>
</select>

私のCSVには、さまざまな値(空、0、1、乱数など)に設定した確認フィールドが含まれていますが、インポートが完了すると、顧客は常に「確認」されます。

回答:


3

インポートをデバッグした後addSystemHiddenFilterWithPasswordHash()、次の_initAttributes()メソッドで呼び出される関数があることがわかりましたMage_ImportExport_Model_Import_Entity_Customer

$collection = Mage::getResourceModel('customer/attribute_collection')->addSystemHiddenFilterWithPasswordHash();

メソッドは以下で定義されていMage_Eav_Model_Resource_Attribute_Collectionます。

/**
     * Exclude system hidden attributes but include password hash
     *
     * @return Mage_Customer_Model_Entity_Attribute_Collection
     */
    public function addSystemHiddenFilterWithPasswordHash()
    {
        $field = '(CASE WHEN additional_table.is_system = 1 AND additional_table.is_visible = 0
            AND main_table.attribute_code != "' . self::EAV_CODE_PASSWORD_HASH . '" THEN 1 ELSE 0 END)';
        $this->addFieldToFilter($field, 0);
        return $this;
    }

confirmationフィールドがシステム値(SEEあるapp/code/core/Mage/Customer/sql/customer_setup/mysql4-data-upgrade-1.4.0.0.7-1.4.0.0.8.php)、デフォルトごとに顧客の確認についての情報をインポートすることはできません。

したがって、これをオーバーライドしたい場合は、'customer/attribute_collection'リソースモデルの書き換えを作成し、そのメソッドを適合させます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.