Ich möchte meine benutzerdefinierte Entität für den Export von Magento 2 hinzufügen


7

Ich möchte meine benutzerdefinierte Entität wie Produkte, Kunden usw. vom Administrator exportieren. Ich habe bereits den Code für den Import für meine benutzerdefinierte Entität erstellt und er funktioniert einwandfrei. Aber jetzt möchte ich dieselbe Entität für den Export meiner Daten hinzufügen. Bitte sehen Sie im beigefügten Bild, wie ich die Funktionalität haben möchte.

Geben Sie hier die Bildbeschreibung ein

Es gibt eine einfache Datenbanktabelle mit drei Feldern. Der Tabellenname lautet ' Hersteller_Hersteller ' und die Feldnamen folgen.
Es gibt keinen Primärschlüssel.

  1. Hersteller
  2. Modell-
  3. product_ids

Ich möchte also nur die obigen Daten aus meiner Tabelle exportieren.

Ich möchte die Option in der Dropdown-Liste wie " Hersteller " hinzufügen. Wenn der Administrator diesen Wert auswählt und exportiert, sollten alle Daten im CSV-Format exportiert werden.

Antworten:


5

Dies ist möglich, indem Sie die folgenden Schritte ausführen.

  1. Fügen Sie export.xml mit einem ähnlichen Inhalt wie unten in Ihr Modul usw.-Verzeichnis ein.

    <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_ImportExport:etc/import.xsd">
        <entity
            name="manufacturer"
            label="Manufacturer Export"
            model="VendorName\Manufacturer\Model\Export\Manufacturer"
            entityAttributeFilterType="manufacturer" />
    </config>
    
  2. Stellen Sie sicher, dass Ihre Exportmodellklasse die Klasse \ Magento \ ImportExport \ Model \ Export \ AbstractEntity erweitert, und überschreiben Sie dann die abstrakten Methoden, um Ihre konkreten Implementierungen hinzuzufügen. Die Exportmodellklasse ähnelt der folgenden.

namespace VendorName\Manufacturer\Model\Export;

/**
 * Class Manufacturer
 */
class Manufacturer extends \Magento\ImportExport\Model\Export\AbstractEntity
{
    /**
     * Permanent column names
     */
    const COLUMN_MANUFACTURER = 'manufacturer';
    const COLUMN_MODEL = 'model';
    const COLUMN_PROD_IDS = 'product_ids';

    /**
     * Permanent entity columns
     *
     * @var string[]
     */
    protected $_permanentAttributes = [
        self::COLUMN_MANUFACTURER,
        self::COLUMN_MODEL,
        self::COLUMN_PROD_IDS,
    ];

    public function export()
    {
        // TODO: Implement export() method.
    }

    public function exportItem($item)
    {
        // TODO: Implement exportItem() method.
    }

    public function getEntityTypeCode()
    {
        return  'manufacturer';
    }

    protected function _getHeaderColumns()
    {
        return $this->_permanentAttributes;
    }

    protected function _getEntityCollection()
    {
        // TODO: Implement _getEntityCollection() method.
    }
}

Weitere Informationen zum Implementieren dieser abstrakten Methoden finden Sie in der Klasse \ Magento \ CustomerImportExport \ Model \ Export \ Customer .

Ich hoffe das hilft.


Haben Sie eine Idee, wie Sie Exportkategorien in CSV genauso importieren können wie Produkte über das Backend?
Kirti Nariya

Ich habe Probleme mit Exportkategorien in CSV. Könnten Sie bitte überprüfen. Ihre Hilfe wäre dankbar. Vielen Dank magento.stackexchange.com/questions/277997/…
Kirti Nariya
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.