Wie importiere ich nicht bestätigte Kunden per CSV-Import?

7

Ich versuche, Kunden über CSV-Import zu importieren:

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

Ich möchte Kunden importieren, die nach dem Import "nicht bestätigt" werden.

Hinweis: Sie müssen die Einstellung System > Configuration > Customer Configuration > Create New Account Options > Require Emails Confirmation"Ja" aktivieren, damit dies wirksam wird.

Die Werte für das Bestätigungsfeld im Backend sind:

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

Meine CSV enthält das Bestätigungsfeld, das ich auf verschiedene Werte gesetzt habe (leer, 0, 1, Zufallszahlen, ...), aber die Kunden werden nach dem Import immer "bestätigt".

Anna Völkl
quelle

Antworten:

3

Nach dem Debuggen des Imports stellte ich fest, dass es eine Funktion addSystemHiddenFilterWithPasswordHash()gibt, die in der _initAttributes()Methode aufgerufen wird Mage_ImportExport_Model_Import_Entity_Customer:

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

Die Methode ist definiert in 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;
    }

Da es sich bei dem confirmationFeld um einen Systemwert handelt (siehe app/code/core/Mage/Customer/sql/customer_setup/mysql4-data-upgrade-1.4.0.0.7-1.4.0.0.8.php), können Sie die Informationen zur Bestätigung eines Kunden standardmäßig nicht importieren.

Wenn Sie dies jemals überschreiben möchten, erstellen Sie eine Neufassung des 'customer/attribute_collection'Ressourcenmodells und passen Sie diese Methode an.

Anna Völkl
quelle