custom/plugins/ProxaImportExportExtension/src/ProxaImportExportExtension.php line 11

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace ProxaImportExportExtension;
  3. use Shopware\Core\Content\ImportExport\ImportExportProfileEntity;
  4. use Shopware\Core\Framework\Plugin;
  5. use Shopware\Core\Framework\Plugin\Context\ActivateContext;
  6. use Shopware\Core\Framework\Plugin\Context\DeactivateContext;
  7. use Shopware\Core\Framework\Plugin\Context\InstallContext;
  8. class ProxaImportExportExtension extends Plugin
  9. {
  10.     const IMPORT_EXPORT_PROFILE_ORDER_NAME 'Proxa Order Export';
  11.     const INVOICE_NUMBER = [
  12.         'mappedKey' => 'Rechnungsnummer',
  13.         'key' => 'proxa.invoiceNumber',
  14.     ];
  15.     const TOTAL_WITHOUT_SHIPPING = [
  16.         'mappedKey' => 'Gesamtwert der Bestellung',
  17.         'key' => 'proxa.total.excl.shipping',
  18.     ];
  19.     const CUSTOMER_ADDRESS = [
  20.         'mappedKey' => 'Customer Address',
  21.         'key' => 'proxa.customerAddress',
  22.     ];
  23.     const PAYMENT_METHOD = [
  24.         'mappedKey' => 'Payment method',
  25.         'key' => 'proxa.paymentMethod',
  26.     ];
  27.     /**
  28.      * @param ActivateContext $activateContext
  29.      * @return void
  30.      */
  31.     public function activate(ActivateContext $activateContext): void
  32.     {
  33.         $repository $this->container->get('import_export_profile.repository');
  34.         $repository->upsert([$this->getImportExportProfileOrder()], $activateContext->getContext());
  35.     }
  36.     /**
  37.      * @param DeactivateContext $deactivateContext
  38.      * @return void
  39.      */
  40.     public function deactivate(DeactivateContext $deactivateContext): void
  41.     {
  42.         $repository $this->container->get('import_export_profile.repository');
  43.         $repository->delete([['id' => $this->getImportExportProfileOrder()['id']]], $deactivateContext->getContext());
  44.     }
  45.     /**
  46.      * @return array
  47.      */
  48.     private function getImportExportProfileOrder(): array
  49.     {
  50.         return [
  51.             'id' => 'e6bba200a465606ce7f892e407988724',
  52.             'name' => self::IMPORT_EXPORT_PROFILE_ORDER_NAME,
  53.             'label' => self::IMPORT_EXPORT_PROFILE_ORDER_NAME,
  54.             'systemDefault' => false,
  55.             'sourceEntity' => 'order',
  56.             'fileType' => 'text/csv',
  57.             'delimiter' => ';',
  58.             'enclosure' => '"',
  59.             'type' => ImportExportProfileEntity::TYPE_EXPORT,
  60.             'mapping' => [
  61.                 [
  62.                     'mappedKey' => 'Bestellnummer',
  63.                     'key' => 'orderNumber',
  64.                 ],
  65.                 self::INVOICE_NUMBER,
  66.                 self::TOTAL_WITHOUT_SHIPPING,
  67.                 [
  68.                     'mappedKey' => 'Versandkosten',
  69.                     'key' => 'shippingTotal',
  70.                 ],
  71.                 self::CUSTOMER_ADDRESS,
  72.                 self::PAYMENT_METHOD
  73.             ],
  74.         ];
  75.     }
  76. }