custom/plugins/CioOrderExportPerMail/src/CioOrderExportPerMail.php line 12

Open in your IDE?
  1. <?php
  2. namespace CioOrderExportPerMail;
  3. use Shopware\Core\Framework\Context;
  4. use Shopware\Core\Framework\DataAbstractionLayer\EntityRepositoryInterface;
  5. use Shopware\Core\Framework\DataAbstractionLayer\Search\Criteria;
  6. use Shopware\Core\Framework\DataAbstractionLayer\Search\Filter\EqualsFilter;
  7. use Shopware\Core\Framework\Plugin;
  8. use Shopware\Core\Framework\Plugin\Context\InstallContext;
  9. class CioOrderExportPerMail extends Plugin
  10. {
  11.     const FIELDSET_MANUFACTURER 'custom_manufacturer';
  12.     const FIELDNAME_MANUFACTURER_MAIL 'custom_manufacturer_mail';
  13.     const FIELDNAME_MANUFACTURER_DO_EXPORT_PER_MAIL 'custom_manufacturer_do_export_per_mail';
  14.     public function install(InstallContext $installContext): void
  15.     {
  16.         parent::install($installContext);
  17.         $this->createManufacturerCustomFields();
  18.     }
  19.     protected function createManufacturerCustomFields()
  20.     {
  21.         /** @var EntityRepositoryInterface $customFieldRepository */
  22.         $customFieldRepository $this->container->get('custom_field.repository');
  23.         /** @var EntityRepositoryInterface $customFieldSetRepository */
  24.         $customFieldSetRepository $this->container->get('custom_field_set.repository');
  25.         /** @var EntityRepositoryInterface $customFieldSetRelationRepository */
  26.         $customFieldSetRelationRepository $this->container->get('custom_field_set_relation.repository');
  27.         $customFieldSetEntity $customFieldSetRepository->search((new Criteria())->addFilter(new EqualsFilter('name'self::FIELDSET_MANUFACTURER)), Context::createDefaultContext())->first();
  28.         if (is_null($customFieldSetEntity)) {
  29.             $customFieldSetRepository->create([[
  30.                 'name' => self::FIELDSET_MANUFACTURER,
  31.                 'config' => [
  32.                     'type' => 'text',
  33.                     'label' => [
  34.                         'de-DE' => 'Zusatzfelder Hersteller',
  35.                         'en-GB' => null
  36.                     ],
  37.                     'translated' => true,
  38.                 ],
  39.                 'active' => true
  40.             ]], Context::createDefaultContext());
  41.             $customFieldSetEntity $customFieldSetRepository->search((new Criteria())->addFilter(new EqualsFilter('name'self::FIELDSET_MANUFACTURER)), Context::createDefaultContext())->first();
  42.             $customFieldSetRelationRepository->create([[
  43.                 'customFieldSetId' => $customFieldSetEntity->getId(),
  44.                 'entityName' => 'product_manufacturer',
  45.             ]], Context::createDefaultContext());
  46.         }
  47.         $customFieldEntity $customFieldRepository->search((new Criteria())->addFilter(new EqualsFilter('name'self::FIELDNAME_MANUFACTURER_MAIL))->addFilter(new EqualsFilter('customFieldSetId'$customFieldSetEntity->getId())), Context::createDefaultContext())->first();
  48.         if (is_null($customFieldEntity)) {
  49.             $customFieldRepository->create([
  50.                 [
  51.                     'name' => self::FIELDNAME_MANUFACTURER_MAIL,
  52.                     'type' => 'text',
  53.                     'config' => [
  54.                         'type' => 'text',
  55.                         'label' => [
  56.                             'de-DE' => 'E-Mail-Addresse',
  57.                             'en-GB' => null
  58.                         ],
  59.                         'placeholder' => [
  60.                             'en-GB' => null,
  61.                             'de-DE' => 'E-Mail-Addresse des Herstellers'
  62.                         ],
  63.                         'helpText' => [
  64.                             'en-GB' => null,
  65.                             'de-DE' => 'E-Mail-Addresse des Herstellers'
  66.                         ],
  67.                         'componentName' => 'sw-field',
  68.                         'customFieldType' => 'text',
  69.                         'customFieldPosition' => 2
  70.                     ],
  71.                     'active' => true,
  72.                     'customFieldSetId' => $customFieldSetEntity->getId()
  73.                 ]
  74.             ], Context::createDefaultContext());
  75.         }
  76.         $customFieldEntity $customFieldRepository->search((new Criteria())->addFilter(new EqualsFilter('name'self::FIELDNAME_MANUFACTURER_DO_EXPORT_PER_MAIL))->addFilter(new EqualsFilter('customFieldSetId'$customFieldSetEntity->getId())), Context::createDefaultContext())->first();
  77.         if (is_null($customFieldEntity)) {
  78.             $customFieldRepository->create([
  79.                 [
  80.                     'name' => self::FIELDNAME_MANUFACTURER_DO_EXPORT_PER_MAIL,
  81.                     'type' => 'switch',
  82.                     'config' => [
  83.                         'type' => 'switch',
  84.                         'label' => [
  85.                             'de-DE' => 'Bestellung per Mail',
  86.                             'en-GB' => null
  87.                         ],
  88.                         'helpText' => [
  89.                             'en-GB' => null,
  90.                             'de-DE' => 'Bestellung soll per Mail an Hersteller geschickt werden'
  91.                         ],
  92.                         'componentName' => 'sw-field',
  93.                         'customFieldType' => 'switch',
  94.                         'customFieldPosition' => 2
  95.                     ],
  96.                     'active' => true,
  97.                     'customFieldSetId' => $customFieldSetEntity->getId()
  98.                 ]
  99.             ], Context::createDefaultContext());
  100.         }
  101.     }
  102. }