cancel
Showing results for 
Search instead for 
Did you mean: 

Zusatzfeld im Warenkorb oder Kombination mit Kommentar

Zusatzfeld im Warenkorb oder Kombination mit Kommentar

Hallo liebe Gemeinde,

ich habe mal wieder ein Problem, diesmal mit einem geplanten Zusatzfeld.

Eine potentielle Kundin benötigt im Bestellvorgang (also Warenkorb) ein Feld in welches sie ihre interne Vorgangsnummer ihres Arbeitgebers eintragen kann.

Über Sinn und Unsinn dieses Wunsches kann/darf ich nicht nachdenken.

 

Die Notlösung wäre, wenn ich der Kundin sage, sie soll es einfach in das Kommentarfeld eintragen und ich lass das Kommentarfeld einfach mit auf der PDF-Rechnung mit ausgeben.

Das ist aber eine unsaubere Lösung und nicht im Sinne des Erfinders des Kommentarfeldes ;-)

 

Ich muss diese "interne Vorgangsnummer" irgendwo in den Bestellvorgang, und somit in die Datenbank bekommen.

Nun habe ich zwei Ideen, bei denen ich aber leider nicht weiss, wie ich es umsetzen kann.

Grundlage ist: Ich baue ein entsprechendes Feld in das Frontend ein, input text

1. Ich kombiniere den Inhalt dieses Feldes mit der Textarea des Kommentars, indem ich beide Felder verknüpfe zu einem String nach dem Schema "vorgangsnummer.kommentar" und speichere diese String als Kommentar. Diesen String kann ich ja immer wieder auseinandernehmen im Backend, wenn ich es brauche.

Frage: An welcher Stelle, also in welcher Datei wird der MySQL-String für den Kommentar zusammengebaut, also wo und in welcher Datei wäre der ideale Ort den String zusammenzuführen für den DB-Eintrag?

2. (favorisiert) Ich lege das Extrafeld direkt in der Datenbank an.

Frage: Wie bekomme ich dieses Extrafeld in die Datenbank und kann es dann auch wieder abrufen?Für Kunden und Katalog kann ich das ja über "Attribute" im Backend regeln.

Gibt es eine (möglichst kostengünstige) Erweiterung, die derartige Zusatzfelder in der Datenbank realisiert? Ich bin in Sachen "MySQL und Magento" nicht gerade der Held und befürchte, hier mehr Schaden anzurichten. Und wie kann ich das Feld dann ansprechen.

 

Leute, es wäre SUPER, wenn mir irgendjemand helfen könnte.

Wenigstens bei 1., wenn schon nicht bei 2.

 

Vielen Dank schon mal im voraus

Thomas

5 REPLIES

Re: Zusatzfeld im Warenkorb oder Kombination mit Kommentar

Benötigst du diese Lösung für Magento 1 oder Magento 2?

 

Hier gibt es zB eine Anleitung für Magento 2:

http://devdocs.magento.com/guides/v2.0/howdoi/checkout/checkout_form.html

 

LG Anna

-----
Anna from E-CONOMIX
Highlighted

Re: Zusatzfeld im Warenkorb oder Kombination mit Kommentar

es ist ein Magento 1.9.x

Der Ansatz für das M2 kann so zwar nicht 1:1 umgesetzt werden, hilft mir aber mit einem Denkansatz.

 

Das Problem welches ich jetzt noch dabei habe: ich benötige ein zusätzliches Feld in der Datenbank.

MUSS ich es über ein Installationsscript erzeugen, oder spricht etwas dagegen, es manuell anzulegen, direkt in der Datenbank, und es dann einfach im Script anzusprechen?

 

Re: Zusatzfeld im Warenkorb oder Kombination mit Kommentar

Hallo,

 

ich gehe davon aus dass du eher fortgeschrittene Programmierkenntnisse hast darum schhier ein paar Zeilen aus dem Bauch heraus... Ich weiss nicht ob es komplett ist aber ich glaube es sollte reichen.

Du solltest auf jeden Fall ein Feld über ein Installscript erzeugen:

 

