<?php
declare(strict_types=1);
namespace CnhProductExporter;
use Shopware\Core\Checkout\Order\Aggregate\OrderLineItem\OrderLineItemDefinition;
use Shopware\Core\Checkout\Order\OrderDefinition;
use Shopware\Core\Content\Category\CategoryDefinition;
use Shopware\Core\Content\Product\ProductDefinition;
use Shopware\Core\Content\Rule\RuleDefinition;
use Shopware\Core\Framework\Context;
use Shopware\Core\Framework\DataAbstractionLayer\EntityRepository;
use Shopware\Core\Framework\Plugin;
use Shopware\Core\Framework\Plugin\Context\InstallContext;
use Shopware\Core\Framework\Plugin\Context\UpdateContext;
use Shopware\Core\System\CustomField\CustomFieldTypes;
use Shopware\Core\System\Language\LanguageDefinition;
class CnhProductExporter extends Plugin
{
const CF_CNH_API_BASE = "cnh_api";
const CATEGORY_CUSTOM_FIELD_SET_CNH_API = self::CF_CNH_API_BASE . "_category";
const CATEGORY_CUSTOM_FIELD_SET_CNH_API_ID = self::CATEGORY_CUSTOM_FIELD_SET_CNH_API . "_id";
const LANGUAGE_CUSTOM_FIELD_SET_CNH_API = self::CF_CNH_API_BASE . "_language";
const LANGUAGE_CUSTOM_FIELD_SET_CNH_API_ID = self::LANGUAGE_CUSTOM_FIELD_SET_CNH_API . "_id";
const PRODUCT_CUSTOM_FIELD_SET_CNH_API = self::CF_CNH_API_BASE . "_product";
const PRODUCT_CUSTOM_FIELD_SET_CNH_API_STORE_CNH_INDUSTRIAL = self::PRODUCT_CUSTOM_FIELD_SET_CNH_API . "_cnh_industrial";
const PRODUCT_CUSTOM_FIELD_SET_CNH_API_STORE_CASE_IH_FANSHOP = self::PRODUCT_CUSTOM_FIELD_SET_CNH_API . "_case_ih_fanshop";
const PRODUCT_CUSTOM_FIELD_SET_CNH_API_STORE_STEYR_FANSHOP = self::PRODUCT_CUSTOM_FIELD_SET_CNH_API . "_steyr_fanshop";
const PRODUCT_CUSTOM_FIELD_SET_CNH_API_STORE_CASE_FANSHOP = self::PRODUCT_CUSTOM_FIELD_SET_CNH_API . "_case_fanshop";
const PRODUCT_CUSTOM_FIELD_SET_CNH_API_STORE_NEW_HOLLAND_STYLE = self::PRODUCT_CUSTOM_FIELD_SET_CNH_API . "_new_holland_style";
const PRODUCT_CUSTOM_FIELD_SET_GROUP_DFS = self::PRODUCT_CUSTOM_FIELD_SET_CNH_API . "_group_dfs";
const PRODUCT_CUSTOM_FIELD_SET_GROUP_DFS2 = self::PRODUCT_CUSTOM_FIELD_SET_CNH_API . "_group_dfs2";
const PRODUCT_CUSTOM_FIELD_SET_GROUP_DFS_INTERNATIONAL = self::PRODUCT_CUSTOM_FIELD_SET_CNH_API . "_group_dfs_international";
const PRODUCT_CUSTOM_FIELD_SET_GROUP_DIREX = self::PRODUCT_CUSTOM_FIELD_SET_CNH_API . "_group_direx";
const PRODUCT_CUSTOM_FIELD_SET_GROUP_DIREX_UK = self::PRODUCT_CUSTOM_FIELD_SET_CNH_API . "_group_direx_uk";
const PRODUCT_CUSTOM_FIELD_SET_GROUP_IMPORTER = self::PRODUCT_CUSTOM_FIELD_SET_CNH_API . "_group_importer";
const PRODUCT_CUSTOM_FIELD_SET_GROUP_INTERN = self::PRODUCT_CUSTOM_FIELD_SET_CNH_API . "_group_intern";
const PRODUCT_CUSTOM_FIELD_SET_GROUP_MITARBEITER = self::PRODUCT_CUSTOM_FIELD_SET_CNH_API . "_group_mitarbeiter";
const PRODUCT_CUSTOM_FIELD_SET_GROUP_PRIVATE_USER = self::PRODUCT_CUSTOM_FIELD_SET_CNH_API . "_group_private_user";
const PRODUCT_CUSTOM_FIELD_SET_GROUP_PRIVATE_FIRMA = self::PRODUCT_CUSTOM_FIELD_SET_CNH_API . "_group_private_firma";
const PRODUCT_CUSTOM_FIELD_SET_GROUP_INTERN_UK = self::PRODUCT_CUSTOM_FIELD_SET_CNH_API . "_group_intern_uk";
const PRODUCT_CUSTOM_FIELD_SET_GROUP_MITARBEITER_UK = self::PRODUCT_CUSTOM_FIELD_SET_CNH_API . "_group_mitarbeiter_uk";
const PRODUCT_CUSTOM_FIELD_SET_GROUP_B2C_UK = self::PRODUCT_CUSTOM_FIELD_SET_CNH_API . "_group_b2c_uk";
const PRODUCT_CUSTOM_FIELD_SET_COMING_SOON = self::PRODUCT_CUSTOM_FIELD_SET_CNH_API . "_coming_soon";
const PRODUCT_CUSTOM_FIELD_SET_EXPIRE = self::PRODUCT_CUSTOM_FIELD_SET_CNH_API . "_expire";
const PRODUCT_CUSTOM_FIELD_SET_PUBLISHED = self::PRODUCT_CUSTOM_FIELD_SET_CNH_API . "_published";
const PRODUCT_CUSTOM_FIELD_SET_PREORDER = self::PRODUCT_CUSTOM_FIELD_SET_CNH_API . "_preorder";
const PRODUCT_CUSTOM_FIELD_SET_VOUHCER = self::PRODUCT_CUSTOM_FIELD_SET_CNH_API . "_is_voucher";
const PRODUCT_CUSTOM_FIELD_SET_CNH_DISPLAY_BUY_BUTTON = self::PRODUCT_CUSTOM_FIELD_SET_CNH_API . "_display_buy_button";
const PRODUCT_CUSTOM_FIELD_SET_CNH_SUPPLIER_ORDER_QUANTITY = self::PRODUCT_CUSTOM_FIELD_SET_CNH_API . "_supplier_order_quantity";
const RULE_CUSTOM_FIELD_SET_CNH_API = self::CF_CNH_API_BASE . "_rule";
const RULE_CUSTOM_FIELD_SET_CNH_API_ACL_ID = self::RULE_CUSTOM_FIELD_SET_CNH_API . "_rule_acl_id";
const ORDER_CUSTOM_FIELD_SET_CNH_API = self::CF_CNH_API_BASE . "_order";
const ORDER_CUSTOM_FIELD_SET_CNH_API_TARGET_CURRENCY = "targetCurrency";
const ORDER_CUSTOM_FIELD_SET_CNH_API_CURRENCY_EXCHANGE_RATE = "currencyFactor";
const ORDER_CUSTOM_FIELD_SET_CNH_API_LOCALE = "locale";
const ORDER_CUSTOM_FIELD_SET_CNH_API_DEALER_INFO = "dealerInfo";
const ORDER_CUSTOM_FIELD_SET_CNH_API_PROMO_NAME = "_promo_name";
const ORDER_CUSTOM_FIELD_SET_CNH_API_COST_CENTER_NUMBER = "costCenterNumber";
const ORDER_CUSTOM_FIELD_SET_CNH_API_PO_NUMBER = "poNumber";
const ORDER_CUSTOM_FIELD_SET_CNH_API_MANAGER_EMAIL = "managerEmail";
const ORDER_LINE_CUSTOM_FIELD_SET_CNH_API = self::CF_CNH_API_BASE . "_order_line";
const ORDER_LINE_CUSTOM_FIELD_SET_CNH_API_PROMO_NAME = self::CF_CNH_API_BASE . "_promo_name";
const PRODUCT_STORE_FIELDS = [
self::PRODUCT_CUSTOM_FIELD_SET_CNH_API_STORE_CNH_INDUSTRIAL,
self::PRODUCT_CUSTOM_FIELD_SET_CNH_API_STORE_CASE_IH_FANSHOP,
self::PRODUCT_CUSTOM_FIELD_SET_CNH_API_STORE_STEYR_FANSHOP,
self::PRODUCT_CUSTOM_FIELD_SET_CNH_API_STORE_CASE_FANSHOP,
self::PRODUCT_CUSTOM_FIELD_SET_CNH_API_STORE_NEW_HOLLAND_STYLE
];
const CUSTOMER_GROUPS_ALLOWED = [
self::PRODUCT_CUSTOM_FIELD_SET_GROUP_DFS,
self::PRODUCT_CUSTOM_FIELD_SET_GROUP_DFS2,
self::PRODUCT_CUSTOM_FIELD_SET_GROUP_DFS_INTERNATIONAL,
self::PRODUCT_CUSTOM_FIELD_SET_GROUP_DIREX,
self::PRODUCT_CUSTOM_FIELD_SET_GROUP_DIREX_UK,
self::PRODUCT_CUSTOM_FIELD_SET_GROUP_IMPORTER,
self::PRODUCT_CUSTOM_FIELD_SET_GROUP_INTERN,
self::PRODUCT_CUSTOM_FIELD_SET_GROUP_MITARBEITER,
self::PRODUCT_CUSTOM_FIELD_SET_GROUP_PRIVATE_USER,
self::PRODUCT_CUSTOM_FIELD_SET_GROUP_PRIVATE_FIRMA,
self::PRODUCT_CUSTOM_FIELD_SET_GROUP_MITARBEITER_UK,
self::PRODUCT_CUSTOM_FIELD_SET_GROUP_INTERN_UK,
self::PRODUCT_CUSTOM_FIELD_SET_GROUP_B2C_UK
];
public function install(InstallContext $installContext): void
{
parent::install($installContext);
$this->registerCustomFields($installContext->getContext());
}
public function update(UpdateContext $updateContext): void
{
parent::update($updateContext);
$this->registerCustomFields($updateContext->getContext());
}
public function registerCustomFields(Context $context)
{
/** @var EntityRepository $customFieldSetRepository */
$customFieldSetRepository = $this->container->get('custom_field_set.repository');
$customFields = [
$this->getCategoryCustomFields($context),
$this->getProductCustomFields($context),
$this->getLanguageCustomFields($context),
$this->getRuleCustomFields($context),
$this->getOrderCustomFields($context),
$this->getOrderLineCustomFields($context),
];
$customFieldSetRepository->upsert($customFields, $context);
}
private function getCategoryCustomFields(Context $context): array
{
return [
'id' => md5(self::CATEGORY_CUSTOM_FIELD_SET_CNH_API),
'name' => self::CATEGORY_CUSTOM_FIELD_SET_CNH_API,
'postion' => 21,
'config' => [
'label' => [
'de-DE' => 'CNH API mapping für Kategorien',
'en-GB' => 'CNH API map for categories'
]
],
'relations' => [
[
'id' => md5(self::CATEGORY_CUSTOM_FIELD_SET_CNH_API . CategoryDefinition::ENTITY_NAME),
'entityName' => CategoryDefinition::ENTITY_NAME
],
],
'customFields' => [
[
'id' => md5(self::CATEGORY_CUSTOM_FIELD_SET_CNH_API_ID),
'name' => self::CATEGORY_CUSTOM_FIELD_SET_CNH_API_ID,
'type' => CustomFieldTypes::TEXT,
'config' => [
'customFieldType' => CustomFieldTypes::TEXT,
'customFieldPosition' => 0,
'componentName' => 'sw-text-field',
'label' => [
'de-DE' => 'CNH ID',
'en-GB' => 'CNH ID'
],
'placeholder' => [
'de-DE' => 'ID bei CNH für diese Kategorie',
'en-GB' => 'CNH id for this category'
]
]
]
]
];
}
private function getProductCustomFields(Context $context): array
{
return [
'id' => md5(self::PRODUCT_CUSTOM_FIELD_SET_CNH_API),
'name' => self::PRODUCT_CUSTOM_FIELD_SET_CNH_API,
'postion' => 0,
'config' => [
'label' => [
'de-DE' => 'CNH API mapping für Produkten',
'en-GB' => 'CNH API map for products'
]
],
'relations' => [
[
'id' => md5(self::PRODUCT_CUSTOM_FIELD_SET_CNH_API . ProductDefinition::ENTITY_NAME),
'entityName' => ProductDefinition::ENTITY_NAME
],
],
'customFields' => [
[
'id' => md5(self::PRODUCT_CUSTOM_FIELD_SET_CNH_DISPLAY_BUY_BUTTON),
'name' => self::PRODUCT_CUSTOM_FIELD_SET_CNH_DISPLAY_BUY_BUTTON,
'type' => CustomFieldTypes::CHECKBOX,
'config' => [
'customFieldType' => CustomFieldTypes::CHECKBOX,
'customFieldPosition' => 0,
'label' => [
'de-DE' => 'Kauf Knopf anzeigen',
'en-GB' => 'Display Buy Button'
]
]
],
[
'id' => md5(self::PRODUCT_CUSTOM_FIELD_SET_CNH_API_STORE_CNH_INDUSTRIAL),
'name' => self::PRODUCT_CUSTOM_FIELD_SET_CNH_API_STORE_CNH_INDUSTRIAL,
'type' => CustomFieldTypes::BOOL,
'config' => [
'customFieldType' => CustomFieldTypes::BOOL,
'customFieldPosition' => 1,
'label' => [
'de-DE' => 'CNH Industrial Store',
'en-GB' => 'CNH Industrial Store'
]
]
],
[
'id' => md5(self::PRODUCT_CUSTOM_FIELD_SET_CNH_API_STORE_CASE_IH_FANSHOP),
'name' => self::PRODUCT_CUSTOM_FIELD_SET_CNH_API_STORE_CASE_IH_FANSHOP,
'type' => CustomFieldTypes::BOOL,
'config' => [
'customFieldType' => CustomFieldTypes::BOOL,
'customFieldPosition' => 2,
'label' => [
'de-DE' => 'Case IH Fanshop Store',
'en-GB' => 'Case IH Fanshop Store'
]
]
],
[
'id' => md5(self::PRODUCT_CUSTOM_FIELD_SET_CNH_API_STORE_STEYR_FANSHOP),
'name' => self::PRODUCT_CUSTOM_FIELD_SET_CNH_API_STORE_STEYR_FANSHOP,
'type' => CustomFieldTypes::BOOL,
'config' => [
'customFieldType' => CustomFieldTypes::BOOL,
'customFieldPosition' => 3,
'label' => [
'de-DE' => 'Steyr Fanshop',
'en-GB' => 'Steyr Fanshop'
]
]
],
[
'id' => md5(self::PRODUCT_CUSTOM_FIELD_SET_CNH_API_STORE_CASE_FANSHOP),
'name' => self::PRODUCT_CUSTOM_FIELD_SET_CNH_API_STORE_CASE_FANSHOP,
'type' => CustomFieldTypes::BOOL,
'config' => [
'customFieldType' => CustomFieldTypes::BOOL,
'customFieldPosition' => 4,
'label' => [
'de-DE' => 'Case Fanshop',
'en-GB' => 'Case Fanshop'
]
]
],
[
'id' => md5(self::PRODUCT_CUSTOM_FIELD_SET_CNH_API_STORE_NEW_HOLLAND_STYLE),
'name' => self::PRODUCT_CUSTOM_FIELD_SET_CNH_API_STORE_NEW_HOLLAND_STYLE,
'type' => CustomFieldTypes::BOOL,
'config' => [
'customFieldType' => CustomFieldTypes::BOOL,
'customFieldPosition' => 5,
'label' => [
'de-DE' => 'New Holland Style Store',
'en-GB' => 'New Holland Style Store'
]
]
],
[
'id' => md5(self::PRODUCT_CUSTOM_FIELD_SET_GROUP_DFS),
'name' => self::PRODUCT_CUSTOM_FIELD_SET_GROUP_DFS,
'type' => CustomFieldTypes::BOOL,
'config' => [
'customFieldType' => CustomFieldTypes::BOOL,
'customFieldPosition' => 5,
'label' => [
'de-DE' => 'DFS',
'en-GB' => 'DFS'
]
]
],
[
'id' => md5(self::PRODUCT_CUSTOM_FIELD_SET_GROUP_DFS2),
'name' => self::PRODUCT_CUSTOM_FIELD_SET_GROUP_DFS2,
'type' => CustomFieldTypes::BOOL,
'config' => [
'customFieldType' => CustomFieldTypes::BOOL,
'customFieldPosition' => 5,
'label' => [
'de-DE' => 'DFS 2',
'en-GB' => 'DFS 2'
]
]
],
[
'id' => md5(self::PRODUCT_CUSTOM_FIELD_SET_GROUP_DFS_INTERNATIONAL),
'name' => self::PRODUCT_CUSTOM_FIELD_SET_GROUP_DFS_INTERNATIONAL,
'type' => CustomFieldTypes::BOOL,
'config' => [
'customFieldType' => CustomFieldTypes::BOOL,
'customFieldPosition' => 6,
'label' => [
'de-DE' => 'DFS International',
'en-GB' => 'DFS International'
]
]
],
[
'id' => md5(self::PRODUCT_CUSTOM_FIELD_SET_GROUP_DIREX),
'name' => self::PRODUCT_CUSTOM_FIELD_SET_GROUP_DIREX,
'type' => CustomFieldTypes::BOOL,
'config' => [
'customFieldType' => CustomFieldTypes::BOOL,
'customFieldPosition' => 7,
'label' => [
'de-DE' => 'Direx',
'en-GB' => 'Direx'
]
]
],
[
'id' => md5(self::PRODUCT_CUSTOM_FIELD_SET_GROUP_DIREX_UK),
'name' => self::PRODUCT_CUSTOM_FIELD_SET_GROUP_DIREX_UK,
'type' => CustomFieldTypes::BOOL,
'config' => [
'customFieldType' => CustomFieldTypes::BOOL,
'customFieldPosition' => 7,
'label' => [
'de-DE' => 'Direx UK',
'en-GB' => 'Direx UK'
]
]
],
[
'id' => md5(self::PRODUCT_CUSTOM_FIELD_SET_GROUP_IMPORTER),
'name' => self::PRODUCT_CUSTOM_FIELD_SET_GROUP_IMPORTER,
'type' => CustomFieldTypes::BOOL,
'config' => [
'customFieldType' => CustomFieldTypes::BOOL,
'customFieldPosition' => 8,
'label' => [
'de-DE' => 'Imperter',
'en-GB' => 'Imperter'
]
]
],
[
'id' => md5(self::PRODUCT_CUSTOM_FIELD_SET_GROUP_INTERN),
'name' => self::PRODUCT_CUSTOM_FIELD_SET_GROUP_INTERN,
'type' => CustomFieldTypes::BOOL,
'config' => [
'customFieldType' => CustomFieldTypes::BOOL,
'customFieldPosition' => 9,
'label' => [
'de-DE' => 'Intern',
'en-GB' => 'Intern'
]
]
],
[
'id' => md5(self::PRODUCT_CUSTOM_FIELD_SET_GROUP_MITARBEITER),
'name' => self::PRODUCT_CUSTOM_FIELD_SET_GROUP_MITARBEITER,
'type' => CustomFieldTypes::BOOL,
'config' => [
'customFieldType' => CustomFieldTypes::BOOL,
'customFieldPosition' => 10,
'label' => [
'de-DE' => 'Mitarbeiter',
'en-GB' => 'Mitarbeiter'
]
]
],
[
'id' => md5(self::PRODUCT_CUSTOM_FIELD_SET_GROUP_PRIVATE_FIRMA),
'name' => self::PRODUCT_CUSTOM_FIELD_SET_GROUP_PRIVATE_FIRMA,
'type' => CustomFieldTypes::BOOL,
'config' => [
'customFieldType' => CustomFieldTypes::BOOL,
'customFieldPosition' => 11,
'label' => [
'de-DE' => 'Private Firma',
'en-GB' => 'Private Firma'
]
]
],
[
'id' => md5(self::PRODUCT_CUSTOM_FIELD_SET_GROUP_PRIVATE_USER),
'name' => self::PRODUCT_CUSTOM_FIELD_SET_GROUP_PRIVATE_USER,
'type' => CustomFieldTypes::BOOL,
'config' => [
'customFieldType' => CustomFieldTypes::BOOL,
'customFieldPosition' => 12,
'label' => [
'de-DE' => 'Private User',
'en-GB' => 'Private User'
]
]
],
[
'id' => md5(self::PRODUCT_CUSTOM_FIELD_SET_GROUP_INTERN_UK),
'name' => self::PRODUCT_CUSTOM_FIELD_SET_GROUP_INTERN_UK,
'type' => CustomFieldTypes::BOOL,
'config' => [
'customFieldType' => CustomFieldTypes::BOOL,
'customFieldPosition' => 13,
'label' => [
'de-DE' => 'Intern UK',
'en-GB' => 'Intern UK'
]
]
],
[
'id' => md5(self::PRODUCT_CUSTOM_FIELD_SET_GROUP_MITARBEITER_UK),
'name' => self::PRODUCT_CUSTOM_FIELD_SET_GROUP_MITARBEITER_UK,
'type' => CustomFieldTypes::BOOL,
'config' => [
'customFieldType' => CustomFieldTypes::BOOL,
'customFieldPosition' => 14,
'label' => [
'de-DE' => 'Mitarbeiter UK',
'en-GB' => 'Employee UK'
]
]
],
[
'id' => md5(self::PRODUCT_CUSTOM_FIELD_SET_GROUP_B2C_UK),
'name' => self::PRODUCT_CUSTOM_FIELD_SET_GROUP_B2C_UK,
'type' => CustomFieldTypes::BOOL,
'config' => [
'customFieldType' => CustomFieldTypes::BOOL,
'customFieldPosition' => 15,
'label' => [
'de-DE' => 'B2C UK',
'en-GB' => 'B2C UK'
]
]
],
[
'id' => md5(self::PRODUCT_CUSTOM_FIELD_SET_COMING_SOON),
'name' => self::PRODUCT_CUSTOM_FIELD_SET_COMING_SOON,
'type' => CustomFieldTypes::BOOL,
'config' => [
'customFieldType' => CustomFieldTypes::BOOL,
'customFieldPosition' => 16,
'label' => [
'de-DE' => 'Coming Soon',
'en-GB' => 'Coming Soon'
]
]
],
[
'id' => md5(self::PRODUCT_CUSTOM_FIELD_SET_EXPIRE),
'name' => self::PRODUCT_CUSTOM_FIELD_SET_EXPIRE,
'type' => CustomFieldTypes::BOOL,
'config' => [
'customFieldType' => CustomFieldTypes::BOOL,
'customFieldPosition' => 17,
'label' => [
'de-DE' => 'Expire',
'en-GB' => 'Expire'
]
]
],
[
'id' => md5(self::PRODUCT_CUSTOM_FIELD_SET_PUBLISHED),
'name' => self::PRODUCT_CUSTOM_FIELD_SET_PUBLISHED,
'type' => CustomFieldTypes::BOOL,
'config' => [
'customFieldType' => CustomFieldTypes::BOOL,
'customFieldPosition' => 17,
'label' => [
'de-DE' => 'Published',
'en-GB' => 'Published'
]
]
],
[
'id' => md5(self::PRODUCT_CUSTOM_FIELD_SET_PREORDER),
'name' => self::PRODUCT_CUSTOM_FIELD_SET_PREORDER,
'type' => CustomFieldTypes::BOOL,
'config' => [
'customFieldType' => CustomFieldTypes::BOOL,
'customFieldPosition' => 18,
'label' => [
'de-DE' => 'Preorder',
'en-GB' => 'Preorder'
]
]
],
[
'id' => md5(self::PRODUCT_CUSTOM_FIELD_SET_VOUHCER),
'name' => self::PRODUCT_CUSTOM_FIELD_SET_VOUHCER,
'type' => CustomFieldTypes::BOOL,
'config' => [
'customFieldType' => CustomFieldTypes::BOOL,
'customFieldPosition' => 19,
'label' => [
'de-DE' => 'Ist voucher',
'en-GB' => 'Is voucher'
]
]
],
[
'id' => md5(self::PRODUCT_CUSTOM_FIELD_SET_CNH_SUPPLIER_ORDER_QUANTITY),
'name' => self::PRODUCT_CUSTOM_FIELD_SET_CNH_SUPPLIER_ORDER_QUANTITY,
'type' => CustomFieldTypes::TEXT,
'config' => [
'customFieldType' => CustomFieldTypes::TEXT,
'customFieldPosition' => 20,
'label' => [
'de-DE' => 'Lieferbestellmenge',
'en-GB' => 'Supplier order quantity'
]
]
]
]
];
}
private function getLanguageCustomFields(Context $context): array
{
return [
'id' => md5(self::LANGUAGE_CUSTOM_FIELD_SET_CNH_API),
'name' => self::LANGUAGE_CUSTOM_FIELD_SET_CNH_API,
'postion' => 0,
'config' => [
'label' => [
'de-DE' => 'CNH API mapping für Sprachen',
'en-GB' => 'CNH API map for Languages'
]
],
'relations' => [
[
'id' => md5(self::LANGUAGE_CUSTOM_FIELD_SET_CNH_API . LanguageDefinition::ENTITY_NAME),
'entityName' => LanguageDefinition::ENTITY_NAME
],
],
'customFields' => [
[
'id' => md5(self::LANGUAGE_CUSTOM_FIELD_SET_CNH_API_ID),
'name' => self::LANGUAGE_CUSTOM_FIELD_SET_CNH_API_ID,
'type' => CustomFieldTypes::TEXT,
'config' => [
'customFieldType' => CustomFieldTypes::TEXT,
'customFieldPosition' => 0,
'componentName' => 'sw-text-field',
'label' => [
'de-DE' => 'CNH ID',
'en-GB' => 'CNH ID'
],
'placeholder' => [
'de-DE' => 'ID bei CNH für diese Sprache',
'en-GB' => 'CNH id for this language'
]
]
]
]
];
}
private function getRuleCustomFields(Context $context): array
{
return [
'id' => md5(self::RULE_CUSTOM_FIELD_SET_CNH_API),
'name' => self::RULE_CUSTOM_FIELD_SET_CNH_API,
'postion' => 0,
'config' => [
'label' => [
'de-DE' => 'CNH API mapping für Regeln',
'en-GB' => 'CNH API map for Rules'
]
],
'relations' => [
[
'id' => md5(self::RULE_CUSTOM_FIELD_SET_CNH_API . RuleDefinition::ENTITY_NAME),
'entityName' => RuleDefinition::ENTITY_NAME
],
],
'customFields' => [
[
'id' => md5(self::RULE_CUSTOM_FIELD_SET_CNH_API_ACL_ID),
'name' => self::RULE_CUSTOM_FIELD_SET_CNH_API_ACL_ID,
'type' => CustomFieldTypes::TEXT,
'config' => [
'customFieldType' => CustomFieldTypes::TEXT,
'customFieldPosition' => 0,
'componentName' => 'sw-text-field',
'label' => [
'de-DE' => 'IDs der Kundengruppen bei CNH',
'en-GB' => 'IDs for the CNH customer group for this rule'
],
'placeholder' => [
'de-DE' => 'z.b.: 1|5',
'en-GB' => 'e.g.: 1|5'
]
]
]
]
];
}
private function getOrderCustomFields(Context $context): array
{
return [
'id' => md5(self::ORDER_CUSTOM_FIELD_SET_CNH_API),
'name' => self::ORDER_CUSTOM_FIELD_SET_CNH_API,
'postion' => 0,
'config' => [
'label' => [
'de-DE' => 'CNH Bestellung Erweiterung set',
'en-GB' => 'CNH data set for Order'
]
],
'relations' => [
[
'id' => md5(self::ORDER_CUSTOM_FIELD_SET_CNH_API . OrderDefinition::ENTITY_NAME),
'entityName' => OrderDefinition::ENTITY_NAME
],
],
'customFields' => [
[
'id' => md5(self::ORDER_CUSTOM_FIELD_SET_CNH_API_TARGET_CURRENCY),
'name' => self::ORDER_CUSTOM_FIELD_SET_CNH_API_TARGET_CURRENCY,
'type' => CustomFieldTypes::TEXT,
'config' => [
'customFieldType' => CustomFieldTypes::TEXT,
'customFieldPosition' => 0,
'componentName' => 'sw-text-field',
'label' => [
'de-DE' => 'CNH währung',
'en-GB' => 'CNH currency'
]
]
],
[
'id' => md5(self::ORDER_CUSTOM_FIELD_SET_CNH_API_CURRENCY_EXCHANGE_RATE),
'name' => self::ORDER_CUSTOM_FIELD_SET_CNH_API_CURRENCY_EXCHANGE_RATE,
'type' => CustomFieldTypes::FLOAT,
'config' => [
'customFieldType' => CustomFieldTypes::FLOAT,
'customFieldPosition' => 1,
'componentName' => 'sw-text-field',
'label' => [
'de-DE' => 'CNH währung umwandlung factor',
'en-GB' => 'CNH currency exchange rate'
]
]
],
[
'id' => md5(self::ORDER_CUSTOM_FIELD_SET_CNH_API_LOCALE),
'name' => self::ORDER_CUSTOM_FIELD_SET_CNH_API_LOCALE,
'type' => CustomFieldTypes::TEXT,
'config' => [
'customFieldType' => CustomFieldTypes::TEXT,
'customFieldPosition' => 2,
'componentName' => 'sw-text-field',
'label' => [
'de-DE' => 'CNH Bestellung sprache',
'en-GB' => 'CNH order locale'
]
]
],
[
'id' => md5(self::ORDER_CUSTOM_FIELD_SET_CNH_API_DEALER_INFO),
'name' => self::ORDER_CUSTOM_FIELD_SET_CNH_API_DEALER_INFO,
'type' => CustomFieldTypes::TEXT,
'config' => [
'customFieldType' => CustomFieldTypes::TEXT,
'customFieldPosition' => 4,
'componentName' => 'sw-text-field',
'label' => [
'de-DE' => 'CNH Dealer Informationen',
'en-GB' => 'CNH dealer info'
]
]
],
[
'id' => md5(self::ORDER_CUSTOM_FIELD_SET_CNH_API_PROMO_NAME),
'name' => self::ORDER_CUSTOM_FIELD_SET_CNH_API_PROMO_NAME,
'type' => CustomFieldTypes::TEXT,
'config' => [
'customFieldType' => CustomFieldTypes::TEXT,
'customFieldPosition' => 5,
'componentName' => 'sw-text-field',
'label' => [
'de-DE' => 'CNH Bestellung Promotion name',
'en-GB' => 'CNH order promo name'
]
]
],
[
'id' => md5(self::ORDER_CUSTOM_FIELD_SET_CNH_API_PO_NUMBER),
'name' => self::ORDER_CUSTOM_FIELD_SET_CNH_API_PO_NUMBER,
'type' => CustomFieldTypes::TEXT,
'config' => [
'customFieldType' => CustomFieldTypes::TEXT,
'customFieldPosition' => 5,
'componentName' => 'sw-text-field',
'label' => [
'de-DE' => 'CNH Bestellung PO Nummer',
'en-GB' => 'CNH order PO number'
]
]
],
[
'id' => md5(self::ORDER_CUSTOM_FIELD_SET_CNH_API_COST_CENTER_NUMBER),
'name' => self::ORDER_CUSTOM_FIELD_SET_CNH_API_COST_CENTER_NUMBER,
'type' => CustomFieldTypes::TEXT,
'config' => [
'customFieldType' => CustomFieldTypes::TEXT,
'customFieldPosition' => 5,
'componentName' => 'sw-text-field',
'label' => [
'de-DE' => 'CNH Bestellung Cost Center Number',
'en-GB' => 'CNH order Cost Center Number'
]
]
],
[
'id' => md5(self::ORDER_CUSTOM_FIELD_SET_CNH_API_MANAGER_EMAIL),
'name' => self::ORDER_CUSTOM_FIELD_SET_CNH_API_MANAGER_EMAIL,
'type' => CustomFieldTypes::TEXT,
'config' => [
'customFieldType' => CustomFieldTypes::TEXT,
'customFieldPosition' => 5,
'componentName' => 'sw-text-field',
'label' => [
'de-DE' => 'CNH Bestellung Manager E-Mail',
'en-GB' => 'CNH order manager e-mail'
]
]
],
]
];
}
private function getOrderLineCustomFields(Context $context): array
{
return [
'id' => md5(self::ORDER_LINE_CUSTOM_FIELD_SET_CNH_API),
'name' => self::ORDER_LINE_CUSTOM_FIELD_SET_CNH_API,
'postion' => 0,
'config' => [
'label' => [
'de-DE' => 'CNH Bestellung Positionen Erweiterung set',
'en-GB' => 'CNH data set for Order line'
]
],
'relations' => [
[
'id' => md5(self::ORDER_LINE_CUSTOM_FIELD_SET_CNH_API . OrderLineItemDefinition::ENTITY_NAME),
'entityName' => OrderLineItemDefinition::ENTITY_NAME
],
],
'customFields' => [
[
'id' => md5(self::ORDER_LINE_CUSTOM_FIELD_SET_CNH_API_PROMO_NAME),
'name' => self::ORDER_LINE_CUSTOM_FIELD_SET_CNH_API_PROMO_NAME,
'type' => CustomFieldTypes::TEXT,
'config' => [
'customFieldType' => CustomFieldTypes::TEXT,
'customFieldPosition' => 0,
'componentName' => 'sw-text-field',
'label' => [
'de-DE' => 'CNH Promo für bestellzeile',
'en-GB' => 'CNH promo name for order line'
]
]
]
]
];
}
}