Ejemplo n.º 1
0
 /**
  * @param \Magento\Quote\Model\Quote\Item\AbstractItem $item
  * @param bool $isFreeShipping
  * @return void
  */
 protected function applyToChildren(\Magento\Quote\Model\Quote\Item\AbstractItem $item, $isFreeShipping)
 {
     if ($item->getHasChildren() && $item->isChildrenCalculated()) {
         foreach ($item->getChildren() as $child) {
             $this->calculator->processFreeShipping($child);
             if ($isFreeShipping) {
                 $child->setFreeShipping($isFreeShipping);
             }
         }
     }
 }
Ejemplo n.º 2
0
    /**
     * Returns applied weee taxes
     *
     * @param \Magento\Quote\Model\Quote\Item\AbstractItem $item
     * @return array
     */
    public function getApplied($item)
    {
        if ($item instanceof \Magento\Quote\Model\Quote\Item\AbstractItem) {
            if ($item->getHasChildren() && $item->isChildrenCalculated()) {
                $result = [];
                foreach ($item->getChildren() as $child) {
                    $childData = $this->getApplied($child);
                    if (is_array($childData)) {
                        $result = array_merge($result, $childData);
                    }
                }
                return $result;
            }
        }

        // if order item data is old enough then weee_tax_applied might not be valid
        $data = $item->getWeeeTaxApplied();
        if (empty($data)) {
            return [];
        }
        return \Zend_Json::decode($item->getWeeeTaxApplied());
    }