Magento 2 Kundenadressattribut wurde beim Erstellen einer neuen Bestellung vom Administrator nicht gespeichert

7

Ich habe eine erstellt „Kundenadresse“ Art von Attributnamen „Vorort“ , es erfolgreich erstellt.

Es wird in den Abschnitten "Kasse", "Kunden erstellen" (admin) und "Neue Bestelladresse erstellen" (Admin) angezeigt. Es funktioniert zwar gut zur Kasse sowie zum Erstellen von Kunden, funktioniert jedoch nicht mit "Neue Bestellung erstellen".

Hier Installationsskript:

$customerSetup = $this->customerSetupFactory->create(['setup' => $setup]);

            $customerSetup->addAttribute('customer_address', 'suburb', [
                'label' => 'Suburb',
                'input' => 'text',
                'type' => 'varchar',
                'source' => '',
                'required' => true,
                'position' => 70,
                'visible' => true,
                'system' => false,
                'is_used_in_grid' => false,
                'is_visible_in_grid' => false,
                'is_filterable_in_grid' => false,
                'is_searchable_in_grid' => false,
                'backend' => ''
            ]);


            $attribute = $customerSetup->getEavConfig()->getAttribute('customer_address', 'suburb')
                ->addData(['used_in_forms' => [
                    'adminhtml_customer_address',
                    'customer_address_edit',
                    'customer_register_address'
                ]]);
            $attribute->save();

Ich habe versucht, eine neue Bestellung zu erstellen und alle erforderlichen Daten einschließlich zu füllen Suburb. Geben Sie hier die Bildbeschreibung ein

Aber als ich versuchte, eine Bestellung einzureichen, wird mir angezeigt, dass der Fehler ' Vorort ' ein erforderlicher Wert ist. Es wird gezeigt, dass der gefüllte Wert eines Vorortes nicht ebenfalls gespeichert wird.

Geben Sie hier die Bildbeschreibung ein Bitte helfen Sie, Anregungen wäre dankbar. Vielen Dank.

Ronak Chauhan
quelle

Antworten:

0

Haben Sie Ihr benutzerdefiniertes Attribut auf den entsprechenden Knoten in der Konfiguration fieldset.xml angewendet? Siehe folgende Datei:

vendor/magento/module-sales/etc/fieldset.xml

Wenn Sie sich Ihre Screenshots ansehen, haben Sie anscheinend Ihr Attribut zum Adressobjekt hinzugefügt. Siehe die Feldsatzknoten 'sales_copy_order_billing_address' und 'sales_copy_order_shipping_address'.

** Update **

Ich musste kürzlich ein benutzerdefiniertes Auftragsattribut in der Datenbank speichern, als ich den Auftrag über den Administrationsbereich erstellte. Ich habe festgestellt, dass das Hinzufügen des Attributs zur Datei fieldset.xml beim Erstellen einer Bestellung im Administrator nicht funktioniert hat. Um das Attribut zu speichern, habe ich ein Plugin und einen Beobachter erstellt. Siehe Details unten:

Plugin

Klasse: Magento \ Sales \ Model \ AdminOrder \ Create

Methode: importPostData ()

Dadurch wurde das benutzerdefinierte Attribut in dem Angebotsobjekt gespeichert, mit dem die Bestellung in der quoteManagement-Klasse erstellt wurde.


Beobachter

Ereignis: sales_model_service_quote_submit_before

Dies wird verwendet, um das benutzerdefinierte Attribut unmittelbar vor dem Speichern des Modells in der Datenbank zum Auftragsmodell hinzuzufügen.

Hoffe, dass das oben genannte für Sie nützlich ist.

Ryan Copeland
quelle