Beispiel #1
0
 /**
  * @param array $data
  * @return \Shopware\Bundle\StoreFrontBundle\Struct\Product\PriceRule
  */
 public function hydratePriceRule(array $data)
 {
     $price = new Struct\Product\PriceRule();
     $price->setId((int) $data['__price_id']);
     $price->setFrom((int) $data['__price_from']);
     $price->setPrice((double) $data['__price_price']);
     $price->setPseudoPrice((double) $data['__price_pseudoprice']);
     if (strtolower($data['__price_to']) == 'beliebig') {
         $price->setTo(null);
     } else {
         $price->setTo((int) $data['__price_to']);
     }
     if (isset($data['__price___attribute_id'])) {
         $attribute = $this->attributeHydrator->hydrate($this->extractFields('__attribute_', $data));
         $price->addAttribute('core', $attribute);
     }
     return $price;
 }
 /**
  * Calculates the cheapest price considering the variant min purchase
  * @param Struct\ListProduct $product
  * @param Struct\Product\PriceRule $priceRule
  * @param Struct\ProductContextInterface $context
  * @return Struct\Product\Price
  */
 private function calculateCheapestAvailablePrice(Struct\ListProduct $product, Struct\Product\PriceRule $priceRule, Struct\ProductContextInterface $context)
 {
     $priceRule->setPrice($priceRule->getUnit()->getMinPurchase() * $priceRule->getPrice());
     $priceRule->getUnit()->setPurchaseUnit($priceRule->getUnit()->getMinPurchase() * $priceRule->getUnit()->getPurchaseUnit());
     $priceRule->setPseudoPrice($priceRule->getUnit()->getMinPurchase() * $priceRule->getPseudoPrice());
     $tax = $context->getTaxRule($product->getTax()->getId());
     return $this->calculatePriceStruct($priceRule, $tax, $context);
 }