<?php declare(strict_types=1);
namespace ProxaImportExportExtension;
use Shopware\Core\Content\ImportExport\ImportExportProfileEntity;
use Shopware\Core\Framework\Plugin;
use Shopware\Core\Framework\Plugin\Context\ActivateContext;
use Shopware\Core\Framework\Plugin\Context\DeactivateContext;
use Shopware\Core\Framework\Plugin\Context\InstallContext;
class ProxaImportExportExtension extends Plugin
{
const IMPORT_EXPORT_PROFILE_ORDER_NAME = 'Proxa Order Export';
const INVOICE_NUMBER = [
'mappedKey' => 'Rechnungsnummer',
'key' => 'proxa.invoiceNumber',
];
const TOTAL_WITHOUT_SHIPPING = [
'mappedKey' => 'Gesamtwert der Bestellung',
'key' => 'proxa.total.excl.shipping',
];
const CUSTOMER_ADDRESS = [
'mappedKey' => 'Customer Address',
'key' => 'proxa.customerAddress',
];
const PAYMENT_METHOD = [
'mappedKey' => 'Payment method',
'key' => 'proxa.paymentMethod',
];
/**
* @param ActivateContext $activateContext
* @return void
*/
public function activate(ActivateContext $activateContext): void
{
$repository = $this->container->get('import_export_profile.repository');
$repository->upsert([$this->getImportExportProfileOrder()], $activateContext->getContext());
}
/**
* @param DeactivateContext $deactivateContext
* @return void
*/
public function deactivate(DeactivateContext $deactivateContext): void
{
$repository = $this->container->get('import_export_profile.repository');
$repository->delete([['id' => $this->getImportExportProfileOrder()['id']]], $deactivateContext->getContext());
}
/**
* @return array
*/
private function getImportExportProfileOrder(): array
{
return [
'id' => 'e6bba200a465606ce7f892e407988724',
'name' => self::IMPORT_EXPORT_PROFILE_ORDER_NAME,
'label' => self::IMPORT_EXPORT_PROFILE_ORDER_NAME,
'systemDefault' => false,
'sourceEntity' => 'order',
'fileType' => 'text/csv',
'delimiter' => ';',
'enclosure' => '"',
'type' => ImportExportProfileEntity::TYPE_EXPORT,
'mapping' => [
[
'mappedKey' => 'Bestellnummer',
'key' => 'orderNumber',
],
self::INVOICE_NUMBER,
self::TOTAL_WITHOUT_SHIPPING,
[
'mappedKey' => 'Versandkosten',
'key' => 'shippingTotal',
],
self::CUSTOMER_ADDRESS,
self::PAYMENT_METHOD
],
];
}
}