本文整理汇总了PHP中Magento\Framework\DataObject::getAllItems方法的典型用法代码示例。如果您正苦于以下问题:PHP DataObject::getAllItems方法的具体用法?PHP DataObject::getAllItems怎么用?PHP DataObject::getAllItems使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Magento\Framework\DataObject
的用法示例。
在下文中一共展示了DataObject::getAllItems方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: _initSubtotal
/**
* @return $this
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
*/
protected function _initSubtotal()
{
$store = $this->getStore();
$parent = $this->getParentBlock();
$subtotal = $parent->getTotal('subtotal');
if (!$subtotal) {
return $this;
}
if ($this->_config->displaySalesSubtotalBoth($store)) {
$subtotal = (double) $this->_source->getSubtotal();
$baseSubtotal = (double) $this->_source->getBaseSubtotal();
$subtotalIncl = (double) $this->_source->getSubtotalInclTax();
$baseSubtotalIncl = (double) $this->_source->getBaseSubtotalInclTax();
if (!$subtotalIncl || !$baseSubtotalIncl) {
// Calculate the subtotal if it is not set
$subtotalIncl = $subtotal + $this->_source->getTaxAmount() - $this->_source->getShippingTaxAmount();
$baseSubtotalIncl = $baseSubtotal + $this->_source->getBaseTaxAmount() - $this->_source->getBaseShippingTaxAmount();
if ($this->_source instanceof Order) {
// Adjust for the discount tax compensation
foreach ($this->_source->getAllItems() as $item) {
$subtotalIncl += $item->getDiscountTaxCompensationAmount();
$baseSubtotalIncl += $item->getBaseDiscountTaxCompensationAmount();
}
}
}
$subtotalIncl = max(0, $subtotalIncl);
$baseSubtotalIncl = max(0, $baseSubtotalIncl);
$totalExcl = new \Magento\Framework\DataObject(['code' => 'subtotal_excl', 'value' => $subtotal, 'base_value' => $baseSubtotal, 'label' => __('Subtotal (Excl.Tax)')]);
$totalIncl = new \Magento\Framework\DataObject(['code' => 'subtotal_incl', 'value' => $subtotalIncl, 'base_value' => $baseSubtotalIncl, 'label' => __('Subtotal (Incl.Tax)')]);
$parent->addTotal($totalExcl, 'subtotal');
$parent->addTotal($totalIncl, 'subtotal_excl');
$parent->removeTotal('subtotal');
} elseif ($this->_config->displaySalesSubtotalInclTax($store)) {
$subtotalIncl = (double) $this->_source->getSubtotalInclTax();
$baseSubtotalIncl = (double) $this->_source->getBaseSubtotalInclTax();
if (!$subtotalIncl) {
$subtotalIncl = $this->_source->getSubtotal() + $this->_source->getTaxAmount() - $this->_source->getShippingTaxAmount();
}
if (!$baseSubtotalIncl) {
$baseSubtotalIncl = $this->_source->getBaseSubtotal() + $this->_source->getBaseTaxAmount() - $this->_source->getBaseShippingTaxAmount();
}
$total = $parent->getTotal('subtotal');
if ($total) {
$total->setValue(max(0, $subtotalIncl));
$total->setBaseValue(max(0, $baseSubtotalIncl));
}
}
return $this;
}
示例2: collectRatesByAddress
/**
* Collect rates by address
*
* @param \Magento\Framework\DataObject $address
* @param null|bool|array $limitCarrier
* @return $this
*/
public function collectRatesByAddress(\Magento\Framework\DataObject $address, $limitCarrier = null)
{
/** @var $request \Magento\Quote\Model\Quote\Address\RateRequest */
$request = $this->_shipmentRequestFactory->create();
$request->setAllItems($address->getAllItems());
$request->setDestCountryId($address->getCountryId());
$request->setDestRegionId($address->getRegionId());
$request->setDestPostcode($address->getPostcode());
$request->setPackageValue($address->getBaseSubtotal());
$request->setPackageValueWithDiscount($address->getBaseSubtotalWithDiscount());
$request->setPackageWeight($address->getWeight());
$request->setFreeMethodWeight($address->getFreeMethodWeight());
$request->setPackageQty($address->getItemQty());
$request->setStoreId($this->_storeManager->getStore()->getId());
$request->setWebsiteId($this->_storeManager->getStore()->getWebsiteId());
$request->setBaseCurrency($this->_storeManager->getStore()->getBaseCurrency());
$request->setPackageCurrency($this->_storeManager->getStore()->getCurrentCurrency());
$request->setLimitCarrier($limitCarrier);
$request->setBaseSubtotalInclTax($address->getBaseSubtotalInclTax());
return $this->collectRates($request);
}
示例3: isMessagesAllowed
/**
* Check if giftmessages is allowed for specified entity.
*
* @param string $type
* @param \Magento\Framework\DataObject $entity
* @param \Magento\Store\Model\Store|int|null $store
* @return bool|string|null
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
*/
public function isMessagesAllowed($type, \Magento\Framework\DataObject $entity, $store = null)
{
if ($type == 'items') {
$items = $entity->getAllItems();
if (!is_array($items) || empty($items)) {
return $this->scopeConfig->getValue(self::XPATH_CONFIG_GIFT_MESSAGE_ALLOW_ITEMS, \Magento\Store\Model\ScopeInterface::SCOPE_STORE, $store);
}
if ($entity instanceof \Magento\Quote\Model\Quote) {
$_type = $entity->getIsMultiShipping() ? 'address_item' : 'item';
} else {
$_type = 'order_item';
}
foreach ($items as $item) {
if ($item->getParentItem()) {
continue;
}
if ($this->isMessagesAllowed($_type, $item, $store)) {
return true;
}
}
} elseif ($type == 'item') {
return $this->_getDependenceFromStoreConfig($entity->getProduct()->getGiftMessageAvailable(), $store);
} elseif ($type == 'order_item') {
return $this->_getDependenceFromStoreConfig($entity->getGiftMessageAvailable(), $store);
} elseif ($type == 'address_item') {
$storeId = is_numeric($store) ? $store : $this->_storeManager->getStore($store)->getId();
if (!$this->isCached('address_item_' . $entity->getProductId())) {
try {
$giftMessageAvailable = $this->productRepository->getById($entity->getProductId(), false, $storeId)->getGiftMessageAvailable();
} catch (\Magento\Framework\Exception\NoSuchEntityException $noEntityException) {
$giftMessageAvailable = null;
}
$this->setCached('address_item_' . $entity->getProductId(), $giftMessageAvailable);
}
return $this->_getDependenceFromStoreConfig($this->getCached('address_item_' . $entity->getProductId()), $store);
} else {
return $this->scopeConfig->getValue(self::XPATH_CONFIG_GIFT_MESSAGE_ALLOW_ORDER, \Magento\Store\Model\ScopeInterface::SCOPE_STORE, $store);
}
return false;
}