Bestellungen Tabelle s_order_details, Feld config

Hallo liebe Dev-Com,

Weiss jemand wofür das Feld “config” in der Tabelle “s_order_details” gedacht ist? Leider findet man dazu keine Info in dev-docs.
Das Feld ist gut dimensioniert (mediumtext), wird im Standard-Umfang (ohne premium plugins) nicht genutzt (immer leer) und würde
sich eigentlich gut eignen für unsere Zwecke, um dort eventuell Text-Inhalte pro Bestellposition abzulegen. 

Wir möchten externen WaWis (JTL, Plenty) ein Shopware-Standard-Feld mit textuellen Konfigurations-Daten zur Verfügung stellen, das eventuell
auf Wawis “Article-Description” gemappt werden könnte. Das Feld “name” in dieser Tabelle ist leider zu klein dimensioniert (varchar(255))  - und
auch eine Umdimensionierung würde nichts bringen, da auch Wawis an dieser Stelle (als Artikelname) nicht viel mehr verkraften würden.

Gerne würde ich dazu eine Auskunft von Shopware bekommen - nur leider ist das nicht so easy - deshalb richte ich die Frage in die Runde
nserer lieben Entwickler-Kollegen.

mit besten Grüßen
Konrad​

Hallo Konrad,

wie genau das config Feld benutzt wird kann ich dir nicht bantworten. Allerdings würde ich von vorhandenen Feldern die Finger lassen und für eigene Werte die jeweiligen Attribut Tabellen nutzen um jeglichen Konflikten aus dem Weg zu gehen.

Einen ähnlichen Fall hatte ich auch mal, dort musste ich eine Bestellnummer aus dem ERP für ein Order speichern, dazu habe ich die s_order_attributes benutzt. In deiner Plugin Install Methode könntest du folgendes hinterlegen:

 ... public function install( InstallContext $context ) { $attributeService = $this-\>container-\>get('shopware\_attribute.crud\_service'); $attributeService-\>update( 's\_order\_attributes', 'wawi\_some\_config', \Shopware\Bundle\AttributeBundle\Service\TypeMapping::TYPE\_STRING, ['displayInBackend' =\> true, 'label' =\> '[WAWI] Meine Config values' ] ); ...

Das Beispiel ist jetzt für s_order_attributes lässt sich aber problemlos auf s_order_details_attributes übertragen.

Die Werte \Shopware\Bundle\AttributeBundle\Service\TypeMapping::TYPE_STRING werden als text gecastet, also ausreichend für jegliche Konfigurationssnippets.

Viele Grüße
Miron

1 Like

Hi Miron,

vielen Dank für den Tipp - es entspricht auch der Logik, die wir schon drin haben. Wier legen in “s_order_details_attributes” unsere eigenen Attribute an und speichern dort konfigurierte Kunden-Daten als JSON-String und das konfigurierte Kunden-Bild als BLOB ab. Das klappt auch sehr gut.

Jetzt wollten wir aber zusätzlich für die WaWi’s, die sich mit eigenen Attributen in der Bestellung etwas schwer tun, eventuell ein Standard-Feld von Shopware verwenden, da hier die Chancen der Daten-Übergabe vermutlich etwas besser sind. Leider ist die Doku von JTL und Plenty nicht besonders hilfreich.

Ich vermute das Feld “config” könnte eventuell etwas mit irgendeinem SW Premium-Plugin zu tun haben - vielleicht “Custom Products”? In der dev-doc steht etwas von config als “boolean” Feld - das wäre aber falsch, weil in dem (doctrine) Model (in Models/Order/Detail.php) ist das Feld so deklariert:
 

 /\*\* \* @var string \* \* @ORM\Column(name="config", type="text", nullable=false) \*/ private $config = '';

 

Hast zufällig auch etwas Erfahrung mit der Übergabe der Bestelldaten an JTL WaWi?  

mit besten Grüßen
Konrad

Hallo Konrad,

das muss ich leider passen. Wir haben für die Anbindung an das ERP einen eigenen Connector geschrieben. Hatten dann dadurch auch bessere Kontrolle welche Daten wir wo speichern.

Vielleicht hilft dir aber einer der zahlreichen Events auf denen du dich subscriben kannst. In unserem Fall greifen wir alle Bestelldaten über das  Shopware_Modules_Order_SaveOrder_ProcessDetails Event ab.

Gutes Gelingen
Miron