本文整理汇总了PHP中Sylius\Component\Promotion\Model\PromotionSubjectInterface::getChannel方法的典型用法代码示例。如果您正苦于以下问题:PHP PromotionSubjectInterface::getChannel方法的具体用法?PHP PromotionSubjectInterface::getChannel怎么用?PHP PromotionSubjectInterface::getChannel使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Sylius\Component\Promotion\Model\PromotionSubjectInterface
的用法示例。
在下文中一共展示了PromotionSubjectInterface::getChannel方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getPromotions
/**
* {@inheritdoc}
*/
public function getPromotions(PromotionSubjectInterface $subject)
{
if (!$subject instanceof OrderInterface) {
throw new UnexpectedTypeException($subject, OrderInterface::class);
}
$channel = $subject->getChannel();
$promotions = $this->promotionRepository->findActiveByChannel($channel);
return $promotions;
}
示例2: getActivePromotions
/**
* @param PromotionSubjectInterface $subject
*
* @return array
*/
protected function getActivePromotions(PromotionSubjectInterface $subject)
{
if (!$subject instanceof OrderInterface) {
throw new UnexpectedTypeException($subject, OrderInterface::class);
}
if (null === $this->promotions) {
$channel = $subject->getChannel();
$this->promotions = $this->repository->findActiveByChannel($channel);
}
return $this->promotions;
}
示例3: getPromotions
/**
* {@inheritdoc}
*/
public function getPromotions(PromotionSubjectInterface $subject)
{
if (!$subject instanceof OrderInterface) {
throw new UnexpectedTypeException($subject, OrderInterface::class);
}
$channel = $subject->getChannel();
if (null === $channel) {
throw new \InvalidArgumentException('Order has no channel, but it should.');
}
$promotions = $this->promotionRepository->findActiveByChannel($channel);
return $promotions;
}
示例4: execute
/**
* {@inheritdoc}
*/
public function execute(PromotionSubjectInterface $subject, array $configuration, PromotionInterface $promotion)
{
if (!$subject instanceof OrderInterface) {
throw new UnexpectedTypeException($subject, OrderInterface::class);
}
$channelCode = $subject->getChannel()->getCode();
if (!isset($configuration[$channelCode]) || !isset($configuration[$channelCode]['percentage'])) {
return false;
}
$filteredItems = $this->priceRangeFilter->filter($subject->getItems()->toArray(), array_merge(['channel' => $subject->getChannel()], $configuration[$channelCode]));
$filteredItems = $this->taxonFilter->filter($filteredItems, $configuration[$channelCode]);
$filteredItems = $this->productFilter->filter($filteredItems, $configuration[$channelCode]);
if (empty($filteredItems)) {
return false;
}
foreach ($filteredItems as $item) {
$promotionAmount = (int) round($item->getUnitPrice() * $configuration[$channelCode]['percentage']);
$this->setUnitsAdjustments($item, $promotionAmount, $promotion);
}
return true;
}