<?php declare(strict_types=1);
namespace Compra\MinimumOrderValueSW6;
use Shopware\Core\Framework\DataAbstractionLayer\Search\Criteria;
use Shopware\Core\Framework\DataAbstractionLayer\Search\Filter\EqualsFilter;
use Shopware\Core\Framework\Plugin;
use Shopware\Core\Framework\Plugin\Context\InstallContext;
use Shopware\Core\Framework\Plugin\Context\UninstallContext;
class CompraMinimumOrderValueSW6 extends Plugin
{
public function install(InstallContext $installContext): void
{
parent::install($installContext);
$customFieldSetRepository = $this->container->get('custom_field_set.repository');
$criteria = new Criteria();
$criteria->addFilter(new EqualsFilter('name', 'compra_minimum_order_value'));
$result = $customFieldSetRepository->searchIds($criteria, $installContext->getContext());
if (!($result->getTotal() > 0)) {
$this->addMinimumOrderValueFields($installContext);
}
}
public function uninstall(UninstallContext $uninstallContext): void
{
parent::uninstall($uninstallContext);
$customFieldSetRepository = $this->container->get('custom_field_set.repository');
$criteria = new Criteria();
$criteria->addFilter(new EqualsFilter('name', 'compra_minimum_order_value'));
$result = $customFieldSetRepository->searchIds($criteria, $uninstallContext->getContext());
if ($result->getTotal() > 0 && !$uninstallContext->keepUserData()) {
$data = $result->getDataOfId($result->firstId());
$customFieldSetRepository->delete([$data], $uninstallContext->getContext());
}
}
/**
* @param $context
*/
protected function addMinimumOrderValueFields($context)
{
$customFieldSetRepository = $this->container->get('custom_field_set.repository');
$customFieldSetRepository->upsert([[
'name' => 'compra_minimum_order_value',
'config' => [
'label' => [
'en-GB' => 'COMPRA minimum order value',
'de-DE' => 'COMPRA Mindestbestellwert'
]
],
'relations' => [
[
'entityName' => 'country'
]
],
'customFields' => [
[
'name' => 'compra_minimum_order_value',
'type' => 'price'
]
]
]], $context->getContext());
}
}