$installer = $this;
$installer->startSetup();
$installer->addAttribute("order", "delivery_date", array("type"=>"varchar"));
$installer->addAttribute("quote", "delivery_date", array("type"=>"varchar"));
$installer->endSetup();

dann brauchst du noch eine config die den Wert des Feldes auch überträgt

 

config.xml:

 

<global>
   ...
    <fieldsets>
        <sales_convert_quote>                           
            <delivery_date><to_order>*</to_order></delivery_date>
        </sales_convert_quote>

        <sales_convert_order>                                              
            <delivery_date><to_quote>*</to_quote></delivery_date>
        </sales_convert_order>
    </fieldsets>
    ...
</global>

und dann auch einen observer in der config.xml:

 

 

<global>
    ...
    <events>
        <checkout_type_onepage_save_order>
        <observers>
            <delivery_date_observer>
                <type>singleton</type>
                <class>{MODULE}/observer</class>
                <method>saveDeliveryDate</method>
            </delivery_date_observer>
        </observers>
        </checkout_type_onepage_save_order>
    </events>
    ...
</global>

in dem Observer dann:

 

 

public function saveDeliveryDate($observer)
{
    $event = $observer->getEvent();
    $order = $event->getOrder();
    $fieldValue = Mage::app()->getFrontController()->getRequest()->getParams();
    $order->setDeliveryDate($fieldValue['delivery_date']);
}

Freut mich wenn es hilft.

 

 

Beste Grüße | Regards, Roman from CopeX.io

Re: Zusatzfeld im Warenkorb oder Kombination mit Kommentar

Die Lösung als solches klingt gut und auch so umsetzbar.

Ein Kommentarfeld habe ich schon drin.

Das ganze ist ein Magento 1.9, welches ich vom früheren Webmaster übernommen habe.

Es existiert leider kein Install-Script, welches ich erweitern kann.

Bedeutet das, dass ich das Datenbankfeld (die Spalte) manuell anlegen muss, weil für die bisherigen Felder kein Installer existiert und die bisherigen Felder offenbar auch manuell angelegt wurden, oder kann ich einfach einen kleinen Installer nur für dieses eine Feld erzeugen?

Zu Erklärung: Der Kunde kann bereits einen "normalen" Kommentar einfügen (das habe ich glücklicherweise "repariert"), aber mein Arbeitgeber möchte, dass der Kunde auch eine eigene firmeninterne Vorgangsnummer eingeben kann und nur dieses eine Feld feld mir in der bisherigen Installation.

Um beim Beispiel von Roman zu bleiben: Benötige nur ein einziges Zusatzfeld, sagen wir mal "quote", welches ich aber in das bestehende Modul integrieren will/muss.

 

Re: Zusatzfeld im Warenkorb oder Kombination mit Kommentar

ich weiss nicht, was ich falsch mache, aber es legt mir die Tabellen nicht an in der Datenbank.

Somit kann ich auch nicht nachvollziehen, ob der Rest funktioniert.

 

unabhängig davon verursacht der folgende code auch eine fehlermeldung:

public function saveDeliveryDate($observer)
{
    $event = $observer->getEvent();
    $order = $event->getOrder();
    $fieldValue = Mage::app()->getFrontController()->getRequest()->getParams();
    $order->setDeliveryDate($fieldValue['code_intern']);
}

Ich habe es mit der oben genannten Lösung versucht.

 

Auch wenn ich versuche, eine komplett neue Erweiterung zu schreiben, legt es mir die Tabellen nicht an. Da bekomme ich aber keine Fehlermeldung.

 

Liegt es daran, dass ich es nnur im frontend einbinden will?

 

Kann mir jemand helfen und auf die Schnelle aus dem oben genannten was funktionierendes bauen, was mir auch die Tabellen anlegt?

 

ich benötige ein "varchar" mit der id "code_intern", den ich in einem OnstepCheckout meines Vorgängers einbauen kann oder zumindest dort ansprechen kann.

 

Eigentlich hatte ich ein freies Wochenende, aber ich sitze hier das ganze WE rum, weil der Chef drängt.

 

Bitte bitte bitte, helft mir

 

Grüsse aus der Nacht Thomas