Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
BundleAdvancedPricing.php
Go to the documentation of this file.
1 <?php
7 
11 
16 {
17  const CODE_PRICE_TYPE = 'price_type';
18  const CODE_MSRP = 'msrp';
19  const CODE_MSRP_DISPLAY_ACTUAL_PRICE_TYPE = 'msrp_display_actual_price_type';
20  const CODE_ADVANCED_PRICING = 'advanced-pricing';
21  const CODE_RECORD = 'record';
22 
26  private $arrayManager;
27 
31  public function __construct(ArrayManager $arrayManager)
32  {
33  $this->arrayManager = $arrayManager;
34  }
35 
39  public function modifyMeta(array $meta)
40  {
41  $groupCode = $this->getGroupCodeByField($meta, self::CODE_ADVANCED_PRICING);
42  if ($groupCode) {
43  $parentNode = &$meta[$groupCode]['children'][self::CODE_ADVANCED_PRICING]['children'];
44  if (isset($parentNode['container_' . self::CODE_MSRP])
45  && isset($parentNode['container_' . self::CODE_MSRP_DISPLAY_ACTUAL_PRICE_TYPE])
46  ) {
47  $parentNode = $this->modifyMsrpMeta($parentNode);
48  }
49  if (isset($parentNode['container_' . ProductAttributeInterface::CODE_SPECIAL_PRICE])) {
50  $currentNode = &$parentNode['container_' . ProductAttributeInterface::CODE_SPECIAL_PRICE]['children'];
51  $currentNode[ProductAttributeInterface::CODE_SPECIAL_PRICE]['arguments']['data']['config']['addbefore']
52  = "%";
53  }
54  $parentNodeChildren = &$parentNode[ProductAttributeInterface::CODE_TIER_PRICE]['children'];
55  if (isset($parentNodeChildren[self::CODE_RECORD]['children'][ProductAttributeInterface::CODE_PRICE])) {
56  $currentNode =
57  &$parentNodeChildren[self::CODE_RECORD]['children'][ProductAttributeInterface::CODE_PRICE];
58  $currentNode['arguments']['data']['config']['label'] = __('Percent Discount');
59  }
60  }
61 
62  return $meta;
63  }
64 
68  public function modifyData(array $data)
69  {
70  return $data;
71  }
72 
79  private function modifyMsrpMeta(array $meta)
80  {
81  $meta = $this->arrayManager->merge(
82  $this->arrayManager->findPath(
83  static::CODE_MSRP,
84  $meta,
85  null,
86  'children'
87  ) . static::META_CONFIG_PATH,
88  $meta,
89  [
90  'imports' => [
91  'disabled' => 'ns = ${ $.ns }, index = ' . static::CODE_PRICE_TYPE . ':checked'
92  ]
93  ]
94  );
95 
96  $meta = $this->arrayManager->merge(
97  $this->arrayManager->findPath(
98  static::CODE_MSRP_DISPLAY_ACTUAL_PRICE_TYPE,
99  $meta,
100  null,
101  'children'
102  ) . static::META_CONFIG_PATH,
103  $meta,
104  [
105  'imports' => [
106  'disabled' => 'ns = ${ $.ns }, index = ' . static::CODE_PRICE_TYPE . ':checked'
107  ]
108  ]
109  );
110 
111  return $meta;
112  }
113 }
__()
Definition: __.php:13