8 use Magento\Quote\Api\Data\TotalSegmentExtensionFactory;
17 private $detailsFactory;
22 private $ratesFactory;
27 private $totalSegmentExtensionFactory;
54 \
Magento\Tax\Api\Data\GrandTotalDetailsInterfaceFactory $detailsFactory,
55 \
Magento\Tax\Api\Data\GrandTotalRatesInterfaceFactory $ratesFactory,
56 TotalSegmentExtensionFactory $totalSegmentExtensionFactory,
60 $this->detailsFactory = $detailsFactory;
61 $this->ratesFactory = $ratesFactory;
62 $this->totalSegmentExtensionFactory = $totalSegmentExtensionFactory;
63 $this->taxConfig = $taxConfig;
76 $taxRate = $this->ratesFactory->create([]);
93 \
Magento\Quote\Model\Cart\TotalsConverter $subject,
95 array $addressTotals = []
98 if (!array_key_exists($this->code, $addressTotals)) {
99 return $totalSegments;
102 $taxes = $addressTotals[
'tax']->getData();
103 if (!array_key_exists(
'full_info', $taxes)) {
104 return $totalSegments;
109 $fullInfo = $taxes[
'full_info'];
110 if (is_string($fullInfo)) {
111 $fullInfo = $this->serializer->unserialize($fullInfo);
113 foreach ($fullInfo as
$info) {
114 if ((array_key_exists(
'hidden',
$info) &&
$info[
'hidden'])
115 || (
$info[
'amount'] == 0 && $this->taxConfig->displayCartZeroTax())
120 $taxDetails = $this->detailsFactory->create([]);
121 $taxDetails->setAmount(
$info[
'amount']);
123 $taxDetails->setRates($taxRates);
124 $taxDetails->setGroupId($detailsId);
125 $finalData[] = $taxDetails;
128 $attributes = $totalSegments[$this->code]->getExtensionAttributes();
130 $attributes = $this->totalSegmentExtensionFactory->create();
133 $totalSegments[$this->code]->setExtensionAttributes(
$attributes);
134 return $totalSegments;
afterProcess(\Magento\Quote\Model\Cart\TotalsConverter $subject, array $totalSegments, array $addressTotals=[])
__construct(\Magento\Tax\Api\Data\GrandTotalDetailsInterfaceFactory $detailsFactory, \Magento\Tax\Api\Data\GrandTotalRatesInterfaceFactory $ratesFactory, TotalSegmentExtensionFactory $totalSegmentExtensionFactory, \Magento\Tax\Model\Config $taxConfig, Json $serializer)
foreach( $_productCollection as $_product)() ?>" class $info