Attribute mit dem CRUD-Service von Shopware 5.2 anlegen

Sandkiste

Mit Version 5.2 wurde der neue CRUD-Service (Create, Read, Update, Delete) für die Attributes-Tabellen eingeführt. Über diesen Service lassen sich in einem Plugin die Models sehr einfach mit zusätzlichen Attributen versehen.

Folgendes Beispiel zeigt, wie zusätzliche Attribute mit dem CRUD Service angelegt werden.

/**

* Add customer attributes
*/
private function customer() {

// Get the service
$attributeService = Shopware()->Container()->get('shopware_attribute.crud_service');

// Add ERP price list number
$attributeService->update('s_user_attributes', 'pluginname_pricelist_number', 'integer');

// Add customer group of ERP
$attributeService->update('s_user_attributes', 'pluginname_customergroup', 'integer');

// Add a default discount
$attributeService->update('s_user_attributes', 'pluginname_default_discount', 'float');

// Allowed payment types
$attributeService->update('s_user_attributes', 'pluginname_payment_types', 'string', [
'label' => 'Allowed payment types',
'supportText' => 'The allowed payment types',
'translatable' => false,
'displayInBackend' => true,
'position' => 500
]
);
// Creation date
$attributeService->update('s_user_attributes', 'pluginname_created', 'datetime', [
'label' => 'Customer create date',
'translatable' => false,
'displayInBackend' => true,
'position' => 600
]
);

// Modification date
$attributeService->update('s_user_attributes', 'pluginname_modified', 'datetime', [
'label' => 'Customer modification date',
'translatable' => false,
'displayInBackend' => true,
'position' => 700
]
);

// Rebuild attribute models
$metaDataCache = Shopware()->Models()->getConfiguration()->getMetadataCacheImpl();
$metaDataCache->deleteAll();

Shopware()->Models()->generateAttributeModels(
array('s_articles_attributes')
);

}

Kommentar verfassen

Folge mir auf Twitter

Hol Dir kostenlos Tipps und Tricks zu Shopware, E-Commerce und andere Open-Source Produkte.

Folge @synonymousrocks