<?php declare(strict_types=1);
namespace Shopware\Storefront\Page\Product;
use Shopware\Core\Content\Cms\CmsPageEntity;
use Shopware\Core\Content\Product\ProductDefinition;
use Shopware\Core\Content\Product\SalesChannel\CrossSelling\CrossSellingElementCollection;
use Shopware\Core\Content\Product\SalesChannel\SalesChannelProductEntity;
use Shopware\Core\Content\Property\Aggregate\PropertyGroupOption\PropertyGroupOptionCollection;
use Shopware\Core\Content\Property\PropertyGroupCollection;
use Shopware\Core\Framework\Log\Package;
use Shopware\Storefront\Page\Page;
use Shopware\Storefront\Page\Product\Review\ReviewLoaderResult;
#[Package('storefront')]
class ProductPage extends Page
{
/**
* @var SalesChannelProductEntity
*/
protected $product;
/**
* @var CmsPageEntity
*/
protected $cmsPage;
protected ?string $navigationId;
/**
* @var PropertyGroupCollection
*/
protected $configuratorSettings;
/**
* @var ReviewLoaderResult
*/
protected $reviewLoaderResult;
/**
* @var PropertyGroupOptionCollection
*/
protected $selectedOptions;
/**
* @var CrossSellingElementCollection
*/
protected $crossSellings;
public function getProduct(): SalesChannelProductEntity
{
return $this->product;
}
public function setProduct(SalesChannelProductEntity $product): void
{
$this->product = $product;
}
public function getCmsPage(): ?CmsPageEntity
{
return $this->cmsPage;
}
public function setCmsPage(CmsPageEntity $cmsPage): void
{
$this->cmsPage = $cmsPage;
}
public function getNavigationId(): ?string
{
return $this->navigationId;
}
public function setNavigationId(?string $navigationId): void
{
$this->navigationId = $navigationId;
}
public function getConfiguratorSettings(): PropertyGroupCollection
{
return $this->configuratorSettings;
}
public function setConfiguratorSettings(PropertyGroupCollection $configuratorSettings): void
{
$this->configuratorSettings = $configuratorSettings;
}
public function getReviews(): ReviewLoaderResult
{
return $this->reviewLoaderResult;
}
public function setReviews(ReviewLoaderResult $result): void
{
$this->reviewLoaderResult = $result;
}
public function getSelectedOptions(): PropertyGroupOptionCollection
{
return $this->selectedOptions;
}
public function setSelectedOptions(PropertyGroupOptionCollection $selectedOptions): void
{
$this->selectedOptions = $selectedOptions;
}
public function getCrossSellings(): CrossSellingElementCollection
{
return $this->crossSellings;
}
public function setCrossSellings(CrossSellingElementCollection $crossSellings): void
{
$this->crossSellings = $crossSellings;
}
public function getEntityName(): string
{
return ProductDefinition::ENTITY_NAME;
}
}