Gibt es eine Möglichkeit, ausgewählte „Zusatzfelder“ vor Benutzern zu verbergen oder sie schreibgeschützt zu machen?
Wozu? Dann kannst du ja gleich mit Konstanten arbeiten.
Muss Informationen aus anderen Systemen speichern.
Dann speichere die in Variablen/Konstanten.
Ich benötige das für jede Bestellung und jedes Produkt im Verhältnis 1:1
Du kannst das OrderEntity erweitern und dort deinen Wert eintragen. Oder in das Custom Fields, ohne es anzulegen (sollte möglich sein, soweit ich mich erinnere).
Da Custom-Fields vom Typ json
sind, kannst du die einfach füllen ohne vorher etwas angelegt oder definiert haben zu müssen:
$this->orderRepository->upsert([[
'id' => $orderId,
'customFields' => ['my_custom_field' => 'foobar']
]]);
Und damit wird das custom field schon gespeichert und kann dann ausgelesen werden:
$order = $this->orderRepository->search(new Criteria([$orderId]), $context);
$order->getCustomFields()['my_custom_field'];