/** * Generates the item price SOAP object * * @return PlentySoapObject_ItemPriceSet */ protected function getObjectPriceSet() { // $MainDetail = $this->SHOPWARE_Article->getMainDetail(); $Unit = $MainDetail->getUnit(); $Tax = $this->SHOPWARE_Article->getTax(); // $Object_ItemPriceSet = new PlentySoapObject_ItemPriceSet(); $Object_ItemPriceSet->HeightInMM = $MainDetail->getHeight() * 100; // int $Object_ItemPriceSet->LengthInMM = $MainDetail->getLen() * 100; $Object_ItemPriceSet->Lot = $MainDetail->getPurchaseUnit(); // float $Object_ItemPriceSet->PackagingUnit = $MainDetail->getReferenceUnit(); $Object_ItemPriceSet->PurchasePriceNet = null; // float $Object_ItemPriceSet->TypeOfPackage = null; // int $Object_ItemPriceSet->Unit1 = $MainDetail->getPackUnit(); $Object_ItemPriceSet->WeightInGramm = $MainDetail->getWeight() * 1000; $Object_ItemPriceSet->WidthInMM = $MainDetail->getWidth() * 100; // int if ($Unit instanceof \Shopware\Models\Article\Unit && $Unit->getId() > 0) { $Object_ItemPriceSet->Unit = PlentymarketsMappingController::getMeasureUnitByShopwareID($Unit->getId()); // string } $prices = array(); $ItemPrice = Shopware()->Models()->getRepository('Shopware\\Models\\Article\\Price'); /** @var Shopware\Models\Article\Price $ItemPrice */ foreach ($ItemPrice->findBy(array('customerGroupKey' => PlentymarketsConfig::getInstance()->getDefaultCustomerGroupKey(), 'articleDetailsId' => $MainDetail->getId())) as $ItemPrice) { $price = array(); $price['to'] = $ItemPrice->getTo(); $price['price'] = $ItemPrice->getPrice() * ($Tax->getTax() + 100) / 100; $price['rrp'] = $ItemPrice->getPseudoPrice() * ($Tax->getTax() + 100) / 100; $price['pp'] = $MainDetail->getPurchasePrice(); $prices[$ItemPrice->getFrom()] = $price; } // ksort($prices); // $n = 0; foreach ($prices as $from => $p) { // The base price if ($from == 1) { $Object_ItemPriceSet->RRP = $p['rrp']; $Object_ItemPriceSet->Price = $p['price']; $Object_ItemPriceSet->PurchasePriceNet = $p['pp']; } else { $priceIndex = 'Price' . ($n + 5); $Object_ItemPriceSet->{$priceIndex} = $p['price']; $rebateLevel = 'RebateLevelPrice' . ($n + 5); $Object_ItemPriceSet->{$rebateLevel} = $from; } ++$n; } return $Object_ItemPriceSet; }