Shopware: Eigene Freitextfelder im Plugin

Es ist an sich ganz einfach bei der Installation oder des Updates seines Plugins auch gleich sich alle benötigten Freittextfelder anlegen zu lassen.

Hier ein kleines Beispiel aus meinem POS-Plugin:


public function install(InstallContext $context)
{
parent::install($context);

/** @var CrudService $service */
$service = $this->container->get('shopware_attribute.crud_service');
$list = $service->getList('s_user_attributes');

$balance = false;
$overdue = false;

/** @var ConfigurationStruct $item */
foreach ($list as $item){
if($item->getColumnName() == 'hpr_balance'){
$balance = true;
}
else if($item->getColumnName() == 'hpr_overdue'){
$overdue = true;
}
}

if(!$balance){
$service->update('s_user_attributes', 'hpr_balance', 'float',
[
'label' => 'Prepaid Guthaben',
'displayInBackend' => true,
]
);
}
if(!$overdue){
$service->update('s_user_attributes', 'hpr_overdue', 'boolean',
[
'label' => 'Guthaben überschreitbar',
'displayInBackend' => true,
]
);
}
}


Manchmal ist es nötig das Generieren der Doctrine Models selbst zu erzwingen. Das geht dann so:


Shopware()->Models()->generateAttributeModels(['s_user_attributes']);


Ich mache grundsätzlich, weil es doch einige Male nicht ganz von allein funktioniert hat.
User annonyme 2018-03-13 21:19

write comment:
Four + = 7

Möchtest Du AdSense-Werbung erlauben und mir damit helfen die laufenden Kosten des Blogs tragen zu können?