Attribute in Shopware-Plugins ab Version 5.2 korrekt verwalten

Erstellen/Aktualisieren von Attributen:

/** @var CrudService $service */
$service = Shopware()->Container()->get( 'shopware_attribute.crud_service' );

$service->update( 's_articles_attributes', 'lenz_field_one', 'boolean', [
	'label'            => 'Feld 1',
	'displayInBackend' => true,
	'position'         => 900,
	'custom'           => false,
	'translatable'     => true,
] );

$metaDataCache = Shopware()->Models()->getConfiguration()->getMetadataCacheImpl();
$metaDataCache->deleteAll();
Shopware()->Models()->generateAttributeModels( [ 's_articles_attributes' ] );

Wichtiges:

  • Immer Meta-Cache leeren
  • Immer Attribute neu generieren

Wenn diese Dinge nicht gemacht werden, kann es zu Fehlermeldungen im Shop kommen.

Löschen von Attributen:

/** @var CrudService $service */
$service = Shopware()->Container()->get( 'shopware_attribute.crud_service' );

$service->delete( 's_articles_attributes', 'lenz_field_one' );
		
$metaDataCache = Shopware()->Models()->getConfiguration()->getMetadataCacheImpl();
$metaDataCache->deleteAll();
Shopware()->Models()->generateAttributeModels( [ 's_articles_attributes' ] );

Wichtiges:

  • Immer Meta-Cache leeren
  • Immer Attribute neu generieren

Wenn diese Dinge nicht gemacht werden, kann es zu Fehlermeldungen im Shop kommen.