![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/cartforge.co/vendor/magento/module-sales/Model/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Sales\Model; use Magento\Config\Model\Config\Source\Nooptreq; use Magento\Directory\Model\Currency; use Magento\Directory\Model\RegionFactory; use Magento\Directory\Model\ResourceModel\Region as RegionResource; use Magento\Framework\Api\AttributeValueFactory; use Magento\Framework\Api\SearchCriteriaBuilder; use Magento\Framework\App\Config\ScopeConfigInterface; use Magento\Framework\App\ObjectManager; use Magento\Framework\Exception\LocalizedException; use Magento\Framework\Locale\ResolverInterface; use Magento\Framework\Pricing\PriceCurrencyInterface; use Magento\Sales\Api\Data\OrderInterface; use Magento\Sales\Api\Data\OrderItemInterface; use Magento\Sales\Api\Data\OrderStatusHistoryInterface; use Magento\Sales\Api\OrderItemRepositoryInterface; use Magento\Sales\Model\Order\Payment; use Magento\Sales\Model\Order\ProductOption; use Magento\Sales\Model\ResourceModel\Order\Address\Collection; use Magento\Sales\Model\ResourceModel\Order\Creditmemo\Collection as CreditmemoCollection; use Magento\Sales\Model\ResourceModel\Order\Invoice\Collection as InvoiceCollection; use Magento\Sales\Model\ResourceModel\Order\Item\Collection as ItemCollection; use Magento\Sales\Model\ResourceModel\Order\Payment\Collection as PaymentCollection; use Magento\Sales\Model\ResourceModel\Order\Shipment\Collection as ShipmentCollection; use Magento\Sales\Model\ResourceModel\Order\Shipment\Track\Collection as TrackCollection; use Magento\Sales\Model\ResourceModel\Order\Status\History\Collection as HistoryCollection; use Magento\Store\Model\ScopeInterface; use Magento\Framework\App\Area; use Magento\Sales\Model\Order\StatusLabel; /** * Order model * * Supported events: * sales_order_load_after * sales_order_save_before * sales_order_save_after * sales_order_delete_before * sales_order_delete_after * * @api * @method int getGiftMessageId() * @method Order setGiftMessageId(int $value) * @method bool hasBillingAddressId() * @method Order unsBillingAddressId() * @method bool hasShippingAddressId() * @method Order unsShippingAddressId() * @method int getShippigAddressId() * @method bool hasCustomerNoteNotify() * @method bool hasForcedCanCreditmemo() * @method bool getIsInProcess() * @method \Magento\Customer\Model\Customer|null getCustomer() * @method Order setSendEmail(bool $value) * @SuppressWarnings(PHPMD.ExcessivePublicCount) * @SuppressWarnings(PHPMD.TooManyFields) * @SuppressWarnings(PHPMD.ExcessiveClassComplexity) * @SuppressWarnings(PHPMD.CouplingBetweenObjects) * @since 100.0.2 */ class Order extends AbstractModel implements EntityInterface, OrderInterface { public const ENTITY = 'order'; /** * Order states */ public const STATE_NEW = 'new'; public const STATE_PENDING_PAYMENT = 'pending_payment'; public const STATE_PROCESSING = 'processing'; public const STATE_COMPLETE = 'complete'; public const STATE_CLOSED = 'closed'; public const STATE_CANCELED = 'canceled'; public const STATE_HOLDED = 'holded'; public const STATE_PAYMENT_REVIEW = 'payment_review'; /** * Order statuses */ public const STATUS_FRAUD = 'fraud'; /** * Order flags */ public const ACTION_FLAG_CANCEL = 'cancel'; public const ACTION_FLAG_HOLD = 'hold'; public const ACTION_FLAG_UNHOLD = 'unhold'; public const ACTION_FLAG_EDIT = 'edit'; public const ACTION_FLAG_CREDITMEMO = 'creditmemo'; public const ACTION_FLAG_INVOICE = 'invoice'; public const ACTION_FLAG_REORDER = 'reorder'; public const ACTION_FLAG_SHIP = 'ship'; public const ACTION_FLAG_COMMENT = 'comment'; /** * Report date types */ public const REPORT_DATE_TYPE_CREATED = 'created'; public const REPORT_DATE_TYPE_UPDATED = 'updated'; /** * @var string */ protected $_eventPrefix = 'sales_order'; /** * @var string */ protected $_eventObject = 'order'; /** * @var InvoiceCollection */ protected $_invoices; /** * @var TrackCollection */ protected $_tracks; /** * @var ShipmentCollection */ protected $_shipments; /** * @var CreditmemoCollection */ protected $_creditmemos; /** * @var array */ protected $_relatedObjects = []; /** * @var Currency */ protected $_orderCurrency = null; /** * @var Currency|null */ protected $_baseCurrency = null; /** * Array of action flags for canUnhold, canEdit, etc. * * @var array */ protected $_actionFlag = []; /** * Flag: if after order placing we can send new email to the customer. * * @var bool */ protected $_canSendNewEmailFlag = true; /** * Identifier for history item * * @var string */ protected $entityType = 'order'; /** * @var \Magento\Store\Model\StoreManagerInterface */ protected $_storeManager; /** * @var \Magento\Sales\Model\Order\Config */ protected $_orderConfig; /** * @var \Magento\Catalog\Api\ProductRepositoryInterface * @deprecated 100.1.0 Remove unused dependency. */ protected $productRepository; /** * @var \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory */ protected $productListFactory; /** * @var \Magento\Sales\Model\ResourceModel\Order\Item\CollectionFactory */ protected $_orderItemCollectionFactory; /** * @var \Magento\Catalog\Model\Product\Visibility */ protected $_productVisibility; /** * @var \Magento\Sales\Model\Service\InvoiceService */ protected $invoiceManagement; /** * @var \Magento\Directory\Model\CurrencyFactory */ protected $_currencyFactory; /** * @var \Magento\Eav\Model\Config */ private $_eavConfig; /** * @var \Magento\Sales\Model\Order\Status\HistoryFactory */ protected $_orderHistoryFactory; /** * @var \Magento\Sales\Model\ResourceModel\Order\Address\CollectionFactory */ protected $_addressCollectionFactory; /** * @var \Magento\Sales\Model\ResourceModel\Order\Payment\CollectionFactory */ protected $_paymentCollectionFactory; /** * @var \Magento\Sales\Model\ResourceModel\Order\Status\History\CollectionFactory */ protected $_historyCollectionFactory; /** * @var \Magento\Sales\Model\ResourceModel\Order\Invoice\CollectionFactory */ protected $_invoiceCollectionFactory; /** * @var \Magento\Sales\Model\ResourceModel\Order\Shipment\CollectionFactory */ protected $_shipmentCollectionFactory; /** * @var \Magento\Sales\Model\ResourceModel\Order\Creditmemo\CollectionFactory */ protected $_memoCollectionFactory; /** * @var \Magento\Sales\Model\ResourceModel\Order\Shipment\Track\CollectionFactory */ protected $_trackCollectionFactory; /** * @var \Magento\Sales\Model\ResourceModel\Order\CollectionFactory */ protected $salesOrderCollectionFactory; /** * @var PriceCurrencyInterface */ protected $priceCurrency; /** * @var \Magento\Framework\Stdlib\DateTime\TimezoneInterface */ protected $timezone; /** * @var ResolverInterface */ private $localeResolver; /** * @var ProductOption */ private $productOption; /** * @var OrderItemRepositoryInterface */ private $itemRepository; /** * @var SearchCriteriaBuilder */ private $searchCriteriaBuilder; /** * @var ScopeConfigInterface; */ private $scopeConfig; /** * @var RegionFactory */ private $regionFactory; /** * @var array */ private $regionItems; /** * @var RegionResource */ private $regionResource; /** * @var StatusLabel */ private $statusLabel; /** * @param \Magento\Framework\Model\Context $context * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory * @param AttributeValueFactory $customAttributeFactory * @param \Magento\Framework\Stdlib\DateTime\TimezoneInterface $timezone * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param Order\Config $orderConfig * @param \Magento\Catalog\Api\ProductRepositoryInterface $productRepository * @param \Magento\Sales\Model\ResourceModel\Order\Item\CollectionFactory $orderItemCollectionFactory * @param \Magento\Catalog\Model\Product\Visibility $productVisibility * @param \Magento\Sales\Api\InvoiceManagementInterface $invoiceManagement * @param \Magento\Directory\Model\CurrencyFactory $currencyFactory * @param \Magento\Eav\Model\Config $eavConfig * @param Order\Status\HistoryFactory $orderHistoryFactory * @param \Magento\Sales\Model\ResourceModel\Order\Address\CollectionFactory $addressCollectionFactory * @param \Magento\Sales\Model\ResourceModel\Order\Payment\CollectionFactory $paymentCollectionFactory * @param \Magento\Sales\Model\ResourceModel\Order\Status\History\CollectionFactory $historyCollectionFactory * @param \Magento\Sales\Model\ResourceModel\Order\Invoice\CollectionFactory $invoiceCollectionFactory * @param \Magento\Sales\Model\ResourceModel\Order\Shipment\CollectionFactory $shipmentCollectionFactory * @param \Magento\Sales\Model\ResourceModel\Order\Creditmemo\CollectionFactory $memoCollectionFactory * @param \Magento\Sales\Model\ResourceModel\Order\Shipment\Track\CollectionFactory $trackCollectionFactory * @param ResourceModel\Order\CollectionFactory $salesOrderCollectionFactory * @param PriceCurrencyInterface $priceCurrency * @param \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productListFactory * @param \Magento\Framework\Model\ResourceModel\AbstractResource|null $resource * @param \Magento\Framework\Data\Collection\AbstractDb|null $resourceCollection * @param array $data * @param ResolverInterface|null $localeResolver * @param ProductOption|null $productOption * @param OrderItemRepositoryInterface|null $itemRepository * @param SearchCriteriaBuilder|null $searchCriteriaBuilder * @param ScopeConfigInterface|null $scopeConfig * @param RegionFactory|null $regionFactory * @param RegionResource|null $regionResource * @param StatusLabel|null $statusLabel * @SuppressWarnings(PHPMD.ExcessiveParameterList) * @SuppressWarnings(PHPMD.NPathComplexity) */ public function __construct( \Magento\Framework\Model\Context $context, \Magento\Framework\Registry $registry, \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory, AttributeValueFactory $customAttributeFactory, \Magento\Framework\Stdlib\DateTime\TimezoneInterface $timezone, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Sales\Model\Order\Config $orderConfig, \Magento\Catalog\Api\ProductRepositoryInterface $productRepository, \Magento\Sales\Model\ResourceModel\Order\Item\CollectionFactory $orderItemCollectionFactory, \Magento\Catalog\Model\Product\Visibility $productVisibility, \Magento\Sales\Api\InvoiceManagementInterface $invoiceManagement, \Magento\Directory\Model\CurrencyFactory $currencyFactory, \Magento\Eav\Model\Config $eavConfig, \Magento\Sales\Model\Order\Status\HistoryFactory $orderHistoryFactory, \Magento\Sales\Model\ResourceModel\Order\Address\CollectionFactory $addressCollectionFactory, \Magento\Sales\Model\ResourceModel\Order\Payment\CollectionFactory $paymentCollectionFactory, \Magento\Sales\Model\ResourceModel\Order\Status\History\CollectionFactory $historyCollectionFactory, \Magento\Sales\Model\ResourceModel\Order\Invoice\CollectionFactory $invoiceCollectionFactory, \Magento\Sales\Model\ResourceModel\Order\Shipment\CollectionFactory $shipmentCollectionFactory, \Magento\Sales\Model\ResourceModel\Order\Creditmemo\CollectionFactory $memoCollectionFactory, \Magento\Sales\Model\ResourceModel\Order\Shipment\Track\CollectionFactory $trackCollectionFactory, \Magento\Sales\Model\ResourceModel\Order\CollectionFactory $salesOrderCollectionFactory, PriceCurrencyInterface $priceCurrency, \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productListFactory, \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [], ResolverInterface $localeResolver = null, ProductOption $productOption = null, OrderItemRepositoryInterface $itemRepository = null, SearchCriteriaBuilder $searchCriteriaBuilder = null, ScopeConfigInterface $scopeConfig = null, RegionFactory $regionFactory = null, RegionResource $regionResource = null, StatusLabel $statusLabel = null ) { $this->_storeManager = $storeManager; $this->_orderConfig = $orderConfig; $this->productRepository = $productRepository; $this->productListFactory = $productListFactory; $this->timezone = $timezone; $this->_orderItemCollectionFactory = $orderItemCollectionFactory; $this->_productVisibility = $productVisibility; $this->invoiceManagement = $invoiceManagement; $this->_currencyFactory = $currencyFactory; $this->_eavConfig = $eavConfig; $this->_orderHistoryFactory = $orderHistoryFactory; $this->_addressCollectionFactory = $addressCollectionFactory; $this->_paymentCollectionFactory = $paymentCollectionFactory; $this->_historyCollectionFactory = $historyCollectionFactory; $this->_invoiceCollectionFactory = $invoiceCollectionFactory; $this->_shipmentCollectionFactory = $shipmentCollectionFactory; $this->_memoCollectionFactory = $memoCollectionFactory; $this->_trackCollectionFactory = $trackCollectionFactory; $this->salesOrderCollectionFactory = $salesOrderCollectionFactory; $this->priceCurrency = $priceCurrency; $this->localeResolver = $localeResolver ?: ObjectManager::getInstance()->get(ResolverInterface::class); $this->productOption = $productOption ?: ObjectManager::getInstance()->get(ProductOption::class); $this->itemRepository = $itemRepository ?: ObjectManager::getInstance() ->get(OrderItemRepositoryInterface::class); $this->searchCriteriaBuilder = $searchCriteriaBuilder ?: ObjectManager::getInstance() ->get(SearchCriteriaBuilder::class); $this->scopeConfig = $scopeConfig ?: ObjectManager::getInstance()->get(ScopeConfigInterface::class); $this->regionFactory = $regionFactory ?: ObjectManager::getInstance()->get(RegionFactory::class); $this->regionResource = $regionResource ?: ObjectManager::getInstance()->get(RegionResource::class); $this->regionItems = []; $this->statusLabel = $statusLabel ?: ObjectManager::getInstance()->get(StatusLabel::class); parent::__construct( $context, $registry, $extensionFactory, $customAttributeFactory, $resource, $resourceCollection, $data ); } /** * Initialize resource model * * @return void */ protected function _construct() { $this->_init(\Magento\Sales\Model\ResourceModel\Order::class); } /** * Clear order object data * * @param string $key data key * @return $this */ public function unsetData($key = null) { parent::unsetData($key); if ($key === null) { $this->setItems(null); } return $this; } /** * Retrieve can flag for action (edit, unhold, etc..) * * @param string $action * @return boolean|null */ public function getActionFlag($action) { if (isset($this->_actionFlag[$action])) { return $this->_actionFlag[$action]; } return null; } /** * Set can flag value for action (edit, unhold, etc...) * * @param string $action * @param boolean $flag * @return $this */ public function setActionFlag($action, $flag) { $this->_actionFlag[$action] = (bool)$flag; return $this; } /** * Return flag for order if it can sends new email to customer. * * @return bool * @SuppressWarnings(PHPMD.BooleanGetMethodName) */ public function getCanSendNewEmailFlag() { return $this->_canSendNewEmailFlag; } /** * Set flag for order if it can sends new email to customer. * * @param bool $flag * @return $this */ public function setCanSendNewEmailFlag($flag) { $this->_canSendNewEmailFlag = (bool)$flag; return $this; } /** * Load order by system increment identifier * * @param string $incrementId * @return Order */ public function loadByIncrementId($incrementId) { return $this->loadByAttribute('increment_id', $incrementId); } /** * Load order by system increment and store identifiers * * @param string $incrementId * @param string $storeId * @return Order */ public function loadByIncrementIdAndStoreId($incrementId, $storeId) { $orderCollection = $this->getSalesOrderCollection( [ 'increment_id' => $incrementId, 'store_id' => $storeId ] ); return $orderCollection->getFirstItem(); } /** * Get sales Order collection model populated with data * * @param array $filters * @return \Magento\Sales\Model\ResourceModel\Order\Collection */ protected function getSalesOrderCollection(array $filters = []) { /** @var \Magento\Sales\Model\ResourceModel\Order\Collection $salesOrderCollection */ $salesOrderCollection = $this->salesOrderCollectionFactory->create(); foreach ($filters as $field => $condition) { $salesOrderCollection->addFieldToFilter($field, $condition); } return $salesOrderCollection->load(); } /** * Load order by custom attribute value. Attribute value should be unique * * @param string $attribute * @param string $value * @return $this */ public function loadByAttribute($attribute, $value) { $this->load($value, $attribute); return $this; } /** * Retrieve store model instance * * @return \Magento\Store\Model\Store */ public function getStore() { $storeId = $this->getStoreId(); if ($storeId) { return $this->_storeManager->getStore($storeId); } return $this->_storeManager->getStore(); } /** * Retrieve order cancel availability * * @return bool * @SuppressWarnings(PHPMD.CyclomaticComplexity) * @SuppressWarnings(PHPMD.NPathComplexity) */ public function canCancel() { if (!$this->_canVoidOrder()) { return false; } if ($this->canUnhold()) { return false; } if (!$this->canReviewPayment() && $this->canFetchPaymentReviewUpdate()) { return false; } $allInvoiced = true; foreach ($this->getAllItems() as $item) { if ($item->getQtyToInvoice()) { $allInvoiced = false; break; } } if ($allInvoiced) { return false; } $state = $this->getState(); if ($this->isCanceled() || $state === self::STATE_COMPLETE || $state === self::STATE_CLOSED) { return false; } if ($this->getActionFlag(self::ACTION_FLAG_CANCEL) === false) { return false; } return true; } /** * Getter whether the payment can be voided * * @return bool */ public function canVoidPayment() { return $this->_canVoidOrder() ? $this->getPayment()->canVoid() : false; } /** * Check whether order could be canceled by states and flags * * @return bool */ protected function _canVoidOrder() { return !($this->isCanceled() || $this->canUnhold() || $this->isPaymentReview()); } /** * Retrieve order invoice availability * * @return bool * @SuppressWarnings(PHPMD.CyclomaticComplexity) */ public function canInvoice() { if ($this->canUnhold() || $this->isPaymentReview()) { return false; } $state = $this->getState(); if ($this->isCanceled() || $state === self::STATE_COMPLETE || $state === self::STATE_CLOSED) { return false; } if ($this->getActionFlag(self::ACTION_FLAG_INVOICE) === false) { return false; } foreach ($this->getAllItems() as $item) { if ($item->getQtyToInvoice() > 0 && !$item->getLockedDoInvoice()) { return true; } } return false; } /** * Retrieve order credit memo (refund) availability * * @return bool */ public function canCreditmemo() { if ($this->hasForcedCanCreditmemo()) { return $this->getForcedCanCreditmemo(); } if ($this->canUnhold() || $this->isPaymentReview() || $this->isCanceled() || $this->getState() === self::STATE_CLOSED) { return false; } /** * We can have problem with float in php (on some server $a=762.73;$b=762.73; $a-$b!=0) * for this we have additional diapason for 0 * TotalPaid - contains amount, that were not rounded. */ $totalRefunded = $this->priceCurrency->round($this->getTotalPaid()) - $this->getTotalRefunded(); if (abs((float) $this->getGrandTotal()) < .0001) { return $this->canCreditmemoForZeroTotal($totalRefunded); } return $this->canCreditmemoForZeroTotalRefunded($totalRefunded); } /** * Retrieve credit memo for zero total refunded availability. * * @param float $totalRefunded * @return bool */ private function canCreditmemoForZeroTotalRefunded($totalRefunded) { $isRefundZero = abs((float) $totalRefunded) < .0001; // Case when Adjustment Fee (adjustment_negative) has been used for first creditmemo $hasAdjustmentFee = abs($totalRefunded - $this->getAdjustmentNegative()) < .0001; $hasActionFlag = $this->getActionFlag(self::ACTION_FLAG_EDIT) === false; if ($isRefundZero || $hasAdjustmentFee || $hasActionFlag) { return false; } return true; } /** * Retrieve credit memo for zero total availability. * * @param float $totalRefunded * @return bool */ private function canCreditmemoForZeroTotal($totalRefunded) { $totalPaid = $this->getTotalPaid(); //check if total paid is less than grandtotal $checkAmtTotalPaid = $totalPaid <= $this->getGrandTotal(); //case when amount is due for invoice $hasDueAmount = $this->canInvoice() && ($checkAmtTotalPaid); //case when paid amount is refunded and order has creditmemo created $creditmemos = ($this->getCreditmemosCollection() === false) ? true : ($this->_memoCollectionFactory->create()->setOrderFilter($this)->getTotalCount() > 0); $paidAmtIsRefunded = $this->getTotalRefunded() == $totalPaid && $creditmemos; if (($hasDueAmount || $paidAmtIsRefunded) || (!$checkAmtTotalPaid && abs($totalRefunded - $this->getAdjustmentNegative()) < .0001)) { return false; } return true; } /** * Retrieve order hold availability * * @return bool */ public function canHold() { $notHoldableStates = [ self::STATE_CANCELED, self::STATE_PAYMENT_REVIEW, self::STATE_COMPLETE, self::STATE_CLOSED, self::STATE_HOLDED ]; if (in_array($this->getState(), $notHoldableStates)) { return false; } if ($this->getActionFlag(self::ACTION_FLAG_HOLD) === false) { return false; } return true; } /** * Retrieve order unhold availability * * @return bool */ public function canUnhold() { if ($this->getActionFlag(self::ACTION_FLAG_UNHOLD) === false || $this->isPaymentReview()) { return false; } return $this->getState() === self::STATE_HOLDED; } /** * Check if comment can be added to order history * * @return bool */ public function canComment() { if ($this->getActionFlag(self::ACTION_FLAG_COMMENT) === false) { return false; } return true; } /** * Retrieve order shipment availability * * @return bool * @SuppressWarnings(PHPMD.CyclomaticComplexity) */ public function canShip() { if ($this->canUnhold() || $this->isPaymentReview()) { return false; } if ($this->getIsVirtual() || $this->isCanceled()) { return false; } if ($this->getActionFlag(self::ACTION_FLAG_SHIP) === false) { return false; } foreach ($this->getAllItems() as $item) { if ($item->getQtyToShip() > 0 && !$item->getIsVirtual() && !$item->getLockedDoShip() && !$this->isRefunded($item)) { return true; } } return false; } /** * Check if item is refunded. * * @param OrderItemInterface $item * @return bool */ private function isRefunded(OrderItemInterface $item) { return $item->getQtyRefunded() == $item->getQtyOrdered(); } /** * Retrieve order edit availability * * @return bool */ public function canEdit() { if ($this->canUnhold()) { return false; } $state = $this->getState(); if ($this->isCanceled() || $this->isPaymentReview() || $state === self::STATE_COMPLETE || $state === self::STATE_CLOSED ) { return false; } if ($this->hasInvoices()) { return false; } if (!$this->getPayment()->getMethodInstance()->canEdit()) { return false; } if ($this->getActionFlag(self::ACTION_FLAG_EDIT) === false) { return false; } return true; } /** * Retrieve order reorder availability * * @return bool */ public function canReorder() { return $this->_canReorder(); } /** * Check the ability to reorder ignoring the availability in stock or status of the ordered products * * @return bool */ public function canReorderIgnoreSalable() { return $this->_canReorder(true); } /** * Retrieve order reorder availability * * @param bool $ignoreSalable * @return bool * @SuppressWarnings(PHPMD.CyclomaticComplexity) */ protected function _canReorder($ignoreSalable = false) { if ($this->canUnhold() || $this->isPaymentReview()) { return false; } if ($this->getActionFlag(self::ACTION_FLAG_REORDER) === false) { return false; } $products = []; $itemsCollection = $this->getItemsCollection(); foreach ($itemsCollection as $item) { $products[] = $item->getProductId(); } if (!empty($products)) { $productsCollection = $this->productListFactory->create() ->setStoreId($this->getStoreId()) ->addIdFilter($products) ->addAttributeToSelect('status') ->load(); foreach ($itemsCollection as $item) { $product = $productsCollection->getItemById($item->getProductId()); if (!$product) { return false; } if (!$ignoreSalable && !$product->isSalable()) { return false; } } } return true; } /** * Check whether the payment is in payment review state * In this state order cannot be normally processed. Possible actions can be: * - accept or deny payment * - fetch transaction information * * @return bool */ public function isPaymentReview() { return $this->getState() === self::STATE_PAYMENT_REVIEW; } /** * Check whether payment can be accepted or denied * * @return bool */ public function canReviewPayment() { return $this->isPaymentReview() && $this->getPayment()->canReviewPayment(); } /** * Check whether there can be a transaction update fetched for payment in review state * * @return bool */ public function canFetchPaymentReviewUpdate() { return $this->isPaymentReview() && $this->getPayment()->canFetchTransactionInfo(); } /** * Retrieve order configuration model * * @return \Magento\Sales\Model\Order\Config */ public function getConfig() { return $this->_orderConfig; } /** * Place order payments * * @return $this */ protected function _placePayment() { $this->getPayment()->place(); return $this; } /** * @inheritdoc */ public function getPayment() { $payment = $this->getData(OrderInterface::PAYMENT); if ($payment === null) { $paymentItems = $this->getPaymentsCollection()->getItems(); if (count($paymentItems)) { $payment = reset($paymentItems); $this->setData( OrderInterface::PAYMENT, $payment ); } } if ($payment) { $payment->setOrder($this); } return $payment; } /** * Sets the billing address, if any, for the order. * * @param \Magento\Sales\Api\Data\OrderAddressInterface $address * @return $this */ public function setBillingAddress(\Magento\Sales\Api\Data\OrderAddressInterface $address = null) { $old = $this->getBillingAddress(); if (!empty($old) && !empty($address)) { $address->setId($old->getId()); } if (!empty($address)) { $address->setEmail($this->getCustomerEmail()); $this->addAddress($address->setAddressType('billing')); } return $this; } /** * Declare order shipping address * * @param \Magento\Sales\Api\Data\OrderAddressInterface $address * @return $this */ public function setShippingAddress(\Magento\Sales\Api\Data\OrderAddressInterface $address = null) { $old = $this->getShippingAddress(); if (!empty($old) && !empty($address)) { $address->setId($old->getId()); } if (!empty($address)) { $address->setEmail($this->getCustomerEmail()); $this->addAddress($address->setAddressType('shipping')); } return $this; } /** * Retrieve order billing address * * @return \Magento\Sales\Api\Data\OrderAddressInterface|null */ public function getBillingAddress() { foreach ($this->getAddresses() as $address) { if ($address->getAddressType() == 'billing' && !$address->isDeleted()) { return $address; } } return null; } /** * Retrieve order shipping address * * @return \Magento\Sales\Model\Order\Address|null */ public function getShippingAddress() { foreach ($this->getAddresses() as $address) { if ($address->getAddressType() == 'shipping' && !$address->isDeleted()) { return $address; } } return null; } /** * @inheritdoc * * @param string $state * @return $this */ public function setState($state) { return $this->setData(self::STATE, $state); } /** * Retrieve frontend label of order status * * @return string * @since 102.0.1 */ public function getFrontendStatusLabel() { return $this->statusLabel->getStatusFrontendLabel( $this->getStatus(), Area::AREA_FRONTEND, $this->getStoreId() ); } /** * Retrieve label of order status * * @return string * @throws LocalizedException */ public function getStatusLabel() { return $this->statusLabel->getStatusLabel($this->getStatus()); } /** * Add status change information to history * * @param string $status * @param string $comment * @param bool $isCustomerNotified * @return $this */ public function addStatusToHistory($status, $comment = '', $isCustomerNotified = false) { $this->addStatusHistoryComment($comment, $status)->setIsCustomerNotified($isCustomerNotified); return $this; } /** * Add a comment to order. * * Different or default status may be specified. * * @param string $comment * @param bool|string $status * @return OrderStatusHistoryInterface * @deprecated 101.0.5 * @see addCommentToStatusHistory */ public function addStatusHistoryComment($comment, $status = false) { return $this->addCommentToStatusHistory($comment, $status, false); } /** * Add a comment to order status history. * * Different or default status may be specified. * * @param string $comment * @param bool|string $status * @param bool $isVisibleOnFront * @return OrderStatusHistoryInterface * @since 101.0.5 */ public function addCommentToStatusHistory($comment, $status = false, $isVisibleOnFront = false) { if (false === $status) { $status = $this->getStatus(); } elseif (true === $status) { $status = $this->getConfig()->getStateDefaultStatus($this->getState()); } else { $this->setStatus($status); } $history = $this->_orderHistoryFactory->create()->setStatus( $status )->setComment( $comment )->setEntityName( $this->entityType )->setIsVisibleOnFront( $isVisibleOnFront ); $this->addStatusHistory($history); return $history; } /** * Overrides entity id, which will be saved to comments history status * * @param string $entityName * @return $this */ public function setHistoryEntityName($entityName) { $this->entityType = $entityName; return $this; } /** * Return order entity type * * @return string */ public function getEntityType() { return $this->entityType; } /** * Place order * * @return $this */ public function place() { $this->_eventManager->dispatch('sales_order_place_before', ['order' => $this]); $this->_placePayment(); $this->_eventManager->dispatch('sales_order_place_after', ['order' => $this]); return $this; } /** * Hold order * * @return $this * @throws LocalizedException */ public function hold() { if (!$this->canHold()) { throw new LocalizedException(__('A hold action is not available.')); } $this->setHoldBeforeState($this->getState()); $this->setHoldBeforeStatus($this->getStatus()); $this->setState(self::STATE_HOLDED) ->setStatus($this->getConfig()->getStateDefaultStatus(self::STATE_HOLDED)); return $this; } /** * Attempt to unhold the order * * @return $this * @throws LocalizedException */ public function unhold() { if (!$this->canUnhold()) { throw new LocalizedException(__('You cannot remove the hold.')); } $this->setState($this->getHoldBeforeState()) ->setStatus($this->getHoldBeforeStatus()); $this->setHoldBeforeState(null); $this->setHoldBeforeStatus(null); return $this; } /** * Cancel order * * @return $this */ public function cancel() { if ($this->canCancel()) { $this->getPayment()->cancel(); $this->registerCancellation(); $this->_eventManager->dispatch('order_cancel_after', ['order' => $this]); } return $this; } /** * Is order status in DB "Fraud detected" * * @return bool */ public function isFraudDetected() { return $this->getOrigData(self::STATE) == self::STATE_PAYMENT_REVIEW && $this->getOrigData(self::STATUS) == self::STATUS_FRAUD; } /** * Prepare order totals to cancellation * * @param string $comment * @param bool $graceful * @return $this * @throws LocalizedException * @SuppressWarnings(PHPMD.CyclomaticComplexity) */ public function registerCancellation($comment = '', $graceful = true) { if ($this->canCancel() || $this->isPaymentReview() || $this->isFraudDetected()) { $state = self::STATE_CANCELED; foreach ($this->getAllItems() as $item) { if ($state != self::STATE_PROCESSING && $item->getQtyToRefund()) { if ($item->isProcessingAvailable()) { $state = self::STATE_PROCESSING; } else { $state = self::STATE_COMPLETE; } } $item->cancel(); } $this->setSubtotalCanceled($this->getSubtotal() - $this->getSubtotalInvoiced()); $this->setBaseSubtotalCanceled($this->getBaseSubtotal() - $this->getBaseSubtotalInvoiced()); $this->setTaxCanceled($this->getTaxAmount() - $this->getTaxInvoiced()); $this->setBaseTaxCanceled($this->getBaseTaxAmount() - $this->getBaseTaxInvoiced()); $this->setShippingCanceled($this->getShippingAmount() - $this->getShippingInvoiced()); $this->setBaseShippingCanceled($this->getBaseShippingAmount() - $this->getBaseShippingInvoiced()); $this->setDiscountCanceled(abs((float) $this->getDiscountAmount()) - $this->getDiscountInvoiced()); $this->setBaseDiscountCanceled( abs((float) $this->getBaseDiscountAmount()) - $this->getBaseDiscountInvoiced() ); $this->setTotalCanceled($this->getGrandTotal() - $this->getTotalPaid()); $this->setBaseTotalCanceled($this->getBaseGrandTotal() - $this->getBaseTotalPaid()); $this->setState($state) ->setStatus($this->getConfig()->getStateDefaultStatus($state)); if (!empty($comment)) { $this->addStatusHistoryComment($comment, false); } } elseif (!$graceful) { throw new LocalizedException(__('We cannot cancel this order.')); } return $this; } /** * Retrieve tracking numbers * * @return array */ public function getTrackingNumbers() { if ($this->getData('tracking_numbers')) { return explode(',', $this->getData('tracking_numbers')); } return []; } /** * Retrieve shipping method * * @param bool $asObject return carrier code and shipping method data as object * @return string|null|\Magento\Framework\DataObject */ public function getShippingMethod($asObject = false) { $shippingMethod = $this->getData('shipping_method'); if (!$asObject || !$shippingMethod) { return $shippingMethod; } else { list($carrierCode, $method) = explode('_', $shippingMethod, 2); return new \Magento\Framework\DataObject(['carrier_code' => $carrierCode, 'method' => $method]); } } /*********************** ADDRESSES ***************************/ /** * Get addresses collection * * @return Collection */ public function getAddressesCollection() { $collection = $this->_addressCollectionFactory->create()->setOrderFilter($this); if ($this->getId()) { foreach ($collection as $address) { if (isset($this->regionItems[$address->getCountryId()][$address->getRegion()])) { if ($this->regionItems[$address->getCountryId()][$address->getRegion()]) { $address->setRegion($this->regionItems[$address->getCountryId()][$address->getRegion()]); } } else { $region = $this->regionFactory->create(); $this->regionResource->loadByName($region, $address->getRegion(), $address->getCountryId()); $this->regionItems[$address->getCountryId()][$address->getRegion()] = $region->getName(); if ($region->getName()) { $address->setRegion($region->getName()); } } $address->setOrder($this); } } return $collection; } /** * Get address by id * * @param mixed $addressId * @return false */ public function getAddressById($addressId) { foreach ($this->getAddressesCollection() as $address) { if ($address->getId() == $addressId) { return $address; } } return false; } /** * Add address * * @param \Magento\Sales\Model\Order\Address $address * @return $this */ public function addAddress(\Magento\Sales\Model\Order\Address $address) { $address->setOrder($this)->setParentId($this->getId()); if (!$address->getId()) { $this->setAddresses(array_merge($this->getAddresses(), [$address])); $this->setDataChanges(true); } return $this; } /** * Get items collection * * @param array $filterByTypes * @param bool $nonChildrenOnly * @return ItemCollection */ public function getItemsCollection($filterByTypes = [], $nonChildrenOnly = false) { $collection = $this->_orderItemCollectionFactory->create()->setOrderFilter($this); if ($filterByTypes) { $collection->filterByTypes($filterByTypes); } if ($nonChildrenOnly) { $collection->filterByParent(); } if ($this->getId()) { foreach ($collection as $item) { $item->setOrder($this); $this->productOption->add($item); } } return $collection; } /** * Get random items collection without related children * * @param int $limit * @return ItemCollection */ public function getParentItemsRandomCollection($limit = 1) { return $this->_getItemsRandomCollection($limit, true); } /** * Get random items collection with or without related children * * @param int $limit * @param bool $nonChildrenOnly * @return ItemCollection */ protected function _getItemsRandomCollection($limit, $nonChildrenOnly = false) { $collection = $this->_orderItemCollectionFactory->create() ->setOrderFilter($this) ->setRandomOrder() ->setPageSize($limit); if ($nonChildrenOnly) { $collection->filterByParent(); } $products = []; foreach ($collection as $item) { $products[] = $item->getProductId(); } $productsCollection = $this->productListFactory->create()->addIdFilter( $products )->setVisibility( $this->_productVisibility->getVisibleInSiteIds() )->addPriceData()->load(); foreach ($collection as $item) { $product = $productsCollection->getItemById($item->getProductId()); if ($product) { $item->setProduct($product); } } return $collection; } /** * Get all items * * @return \Magento\Sales\Model\Order\Item[] */ public function getAllItems() { $items = []; foreach ($this->getItems() as $item) { if (!$item->isDeleted()) { $items[] = $item; } } return $items; } /** * Get all visible items * * @return array */ public function getAllVisibleItems() { $items = []; foreach ($this->getItems() as $item) { if (!$item->isDeleted() && !$item->getParentItemId()) { $items[] = $item; } } return $items; } /** * Gets order item by given ID. * * @param int $itemId * @return \Magento\Framework\DataObject|null */ public function getItemById($itemId) { $items = $this->getItems(); if (isset($items[$itemId])) { return $items[$itemId]; } return null; } /** * Get item by quote item id * * @param mixed $quoteItemId * @return \Magento\Framework\DataObject|null */ public function getItemByQuoteItemId($quoteItemId) { foreach ($this->getItems() as $item) { if ($item->getQuoteItemId() == $quoteItemId) { return $item; } } return null; } /** * Add item * * @param \Magento\Sales\Model\Order\Item $item * @return $this */ public function addItem(\Magento\Sales\Model\Order\Item $item) { $item->setOrder($this); if (!$item->getId()) { $this->setItems(array_merge($this->getItems(), [$item])); } return $this; } /*********************** PAYMENTS ***************************/ /** * Get payments collection * * @return PaymentCollection */ public function getPaymentsCollection() { $collection = $this->_paymentCollectionFactory->create()->setOrderFilter($this); if ($this->getId()) { foreach ($collection as $payment) { $payment->setOrder($this); } } return $collection; } /** * Get all payments * * @return array */ public function getAllPayments() { $payments = []; foreach ($this->getPaymentsCollection() as $payment) { if (!$payment->isDeleted()) { $payments[] = $payment; } } return $payments; } /** * Get payment by id * * @param mixed $paymentId * @return Payment|false */ public function getPaymentById($paymentId) { foreach ($this->getPaymentsCollection() as $payment) { if ($payment->getId() == $paymentId) { return $payment; } } return false; } /** * @inheritdoc */ public function setPayment(\Magento\Sales\Api\Data\OrderPaymentInterface $payment = null) { $this->setData(OrderInterface::PAYMENT, $payment); if ($payment !== null) { $payment->setOrder($this)->setParentId($this->getId()); if (!$payment->getId()) { $this->setDataChanges(true); } } return $payment; } /*********************** STATUSES ***************************/ /** * Return collection of order status history items. * * @return HistoryCollection */ public function getStatusHistoryCollection() { $collection = $this->_historyCollectionFactory->create()->setOrderFilter($this) ->setOrder('created_at', 'desc') ->setOrder('entity_id', 'desc'); if ($this->getId()) { foreach ($collection as $status) { $status->setOrder($this); } } return $collection; } /** * Return array of order status history items without deleted. * * @return array */ public function getAllStatusHistory() { $history = []; foreach ($this->getStatusHistoryCollection() as $status) { if (!$status->isDeleted()) { $history[] = $status; } } return $history; } /** * Return collection of visible on frontend order status history items. * * @return array */ public function getVisibleStatusHistory() { $history = []; foreach ($this->getStatusHistoryCollection() as $status) { if (!$status->isDeleted() && $status->getComment() && $status->getIsVisibleOnFront()) { $history[] = $status; } } return $history; } /** * Get status history by id * * @param mixed $statusId * @return string|false */ public function getStatusHistoryById($statusId) { foreach ($this->getStatusHistoryCollection() as $status) { if ($status->getId() == $statusId) { return $status; } } return false; } /** * @inheritdoc * * Adds the object to the status history collection, which is automatically saved when the order is saved. * See the entity_id attribute backend model. * Or the history record can be saved standalone after this. * * @param \Magento\Sales\Model\Order\Status\History $history * @return $this */ public function addStatusHistory(\Magento\Sales\Model\Order\Status\History $history) { $history->setOrder($this); $this->setStatus($history->getStatus()); if (!$history->getId()) { $this->setStatusHistories(array_merge($this->getStatusHistories(), [$history])); $this->setDataChanges(true); } return $this; } /** * Get real order id * * @return string */ public function getRealOrderId() { $id = $this->getData('real_order_id'); if ($id === null) { $id = $this->getIncrementId(); } return $id; } /** * Get currency model instance. Will be used currency with which order placed * * @return Currency */ public function getOrderCurrency() { if ($this->_orderCurrency === null) { $this->_orderCurrency = $this->_currencyFactory->create(); $this->_orderCurrency->load($this->getOrderCurrencyCode()); } return $this->_orderCurrency; } /** * Get formatted price value including order currency rate to order website currency * * @param float $price * @param bool $addBrackets * @return string */ public function formatPrice($price, $addBrackets = false) { return $this->formatPricePrecision($price, 2, $addBrackets); } /** * Format price precision * * @param float $price * @param int $precision * @param bool $addBrackets * @return string */ public function formatPricePrecision($price, $precision, $addBrackets = false) { return $this->getOrderCurrency()->formatPrecision($price, $precision, [], true, $addBrackets); } /** * Retrieve text formatted price value including order rate * * @param float $price * @return string */ public function formatPriceTxt($price) { return $this->getOrderCurrency()->formatTxt($price); } /** * Retrieve order website currency for working with base prices * * @return Currency */ public function getBaseCurrency() { if ($this->_baseCurrency === null) { $this->_baseCurrency = $this->_currencyFactory->create()->load($this->getBaseCurrencyCode()); } return $this->_baseCurrency; } /** * Format base price * * @param float $price * @return string */ public function formatBasePrice($price) { return $this->formatBasePricePrecision($price, 2); } /** * Format Base Price Precision * * @param float $price * @param int $precision * @return string */ public function formatBasePricePrecision($price, $precision) { return $this->getBaseCurrency()->formatPrecision($price, $precision); } /** * Is currency different * * @return bool */ public function isCurrencyDifferent() { return $this->getOrderCurrencyCode() != $this->getBaseCurrencyCode(); } /** * Retrieve order total due value * * @return float|null */ public function getTotalDue() { $total = $this->getGrandTotal() - $this->getTotalPaid(); $total = $this->priceCurrency->round($total); return max($total, 0); } /** * Retrieve order total due value * * @return float|null */ public function getBaseTotalDue() { $total = $this->getBaseGrandTotal() - $this->getBaseTotalPaid(); $total = $this->priceCurrency->round($total); return max($total, 0); } /** * Get data * * @param string $key * @param null|string|int $index * @return mixed */ public function getData($key = '', $index = null) { if ($key == 'total_due') { return $this->getTotalDue(); } if ($key == 'base_total_due') { return $this->getBaseTotalDue(); } return parent::getData($key, $index); } /** * Retrieve order invoices collection * * @return InvoiceCollection */ public function getInvoiceCollection() { if ($this->_invoices === null) { $this->_invoices = $this->_invoiceCollectionFactory->create()->setOrderFilter($this); if ($this->getId()) { foreach ($this->_invoices as $invoice) { $invoice->setOrder($this); } } } return $this->_invoices; } /** * @inheritdoc * * @param InvoiceCollection $invoices * @return $this */ public function setInvoiceCollection(InvoiceCollection $invoices) { $this->_invoices = $invoices; return $this; } /** * Retrieve order shipments collection * * @return ShipmentCollection|false */ public function getShipmentsCollection() { if (empty($this->_shipments)) { if ($this->getId()) { $this->_shipments = $this->_shipmentCollectionFactory->create()->setOrderFilter($this)->load(); } else { return false; } } return $this->_shipments; } /** * Retrieve order creditmemos collection * * @return CreditmemoCollection|false */ public function getCreditmemosCollection() { if (empty($this->_creditmemos)) { if ($this->getId()) { $this->_creditmemos = $this->_memoCollectionFactory->create()->setOrderFilter($this)->load(); } else { return false; } } return $this->_creditmemos; } /** * Retrieve order tracking numbers collection * * @return TrackCollection */ public function getTracksCollection() { if (empty($this->_tracks)) { $this->_tracks = $this->_trackCollectionFactory->create()->setOrderFilter($this); if ($this->getId()) { $this->_tracks->load(); } } return $this->_tracks; } /** * Check order invoices availability * * @return bool */ public function hasInvoices() { return (bool)$this->getInvoiceCollection()->count(); } /** * Check order shipments availability * * @return bool */ public function hasShipments() { return (bool)$this->getShipmentsCollection()->count(); } /** * Check order creditmemos availability * * @return bool */ public function hasCreditmemos() { return (bool)$this->getCreditmemosCollection()->count(); } /** * Retrieve array of related objects * * Used for order saving * * @return array */ public function getRelatedObjects() { return $this->_relatedObjects; } /** * Get customer name * * @return string * @SuppressWarnings(PHPMD.CyclomaticComplexity) */ public function getCustomerName() { if (null === $this->getCustomerFirstname()) { return (string)__('Guest'); } $customerName = ''; $prefix = $this->getCustomerPrefix(); if ($prefix !== null && $this->isVisibleCustomerPrefix() && strlen($prefix)) { $customerName .= $prefix . ' '; } $customerName .= $this->getCustomerFirstname(); $middlename = $this->getCustomerMiddlename(); if ($middlename !== null && $this->isVisibleCustomerMiddlename() && strlen($middlename)) { $customerName .= ' ' . $middlename; } $customerName .= ' ' . $this->getCustomerLastname(); $suffix = $this->getCustomerSuffix(); if ($suffix !== null && $this->isVisibleCustomerSuffix() && strlen($suffix)) { $customerName .= ' ' . $suffix; } return $customerName; } /** * Add New object to related array * * @param \Magento\Framework\Model\AbstractModel $object * @return $this */ public function addRelatedObject(\Magento\Framework\Model\AbstractModel $object) { $this->_relatedObjects[] = $object; return $this; } /** * Get formatted order created date in store timezone * * @param int $format date format type (\IntlDateFormatter::SHORT|\IntlDateFormatter::MEDIUM * |\IntlDateFormatter::LONG|\IntlDateFormatter::FULL) * @return string */ public function getCreatedAtFormatted($format) { return $this->timezone->formatDateTime( new \DateTime($this->getCreatedAt() ?? 'now'), $format, $format, $this->localeResolver->getDefaultLocale(), $this->timezone->getConfigTimezone('store', $this->getStore()) ); } /** * Get email customer note * * @return string */ public function getEmailCustomerNote() { if ($this->getCustomerNoteNotify()) { return $this->getCustomerNote(); } return ''; } /** * Get store group name * * @return string */ public function getStoreGroupName() { $storeId = $this->getStoreId(); if ($storeId === null) { return $this->getStoreName(); } return $this->getStore()->getGroup()->getName(); } /** * Reset all data in object so after another load it will be complete new object. * * @return $this */ public function reset() { $this->unsetData(); $this->_actionFlag = []; $this->setAddresses(null); $this->setItems(null); $this->setPayment(null); $this->setStatusHistories(null); $this->_invoices = null; $this->_tracks = null; $this->_shipments = null; $this->_creditmemos = null; $this->_relatedObjects = []; $this->_orderCurrency = null; $this->_baseCurrency = null; return $this; } /** * Get order is not virtual * * @return bool * @SuppressWarnings(PHPMD.BooleanGetMethodName) */ public function getIsNotVirtual() { return !$this->getIsVirtual(); } /** * Create new invoice with maximum qty for invoice for each item * * @param array $qtys * @return \Magento\Sales\Model\Order\Invoice */ public function prepareInvoice($qtys = []) { return $this->invoiceManagement->prepareInvoice($this, $qtys); } /** * Check whether order is canceled * * @return bool */ public function isCanceled() { return $this->getState() === self::STATE_CANCELED; } /** * Return increment id * * @codeCoverageIgnore * * @return string */ public function getIncrementId() { return $this->getData('increment_id'); } /** * Get Items * * @return \Magento\Sales\Api\Data\OrderItemInterface[] */ public function getItems() { if ($this->getData(OrderInterface::ITEMS) == null) { $this->searchCriteriaBuilder->addFilter(OrderItemInterface::ORDER_ID, $this->getId()); $searchCriteria = $this->searchCriteriaBuilder->create(); $this->setData( OrderInterface::ITEMS, $this->itemRepository->getList($searchCriteria)->getItems() ); } return $this->getData(OrderInterface::ITEMS); } /** * @inheritdoc * @codeCoverageIgnore */ public function setItems($items) { return $this->setData(OrderInterface::ITEMS, $items); } /** * Get addresses * * @return \Magento\Sales\Api\Data\OrderAddressInterface[] */ public function getAddresses() { if ($this->getData('addresses') == null) { $this->setData( 'addresses', $this->getAddressesCollection()->getItems() ); } return $this->getData('addresses'); } /** * Get status History * * @return \Magento\Sales\Api\Data\OrderStatusHistoryInterface[]|null */ public function getStatusHistories() { if ($this->getData(OrderInterface::STATUS_HISTORIES) == null) { $this->setData( OrderInterface::STATUS_HISTORIES, $this->getStatusHistoryCollection()->getItems() ); } return $this->getData(OrderInterface::STATUS_HISTORIES); } /** * @inheritdoc * * @return \Magento\Sales\Api\Data\OrderExtensionInterface|null */ public function getExtensionAttributes() { return $this->_getExtensionAttributes(); } /** * @inheritdoc * * @param \Magento\Sales\Api\Data\OrderExtensionInterface $extensionAttributes * @return $this */ public function setExtensionAttributes(\Magento\Sales\Api\Data\OrderExtensionInterface $extensionAttributes) { return $this->_setExtensionAttributes($extensionAttributes); } //@codeCoverageIgnoreStart /** * Return adjustment_negative * * @return float|null */ public function getAdjustmentNegative() { return $this->getData(OrderInterface::ADJUSTMENT_NEGATIVE); } /** * Return adjustment_positive * * @return float|null */ public function getAdjustmentPositive() { return $this->getData(OrderInterface::ADJUSTMENT_POSITIVE); } /** * Return applied_rule_ids * * Rules are comma separated if there are more than one. * * @return string|null */ public function getAppliedRuleIds() { return $this->getData(OrderInterface::APPLIED_RULE_IDS); } /** * Return base_adjustment_negative * * @return float|null */ public function getBaseAdjustmentNegative() { return $this->getData(OrderInterface::BASE_ADJUSTMENT_NEGATIVE); } /** * Return base_adjustment_positive * * @return float|null */ public function getBaseAdjustmentPositive() { return $this->getData(OrderInterface::BASE_ADJUSTMENT_POSITIVE); } /** * Return base_currency_code * * @return string|null */ public function getBaseCurrencyCode() { return $this->getData(OrderInterface::BASE_CURRENCY_CODE); } /** * Return base_discount_amount * * @return float|null */ public function getBaseDiscountAmount() { return $this->getData(OrderInterface::BASE_DISCOUNT_AMOUNT); } /** * Return base_discount_canceled * * @return float|null */ public function getBaseDiscountCanceled() { return $this->getData(OrderInterface::BASE_DISCOUNT_CANCELED); } /** * Return base_discount_invoiced * * @return float|null */ public function getBaseDiscountInvoiced() { return $this->getData(OrderInterface::BASE_DISCOUNT_INVOICED); } /** * Return base_discount_refunded * * @return float|null */ public function getBaseDiscountRefunded() { return $this->getData(OrderInterface::BASE_DISCOUNT_REFUNDED); } /** * Return base_grand_total * * @return float */ public function getBaseGrandTotal() { return $this->getData(OrderInterface::BASE_GRAND_TOTAL); } /** * Return base_discount_tax_compensation_amount * * @return float|null */ public function getBaseDiscountTaxCompensationAmount() { return $this->getData(OrderInterface::BASE_DISCOUNT_TAX_COMPENSATION_AMOUNT); } /** * Return base_discount_tax_compensation_invoiced * * @return float|null */ public function getBaseDiscountTaxCompensationInvoiced() { return $this->getData(OrderInterface::BASE_DISCOUNT_TAX_COMPENSATION_INVOICED); } /** * Return base_discount_tax_compensation_refunded * * @return float|null */ public function getBaseDiscountTaxCompensationRefunded() { return $this->getData(OrderInterface::BASE_DISCOUNT_TAX_COMPENSATION_REFUNDED); } /** * Return base_shipping_amount * * @return float|null */ public function getBaseShippingAmount() { return $this->getData(OrderInterface::BASE_SHIPPING_AMOUNT); } /** * Return base_shipping_canceled * * @return float|null */ public function getBaseShippingCanceled() { return $this->getData(OrderInterface::BASE_SHIPPING_CANCELED); } /** * Return base_shipping_discount_amount * * @return float|null */ public function getBaseShippingDiscountAmount() { return $this->getData(OrderInterface::BASE_SHIPPING_DISCOUNT_AMOUNT); } /** * Return base_shipping_discount_tax_compensation_amnt * * @return float|null */ public function getBaseShippingDiscountTaxCompensationAmnt() { return $this->getData(OrderInterface::BASE_SHIPPING_DISCOUNT_TAX_COMPENSATION_AMNT); } /** * Return base_shipping_incl_tax * * @return float|null */ public function getBaseShippingInclTax() { return $this->getData(OrderInterface::BASE_SHIPPING_INCL_TAX); } /** * Return base_shipping_invoiced * * @return float|null */ public function getBaseShippingInvoiced() { return $this->getData(OrderInterface::BASE_SHIPPING_INVOICED); } /** * Return base_shipping_refunded * * @return float|null */ public function getBaseShippingRefunded() { return $this->getData(OrderInterface::BASE_SHIPPING_REFUNDED); } /** * Return base_shipping_tax_amount * * @return float|null */ public function getBaseShippingTaxAmount() { return $this->getData(OrderInterface::BASE_SHIPPING_TAX_AMOUNT); } /** * Return base_shipping_tax_refunded * * @return float|null */ public function getBaseShippingTaxRefunded() { return $this->getData(OrderInterface::BASE_SHIPPING_TAX_REFUNDED); } /** * Return base_subtotal * * @return float|null */ public function getBaseSubtotal() { return $this->getData(OrderInterface::BASE_SUBTOTAL); } /** * Return base_subtotal_canceled * * @return float|null */ public function getBaseSubtotalCanceled() { return $this->getData(OrderInterface::BASE_SUBTOTAL_CANCELED); } /** * Return base_subtotal_incl_tax * * @return float|null */ public function getBaseSubtotalInclTax() { return $this->getData(OrderInterface::BASE_SUBTOTAL_INCL_TAX); } /** * Return base_subtotal_invoiced * * @return float|null */ public function getBaseSubtotalInvoiced() { return $this->getData(OrderInterface::BASE_SUBTOTAL_INVOICED); } /** * Return base_subtotal_refunded * * @return float|null */ public function getBaseSubtotalRefunded() { return $this->getData(OrderInterface::BASE_SUBTOTAL_REFUNDED); } /** * Return base_tax_amount * * @return float|null */ public function getBaseTaxAmount() { return $this->getData(OrderInterface::BASE_TAX_AMOUNT); } /** * Return base_tax_canceled * * @return float|null */ public function getBaseTaxCanceled() { return $this->getData(OrderInterface::BASE_TAX_CANCELED); } /** * Return base_tax_invoiced * * @return float|null */ public function getBaseTaxInvoiced() { return $this->getData(OrderInterface::BASE_TAX_INVOICED); } /** * Return base_tax_refunded * * @return float|null */ public function getBaseTaxRefunded() { return $this->getData(OrderInterface::BASE_TAX_REFUNDED); } /** * Return base_total_canceled * * @return float|null */ public function getBaseTotalCanceled() { return $this->getData(OrderInterface::BASE_TOTAL_CANCELED); } /** * Return base_total_invoiced * * @return float|null */ public function getBaseTotalInvoiced() { return $this->getData(OrderInterface::BASE_TOTAL_INVOICED); } /** * Return base_total_invoiced_cost * * @return float|null */ public function getBaseTotalInvoicedCost() { return $this->getData(OrderInterface::BASE_TOTAL_INVOICED_COST); } /** * Return base_total_offline_refunded * * @return float|null */ public function getBaseTotalOfflineRefunded() { return $this->getData(OrderInterface::BASE_TOTAL_OFFLINE_REFUNDED); } /** * Return base_total_online_refunded * * @return float|null */ public function getBaseTotalOnlineRefunded() { return $this->getData(OrderInterface::BASE_TOTAL_ONLINE_REFUNDED); } /** * Return base_total_paid * * @return float|null */ public function getBaseTotalPaid() { return $this->getData(OrderInterface::BASE_TOTAL_PAID); } /** * Return base_total_qty_ordered * * @return float|null */ public function getBaseTotalQtyOrdered() { return $this->getData(OrderInterface::BASE_TOTAL_QTY_ORDERED); } /** * Return base_total_refunded * * @return float|null */ public function getBaseTotalRefunded() { return $this->getData(OrderInterface::BASE_TOTAL_REFUNDED); } /** * Return base_to_global_rate * * @return float|null */ public function getBaseToGlobalRate() { return $this->getData(OrderInterface::BASE_TO_GLOBAL_RATE); } /** * Return base_to_order_rate * * @return float|null */ public function getBaseToOrderRate() { return $this->getData(OrderInterface::BASE_TO_ORDER_RATE); } /** * Return billing_address_id * * @return int|null */ public function getBillingAddressId() { return $this->getData(OrderInterface::BILLING_ADDRESS_ID); } /** * Return can_ship_partially * * @return int|null */ public function getCanShipPartially() { return $this->getData(OrderInterface::CAN_SHIP_PARTIALLY); } /** * Return can_ship_partially_item * * @return int|null */ public function getCanShipPartiallyItem() { return $this->getData(OrderInterface::CAN_SHIP_PARTIALLY_ITEM); } /** * Return coupon_code * * @return string|null */ public function getCouponCode() { return $this->getData(OrderInterface::COUPON_CODE); } /** * Return created_at * * @return string|null */ public function getCreatedAt() { return $this->getData(OrderInterface::CREATED_AT); } /** * @inheritdoc */ public function setCreatedAt($createdAt) { return $this->setData(OrderInterface::CREATED_AT, $createdAt); } /** * Return customer_dob * * @return string|null */ public function getCustomerDob() { return $this->getData(OrderInterface::CUSTOMER_DOB); } /** * Return customer_email * * @return string */ public function getCustomerEmail() { return $this->getData(OrderInterface::CUSTOMER_EMAIL); } /** * Return customer_firstname * * @return string|null */ public function getCustomerFirstname() { return $this->getData(OrderInterface::CUSTOMER_FIRSTNAME); } /** * Return customer_gender * * @return int|null */ public function getCustomerGender() { return $this->getData(OrderInterface::CUSTOMER_GENDER); } /** * Return customer_group_id * * @return int|null */ public function getCustomerGroupId() { return $this->getData(OrderInterface::CUSTOMER_GROUP_ID); } /** * Return customer_id * * @return int|null */ public function getCustomerId() { return $this->getData(OrderInterface::CUSTOMER_ID); } /** * Return customer_is_guest * * @return int|null */ public function getCustomerIsGuest() { return $this->getData(OrderInterface::CUSTOMER_IS_GUEST); } /** * Return customer_lastname * * @return string|null */ public function getCustomerLastname() { return $this->getData(OrderInterface::CUSTOMER_LASTNAME); } /** * Return customer_middlename * * @return string|null */ public function getCustomerMiddlename() { return $this->getData(OrderInterface::CUSTOMER_MIDDLENAME); } /** * Return customer_note * * @return string|null */ public function getCustomerNote() { return $this->getData(OrderInterface::CUSTOMER_NOTE); } /** * Return customer_note_notify * * @return int|null */ public function getCustomerNoteNotify() { return $this->getData(OrderInterface::CUSTOMER_NOTE_NOTIFY); } /** * Return customer_prefix * * @return string|null */ public function getCustomerPrefix() { return $this->getData(OrderInterface::CUSTOMER_PREFIX); } /** * Return customer_suffix * * @return string|null */ public function getCustomerSuffix() { return $this->getData(OrderInterface::CUSTOMER_SUFFIX); } /** * Return customer_taxvat * * @return string|null */ public function getCustomerTaxvat() { return $this->getData(OrderInterface::CUSTOMER_TAXVAT); } /** * Return discount_amount * * @return float|null */ public function getDiscountAmount() { return $this->getData(OrderInterface::DISCOUNT_AMOUNT); } /** * Return discount_canceled * * @return float|null */ public function getDiscountCanceled() { return $this->getData(OrderInterface::DISCOUNT_CANCELED); } /** * Return discount_description * * @return string|null */ public function getDiscountDescription() { return $this->getData(OrderInterface::DISCOUNT_DESCRIPTION); } /** * Return discount_invoiced * * @return float|null */ public function getDiscountInvoiced() { return $this->getData(OrderInterface::DISCOUNT_INVOICED); } /** * Return discount_refunded * * @return float|null */ public function getDiscountRefunded() { return $this->getData(OrderInterface::DISCOUNT_REFUNDED); } /** * Return edit_increment * * @return int|null */ public function getEditIncrement() { return $this->getData(OrderInterface::EDIT_INCREMENT); } /** * Return email_sent * * @return int|null */ public function getEmailSent() { return $this->getData(OrderInterface::EMAIL_SENT); } /** * Return ext_customer_id * * @return string|null */ public function getExtCustomerId() { return $this->getData(OrderInterface::EXT_CUSTOMER_ID); } /** * Return ext_order_id * * @return string|null */ public function getExtOrderId() { return $this->getData(OrderInterface::EXT_ORDER_ID); } /** * Return forced_shipment_with_invoice * * @return int|null */ public function getForcedShipmentWithInvoice() { return $this->getData(OrderInterface::FORCED_SHIPMENT_WITH_INVOICE); } /** * Return global_currency_code * * @return string|null */ public function getGlobalCurrencyCode() { return $this->getData(OrderInterface::GLOBAL_CURRENCY_CODE); } /** * Return grand_total * * @return float */ public function getGrandTotal() { return $this->getData(OrderInterface::GRAND_TOTAL); } /** * Return discount_tax_compensation_amount * * @return float|null */ public function getDiscountTaxCompensationAmount() { return $this->getData(OrderInterface::DISCOUNT_TAX_COMPENSATION_AMOUNT); } /** * Return discount_tax_compensation_invoiced * * @return float|null */ public function getDiscountTaxCompensationInvoiced() { return $this->getData(OrderInterface::DISCOUNT_TAX_COMPENSATION_INVOICED); } /** * Return discount_tax_compensation_refunded * * @return float|null */ public function getDiscountTaxCompensationRefunded() { return $this->getData(OrderInterface::DISCOUNT_TAX_COMPENSATION_REFUNDED); } /** * Returns hold_before_state * * @return string|null */ public function getHoldBeforeState() { return $this->getData(OrderInterface::HOLD_BEFORE_STATE); } /** * Return hold_before_status * * @return string|null */ public function getHoldBeforeStatus() { return $this->getData(OrderInterface::HOLD_BEFORE_STATUS); } /** * Return is_virtual * * @return int|null */ public function getIsVirtual() { return $this->getData(OrderInterface::IS_VIRTUAL); } /** * Return order_currency_code * * @return string|null */ public function getOrderCurrencyCode() { return $this->getData(OrderInterface::ORDER_CURRENCY_CODE); } /** * Return original_increment_id * * @return string|null */ public function getOriginalIncrementId() { return $this->getData(OrderInterface::ORIGINAL_INCREMENT_ID); } /** * Return payment_authorization_amount * * @return float|null */ public function getPaymentAuthorizationAmount() { return $this->getData(OrderInterface::PAYMENT_AUTHORIZATION_AMOUNT); } /** * Return payment_auth_expiration * * @return int|null */ public function getPaymentAuthExpiration() { return $this->getData(OrderInterface::PAYMENT_AUTH_EXPIRATION); } /** * Return protect_code * * @return string|null */ public function getProtectCode() { return $this->getData(OrderInterface::PROTECT_CODE); } /** * Return quote_address_id * * @return int|null */ public function getQuoteAddressId() { return $this->getData(OrderInterface::QUOTE_ADDRESS_ID); } /** * Return quote_id * * @return int|null */ public function getQuoteId() { return $this->getData(OrderInterface::QUOTE_ID); } /** * Return relation_child_id * * @return string|null */ public function getRelationChildId() { return $this->getData(OrderInterface::RELATION_CHILD_ID); } /** * Return relation_child_real_id * * @return string|null */ public function getRelationChildRealId() { return $this->getData(OrderInterface::RELATION_CHILD_REAL_ID); } /** * Return relation_parent_id * * @return string|null */ public function getRelationParentId() { return $this->getData(OrderInterface::RELATION_PARENT_ID); } /** * Return relation_parent_real_id * * @return string|null */ public function getRelationParentRealId() { return $this->getData(OrderInterface::RELATION_PARENT_REAL_ID); } /** * Return remote_ip * * @return string|null */ public function getRemoteIp() { return $this->getData(OrderInterface::REMOTE_IP); } /** * Return shipping_amount * * @return float|null */ public function getShippingAmount() { return $this->getData(OrderInterface::SHIPPING_AMOUNT); } /** * Return shipping_canceled * * @return float|null */ public function getShippingCanceled() { return $this->getData(OrderInterface::SHIPPING_CANCELED); } /** * Return shipping_description * * @return string|null */ public function getShippingDescription() { return $this->getData(OrderInterface::SHIPPING_DESCRIPTION); } /** * Return shipping_discount_amount * * @return float|null */ public function getShippingDiscountAmount() { return $this->getData(OrderInterface::SHIPPING_DISCOUNT_AMOUNT); } /** * Return shipping_discount_tax_compensation_amount * * @return float|null */ public function getShippingDiscountTaxCompensationAmount() { return $this->getData(OrderInterface::SHIPPING_DISCOUNT_TAX_COMPENSATION_AMOUNT); } /** * Return shipping_incl_tax * * @return float|null */ public function getShippingInclTax() { return $this->getData(OrderInterface::SHIPPING_INCL_TAX); } /** * Return shipping_invoiced * * @return float|null */ public function getShippingInvoiced() { return $this->getData(OrderInterface::SHIPPING_INVOICED); } /** * Return shipping_refunded * * @return float|null */ public function getShippingRefunded() { return $this->getData(OrderInterface::SHIPPING_REFUNDED); } /** * Return shipping_tax_amount * * @return float|null */ public function getShippingTaxAmount() { return $this->getData(OrderInterface::SHIPPING_TAX_AMOUNT); } /** * Return shipping_tax_refunded * * @return float|null */ public function getShippingTaxRefunded() { return $this->getData(OrderInterface::SHIPPING_TAX_REFUNDED); } /** * Return state * * @return string|null */ public function getState() { return $this->getData(OrderInterface::STATE); } /** * Return status * * @return string|null */ public function getStatus() { return $this->getData(OrderInterface::STATUS); } /** * Return store_currency_code * * @return string|null */ public function getStoreCurrencyCode() { return $this->getData(OrderInterface::STORE_CURRENCY_CODE); } /** * Return store_id * * @return int|null */ public function getStoreId() { return $this->getData(OrderInterface::STORE_ID); } /** * Return store_name * * @return string|null */ public function getStoreName() { return $this->getData(OrderInterface::STORE_NAME); } /** * Return store_to_base_rate * * @return float|null */ public function getStoreToBaseRate() { return $this->getData(OrderInterface::STORE_TO_BASE_RATE); } /** * Return store_to_order_rate * * @return float|null */ public function getStoreToOrderRate() { return $this->getData(OrderInterface::STORE_TO_ORDER_RATE); } /** * Return subtotal * * @return float|null */ public function getSubtotal() { return $this->getData(OrderInterface::SUBTOTAL); } /** * Return subtotal_canceled * * @return float|null */ public function getSubtotalCanceled() { return $this->getData(OrderInterface::SUBTOTAL_CANCELED); } /** * Return subtotal_incl_tax * * @return float|null */ public function getSubtotalInclTax() { return $this->getData(OrderInterface::SUBTOTAL_INCL_TAX); } /** * Return subtotal_invoiced * * @return float|null */ public function getSubtotalInvoiced() { return $this->getData(OrderInterface::SUBTOTAL_INVOICED); } /** * Return subtotal_refunded * * @return float|null */ public function getSubtotalRefunded() { return $this->getData(OrderInterface::SUBTOTAL_REFUNDED); } /** * Return tax_amount * * @return float|null */ public function getTaxAmount() { return $this->getData(OrderInterface::TAX_AMOUNT); } /** * Return tax_canceled * * @return float|null */ public function getTaxCanceled() { return $this->getData(OrderInterface::TAX_CANCELED); } /** * Return tax_invoiced * * @return float|null */ public function getTaxInvoiced() { return $this->getData(OrderInterface::TAX_INVOICED); } /** * Return tax_refunded * * @return float|null */ public function getTaxRefunded() { return $this->getData(OrderInterface::TAX_REFUNDED); } /** * Return total_canceled * * @return float|null */ public function getTotalCanceled() { return $this->getData(OrderInterface::TOTAL_CANCELED); } /** * Return total_invoiced * * @return float|null */ public function getTotalInvoiced() { return $this->getData(OrderInterface::TOTAL_INVOICED); } /** * Return total_item_count * * @return int|null */ public function getTotalItemCount() { return $this->getData(OrderInterface::TOTAL_ITEM_COUNT); } /** * Return total_offline_refunded * * @return float|null */ public function getTotalOfflineRefunded() { return $this->getData(OrderInterface::TOTAL_OFFLINE_REFUNDED); } /** * Return total_online_refunded * * @return float|null */ public function getTotalOnlineRefunded() { return $this->getData(OrderInterface::TOTAL_ONLINE_REFUNDED); } /** * Return total_paid * * @return float|null */ public function getTotalPaid() { return $this->getData(OrderInterface::TOTAL_PAID); } /** * Return total_qty_ordered * * @return float|null */ public function getTotalQtyOrdered() { return $this->getData(OrderInterface::TOTAL_QTY_ORDERED); } /** * Return total_refunded * * @return float|null */ public function getTotalRefunded() { return $this->getData(OrderInterface::TOTAL_REFUNDED); } /** * Return updated_at * * @return string|null */ public function getUpdatedAt() { return $this->getData(OrderInterface::UPDATED_AT); } /** * Return weight * * @return float|null */ public function getWeight() { return $this->getData(OrderInterface::WEIGHT); } /** * Return x_forwarded_for * * @return string|null */ public function getXForwardedFor() { return $this->getData(OrderInterface::X_FORWARDED_FOR); } /** * @inheritdoc */ public function setStatusHistories(array $statusHistories = null) { return $this->setData(OrderInterface::STATUS_HISTORIES, $statusHistories); } /** * @inheritdoc */ public function setStatus($status) { return $this->setData(OrderInterface::STATUS, $status); } /** * @inheritdoc */ public function setCouponCode($code) { return $this->setData(OrderInterface::COUPON_CODE, $code); } /** * @inheritdoc */ public function setProtectCode($code) { return $this->setData(OrderInterface::PROTECT_CODE, $code); } /** * @inheritdoc */ public function setShippingDescription($description) { return $this->setData(OrderInterface::SHIPPING_DESCRIPTION, $description); } /** * @inheritdoc */ public function setIsVirtual($isVirtual) { return $this->setData(OrderInterface::IS_VIRTUAL, $isVirtual); } /** * @inheritdoc */ public function setStoreId($id) { return $this->setData(OrderInterface::STORE_ID, $id); } /** * @inheritdoc */ public function setCustomerId($id) { return $this->setData(OrderInterface::CUSTOMER_ID, $id); } /** * @inheritdoc */ public function setBaseDiscountAmount($amount) { return $this->setData(OrderInterface::BASE_DISCOUNT_AMOUNT, $amount); } /** * @inheritdoc */ public function setBaseDiscountCanceled($baseDiscountCanceled) { return $this->setData(OrderInterface::BASE_DISCOUNT_CANCELED, $baseDiscountCanceled); } /** * @inheritdoc */ public function setBaseDiscountInvoiced($baseDiscountInvoiced) { return $this->setData(OrderInterface::BASE_DISCOUNT_INVOICED, $baseDiscountInvoiced); } /** * @inheritdoc */ public function setBaseDiscountRefunded($baseDiscountRefunded) { return $this->setData(OrderInterface::BASE_DISCOUNT_REFUNDED, $baseDiscountRefunded); } /** * @inheritdoc */ public function setBaseGrandTotal($amount) { return $this->setData(OrderInterface::BASE_GRAND_TOTAL, $amount); } /** * @inheritdoc */ public function setBaseShippingAmount($amount) { return $this->setData(OrderInterface::BASE_SHIPPING_AMOUNT, $amount); } /** * @inheritdoc */ public function setBaseShippingCanceled($baseShippingCanceled) { return $this->setData(OrderInterface::BASE_SHIPPING_CANCELED, $baseShippingCanceled); } /** * @inheritdoc */ public function setBaseShippingInvoiced($baseShippingInvoiced) { return $this->setData(OrderInterface::BASE_SHIPPING_INVOICED, $baseShippingInvoiced); } /** * @inheritdoc */ public function setBaseShippingRefunded($baseShippingRefunded) { return $this->setData(OrderInterface::BASE_SHIPPING_REFUNDED, $baseShippingRefunded); } /** * @inheritdoc */ public function setBaseShippingTaxAmount($amount) { return $this->setData(OrderInterface::BASE_SHIPPING_TAX_AMOUNT, $amount); } /** * @inheritdoc */ public function setBaseShippingTaxRefunded($baseShippingTaxRefunded) { return $this->setData(OrderInterface::BASE_SHIPPING_TAX_REFUNDED, $baseShippingTaxRefunded); } /** * @inheritdoc */ public function setBaseSubtotal($amount) { return $this->setData(OrderInterface::BASE_SUBTOTAL, $amount); } /** * @inheritdoc */ public function setBaseSubtotalCanceled($baseSubtotalCanceled) { return $this->setData(OrderInterface::BASE_SUBTOTAL_CANCELED, $baseSubtotalCanceled); } /** * @inheritdoc */ public function setBaseSubtotalInvoiced($baseSubtotalInvoiced) { return $this->setData(OrderInterface::BASE_SUBTOTAL_INVOICED, $baseSubtotalInvoiced); } /** * @inheritdoc */ public function setBaseSubtotalRefunded($baseSubtotalRefunded) { return $this->setData(OrderInterface::BASE_SUBTOTAL_REFUNDED, $baseSubtotalRefunded); } /** * @inheritdoc */ public function setBaseTaxAmount($amount) { return $this->setData(OrderInterface::BASE_TAX_AMOUNT, $amount); } /** * @inheritdoc */ public function setBaseTaxCanceled($baseTaxCanceled) { return $this->setData(OrderInterface::BASE_TAX_CANCELED, $baseTaxCanceled); } /** * @inheritdoc */ public function setBaseTaxInvoiced($baseTaxInvoiced) { return $this->setData(OrderInterface::BASE_TAX_INVOICED, $baseTaxInvoiced); } /** * @inheritdoc */ public function setBaseTaxRefunded($baseTaxRefunded) { return $this->setData(OrderInterface::BASE_TAX_REFUNDED, $baseTaxRefunded); } /** * @inheritdoc */ public function setBaseToGlobalRate($rate) { return $this->setData(OrderInterface::BASE_TO_GLOBAL_RATE, $rate); } /** * @inheritdoc */ public function setBaseToOrderRate($rate) { return $this->setData(OrderInterface::BASE_TO_ORDER_RATE, $rate); } /** * @inheritdoc */ public function setBaseTotalCanceled($baseTotalCanceled) { return $this->setData(OrderInterface::BASE_TOTAL_CANCELED, $baseTotalCanceled); } /** * @inheritdoc */ public function setBaseTotalInvoiced($baseTotalInvoiced) { return $this->setData(OrderInterface::BASE_TOTAL_INVOICED, $baseTotalInvoiced); } /** * @inheritdoc */ public function setBaseTotalInvoicedCost($baseTotalInvoicedCost) { return $this->setData(OrderInterface::BASE_TOTAL_INVOICED_COST, $baseTotalInvoicedCost); } /** * @inheritdoc */ public function setBaseTotalOfflineRefunded($baseTotalOfflineRefunded) { return $this->setData(OrderInterface::BASE_TOTAL_OFFLINE_REFUNDED, $baseTotalOfflineRefunded); } /** * @inheritdoc */ public function setBaseTotalOnlineRefunded($baseTotalOnlineRefunded) { return $this->setData(OrderInterface::BASE_TOTAL_ONLINE_REFUNDED, $baseTotalOnlineRefunded); } /** * @inheritdoc */ public function setBaseTotalPaid($baseTotalPaid) { return $this->setData(OrderInterface::BASE_TOTAL_PAID, $baseTotalPaid); } /** * @inheritdoc */ public function setBaseTotalQtyOrdered($baseTotalQtyOrdered) { return $this->setData(OrderInterface::BASE_TOTAL_QTY_ORDERED, $baseTotalQtyOrdered); } /** * @inheritdoc */ public function setBaseTotalRefunded($baseTotalRefunded) { return $this->setData(OrderInterface::BASE_TOTAL_REFUNDED, $baseTotalRefunded); } /** * @inheritdoc */ public function setDiscountAmount($amount) { return $this->setData(OrderInterface::DISCOUNT_AMOUNT, $amount); } /** * @inheritdoc */ public function setDiscountCanceled($discountCanceled) { return $this->setData(OrderInterface::DISCOUNT_CANCELED, $discountCanceled); } /** * @inheritdoc */ public function setDiscountInvoiced($discountInvoiced) { return $this->setData(OrderInterface::DISCOUNT_INVOICED, $discountInvoiced); } /** * @inheritdoc */ public function setDiscountRefunded($discountRefunded) { return $this->setData(OrderInterface::DISCOUNT_REFUNDED, $discountRefunded); } /** * @inheritdoc */ public function setGrandTotal($amount) { return $this->setData(OrderInterface::GRAND_TOTAL, $amount); } /** * @inheritdoc */ public function setShippingAmount($amount) { return $this->setData(OrderInterface::SHIPPING_AMOUNT, $amount); } /** * @inheritdoc */ public function setShippingCanceled($shippingCanceled) { return $this->setData(OrderInterface::SHIPPING_CANCELED, $shippingCanceled); } /** * @inheritdoc */ public function setShippingInvoiced($shippingInvoiced) { return $this->setData(OrderInterface::SHIPPING_INVOICED, $shippingInvoiced); } /** * @inheritdoc */ public function setShippingRefunded($shippingRefunded) { return $this->setData(OrderInterface::SHIPPING_REFUNDED, $shippingRefunded); } /** * @inheritdoc */ public function setShippingTaxAmount($amount) { return $this->setData(OrderInterface::SHIPPING_TAX_AMOUNT, $amount); } /** * @inheritdoc */ public function setShippingTaxRefunded($shippingTaxRefunded) { return $this->setData(OrderInterface::SHIPPING_TAX_REFUNDED, $shippingTaxRefunded); } /** * @inheritdoc */ public function setStoreToBaseRate($rate) { return $this->setData(OrderInterface::STORE_TO_BASE_RATE, $rate); } /** * @inheritdoc */ public function setStoreToOrderRate($rate) { return $this->setData(OrderInterface::STORE_TO_ORDER_RATE, $rate); } /** * @inheritdoc */ public function setSubtotal($amount) { return $this->setData(OrderInterface::SUBTOTAL, $amount); } /** * @inheritdoc */ public function setSubtotalCanceled($subtotalCanceled) { return $this->setData(OrderInterface::SUBTOTAL_CANCELED, $subtotalCanceled); } /** * @inheritdoc */ public function setSubtotalInvoiced($subtotalInvoiced) { return $this->setData(OrderInterface::SUBTOTAL_INVOICED, $subtotalInvoiced); } /** * @inheritdoc */ public function setSubtotalRefunded($subtotalRefunded) { return $this->setData(OrderInterface::SUBTOTAL_REFUNDED, $subtotalRefunded); } /** * @inheritdoc */ public function setTaxAmount($amount) { return $this->setData(OrderInterface::TAX_AMOUNT, $amount); } /** * @inheritdoc */ public function setTaxCanceled($taxCanceled) { return $this->setData(OrderInterface::TAX_CANCELED, $taxCanceled); } /** * @inheritdoc */ public function setTaxInvoiced($taxInvoiced) { return $this->setData(OrderInterface::TAX_INVOICED, $taxInvoiced); } /** * @inheritdoc */ public function setTaxRefunded($taxRefunded) { return $this->setData(OrderInterface::TAX_REFUNDED, $taxRefunded); } /** * @inheritdoc */ public function setTotalCanceled($totalCanceled) { return $this->setData(OrderInterface::TOTAL_CANCELED, $totalCanceled); } /** * @inheritdoc */ public function setTotalInvoiced($totalInvoiced) { return $this->setData(OrderInterface::TOTAL_INVOICED, $totalInvoiced); } /** * @inheritdoc */ public function setTotalOfflineRefunded($totalOfflineRefunded) { return $this->setData(OrderInterface::TOTAL_OFFLINE_REFUNDED, $totalOfflineRefunded); } /** * @inheritdoc */ public function setTotalOnlineRefunded($totalOnlineRefunded) { return $this->setData(OrderInterface::TOTAL_ONLINE_REFUNDED, $totalOnlineRefunded); } /** * @inheritdoc */ public function setTotalPaid($totalPaid) { return $this->setData(OrderInterface::TOTAL_PAID, $totalPaid); } /** * @inheritdoc */ public function setTotalQtyOrdered($totalQtyOrdered) { return $this->setData(OrderInterface::TOTAL_QTY_ORDERED, $totalQtyOrdered); } /** * @inheritdoc */ public function setTotalRefunded($totalRefunded) { return $this->setData(OrderInterface::TOTAL_REFUNDED, $totalRefunded); } /** * @inheritdoc */ public function setCanShipPartially($flag) { return $this->setData(OrderInterface::CAN_SHIP_PARTIALLY, $flag); } /** * @inheritdoc */ public function setCanShipPartiallyItem($flag) { return $this->setData(OrderInterface::CAN_SHIP_PARTIALLY_ITEM, $flag); } /** * @inheritdoc */ public function setCustomerIsGuest($customerIsGuest) { return $this->setData(OrderInterface::CUSTOMER_IS_GUEST, $customerIsGuest); } /** * @inheritdoc */ public function setCustomerNoteNotify($customerNoteNotify) { return $this->setData(OrderInterface::CUSTOMER_NOTE_NOTIFY, $customerNoteNotify); } /** * @inheritdoc */ public function setBillingAddressId($id) { return $this->setData(OrderInterface::BILLING_ADDRESS_ID, $id); } /** * @inheritdoc */ public function setCustomerGroupId($id) { return $this->setData(OrderInterface::CUSTOMER_GROUP_ID, $id); } /** * @inheritdoc */ public function setEditIncrement($editIncrement) { return $this->setData(OrderInterface::EDIT_INCREMENT, $editIncrement); } /** * @inheritdoc */ public function setEmailSent($emailSent) { return $this->setData(OrderInterface::EMAIL_SENT, $emailSent); } /** * @inheritdoc */ public function setForcedShipmentWithInvoice($forcedShipmentWithInvoice) { return $this->setData(OrderInterface::FORCED_SHIPMENT_WITH_INVOICE, $forcedShipmentWithInvoice); } /** * @inheritdoc */ public function setPaymentAuthExpiration($paymentAuthExpiration) { return $this->setData(OrderInterface::PAYMENT_AUTH_EXPIRATION, $paymentAuthExpiration); } /** * @inheritdoc */ public function setQuoteAddressId($id) { return $this->setData(OrderInterface::QUOTE_ADDRESS_ID, $id); } /** * @inheritdoc */ public function setQuoteId($id) { return $this->setData(OrderInterface::QUOTE_ID, $id); } /** * @inheritdoc */ public function setAdjustmentNegative($adjustmentNegative) { return $this->setData(OrderInterface::ADJUSTMENT_NEGATIVE, $adjustmentNegative); } /** * @inheritdoc */ public function setAdjustmentPositive($adjustmentPositive) { return $this->setData(OrderInterface::ADJUSTMENT_POSITIVE, $adjustmentPositive); } /** * @inheritdoc */ public function setBaseAdjustmentNegative($baseAdjustmentNegative) { return $this->setData(OrderInterface::BASE_ADJUSTMENT_NEGATIVE, $baseAdjustmentNegative); } /** * @inheritdoc */ public function setBaseAdjustmentPositive($baseAdjustmentPositive) { return $this->setData(OrderInterface::BASE_ADJUSTMENT_POSITIVE, $baseAdjustmentPositive); } /** * @inheritdoc */ public function setBaseShippingDiscountAmount($amount) { return $this->setData(OrderInterface::BASE_SHIPPING_DISCOUNT_AMOUNT, $amount); } /** * @inheritdoc */ public function setBaseSubtotalInclTax($amount) { return $this->setData(OrderInterface::BASE_SUBTOTAL_INCL_TAX, $amount); } /** * @inheritdoc */ public function setBaseTotalDue($baseTotalDue) { return $this->setData(OrderInterface::BASE_TOTAL_DUE, $baseTotalDue); } /** * @inheritdoc */ public function setPaymentAuthorizationAmount($amount) { return $this->setData(OrderInterface::PAYMENT_AUTHORIZATION_AMOUNT, $amount); } /** * @inheritdoc */ public function setShippingDiscountAmount($amount) { return $this->setData(OrderInterface::SHIPPING_DISCOUNT_AMOUNT, $amount); } /** * @inheritdoc */ public function setSubtotalInclTax($amount) { return $this->setData(OrderInterface::SUBTOTAL_INCL_TAX, $amount); } /** * @inheritdoc */ public function setTotalDue($totalDue) { return $this->setData(OrderInterface::TOTAL_DUE, $totalDue); } /** * @inheritdoc */ public function setWeight($weight) { return $this->setData(OrderInterface::WEIGHT, $weight); } /** * @inheritdoc */ public function setCustomerDob($customerDob) { return $this->setData(OrderInterface::CUSTOMER_DOB, $customerDob); } /** * @inheritdoc */ public function setIncrementId($id) { return $this->setData(OrderInterface::INCREMENT_ID, $id); } /** * @inheritdoc */ public function setAppliedRuleIds($appliedRuleIds) { return $this->setData(OrderInterface::APPLIED_RULE_IDS, $appliedRuleIds); } /** * @inheritdoc */ public function setBaseCurrencyCode($code) { return $this->setData(OrderInterface::BASE_CURRENCY_CODE, $code); } /** * @inheritdoc */ public function setCustomerEmail($customerEmail) { return $this->setData(OrderInterface::CUSTOMER_EMAIL, $customerEmail); } /** * @inheritdoc */ public function setCustomerFirstname($customerFirstname) { return $this->setData(OrderInterface::CUSTOMER_FIRSTNAME, $customerFirstname); } /** * @inheritdoc */ public function setCustomerLastname($customerLastname) { return $this->setData(OrderInterface::CUSTOMER_LASTNAME, $customerLastname); } /** * @inheritdoc */ public function setCustomerMiddlename($customerMiddlename) { return $this->setData(OrderInterface::CUSTOMER_MIDDLENAME, $customerMiddlename); } /** * @inheritdoc */ public function setCustomerPrefix($customerPrefix) { return $this->setData(OrderInterface::CUSTOMER_PREFIX, $customerPrefix); } /** * @inheritdoc */ public function setCustomerSuffix($customerSuffix) { return $this->setData(OrderInterface::CUSTOMER_SUFFIX, $customerSuffix); } /** * @inheritdoc */ public function setCustomerTaxvat($customerTaxvat) { return $this->setData(OrderInterface::CUSTOMER_TAXVAT, $customerTaxvat); } /** * @inheritdoc */ public function setDiscountDescription($description) { return $this->setData(OrderInterface::DISCOUNT_DESCRIPTION, $description); } /** * @inheritdoc */ public function setExtCustomerId($id) { return $this->setData(OrderInterface::EXT_CUSTOMER_ID, $id); } /** * @inheritdoc */ public function setExtOrderId($id) { return $this->setData(OrderInterface::EXT_ORDER_ID, $id); } /** * @inheritdoc */ public function setGlobalCurrencyCode($code) { return $this->setData(OrderInterface::GLOBAL_CURRENCY_CODE, $code); } /** * @inheritdoc */ public function setHoldBeforeState($holdBeforeState) { return $this->setData(OrderInterface::HOLD_BEFORE_STATE, $holdBeforeState); } /** * @inheritdoc */ public function setHoldBeforeStatus($holdBeforeStatus) { return $this->setData(OrderInterface::HOLD_BEFORE_STATUS, $holdBeforeStatus); } /** * @inheritdoc */ public function setOrderCurrencyCode($code) { return $this->setData(OrderInterface::ORDER_CURRENCY_CODE, $code); } /** * @inheritdoc */ public function setOriginalIncrementId($id) { return $this->setData(OrderInterface::ORIGINAL_INCREMENT_ID, $id); } /** * @inheritdoc */ public function setRelationChildId($id) { return $this->setData(OrderInterface::RELATION_CHILD_ID, $id); } /** * @inheritdoc */ public function setRelationChildRealId($realId) { return $this->setData(OrderInterface::RELATION_CHILD_REAL_ID, $realId); } /** * @inheritdoc */ public function setRelationParentId($id) { return $this->setData(OrderInterface::RELATION_PARENT_ID, $id); } /** * @inheritdoc */ public function setRelationParentRealId($realId) { return $this->setData(OrderInterface::RELATION_PARENT_REAL_ID, $realId); } /** * @inheritdoc */ public function setRemoteIp($remoteIp) { return $this->setData(OrderInterface::REMOTE_IP, $remoteIp); } /** * @inheritdoc */ public function setStoreCurrencyCode($code) { return $this->setData(OrderInterface::STORE_CURRENCY_CODE, $code); } /** * @inheritdoc */ public function setStoreName($storeName) { return $this->setData(OrderInterface::STORE_NAME, $storeName); } /** * @inheritdoc */ public function setXForwardedFor($xForwardedFor) { return $this->setData(OrderInterface::X_FORWARDED_FOR, $xForwardedFor); } /** * @inheritdoc */ public function setCustomerNote($customerNote) { return $this->setData(OrderInterface::CUSTOMER_NOTE, $customerNote); } /** * @inheritdoc */ public function setUpdatedAt($timestamp) { return $this->setData(OrderInterface::UPDATED_AT, $timestamp); } /** * @inheritdoc */ public function setTotalItemCount($totalItemCount) { return $this->setData(OrderInterface::TOTAL_ITEM_COUNT, $totalItemCount); } /** * @inheritdoc */ public function setCustomerGender($customerGender) { return $this->setData(OrderInterface::CUSTOMER_GENDER, $customerGender); } /** * @inheritdoc */ public function setDiscountTaxCompensationAmount($amount) { return $this->setData(OrderInterface::DISCOUNT_TAX_COMPENSATION_AMOUNT, $amount); } /** * @inheritdoc */ public function setBaseDiscountTaxCompensationAmount($amount) { return $this->setData(OrderInterface::BASE_DISCOUNT_TAX_COMPENSATION_AMOUNT, $amount); } /** * @inheritdoc */ public function setShippingDiscountTaxCompensationAmount($amount) { return $this->setData(OrderInterface::SHIPPING_DISCOUNT_TAX_COMPENSATION_AMOUNT, $amount); } /** * @inheritdoc */ public function setBaseShippingDiscountTaxCompensationAmnt($amnt) { return $this->setData(OrderInterface::BASE_SHIPPING_DISCOUNT_TAX_COMPENSATION_AMNT, $amnt); } /** * @inheritdoc */ public function setDiscountTaxCompensationInvoiced($discountTaxCompensationInvoiced) { return $this->setData(OrderInterface::DISCOUNT_TAX_COMPENSATION_INVOICED, $discountTaxCompensationInvoiced); } /** * @inheritdoc */ public function setBaseDiscountTaxCompensationInvoiced($baseDiscountTaxCompensationInvoiced) { return $this->setData( OrderInterface::BASE_DISCOUNT_TAX_COMPENSATION_INVOICED, $baseDiscountTaxCompensationInvoiced ); } /** * @inheritdoc */ public function setDiscountTaxCompensationRefunded($discountTaxCompensationRefunded) { return $this->setData( OrderInterface::DISCOUNT_TAX_COMPENSATION_REFUNDED, $discountTaxCompensationRefunded ); } /** * @inheritdoc */ public function setBaseDiscountTaxCompensationRefunded($baseDiscountTaxCompensationRefunded) { return $this->setData( OrderInterface::BASE_DISCOUNT_TAX_COMPENSATION_REFUNDED, $baseDiscountTaxCompensationRefunded ); } /** * @inheritdoc */ public function setShippingInclTax($amount) { return $this->setData(OrderInterface::SHIPPING_INCL_TAX, $amount); } /** * @inheritdoc */ public function setBaseShippingInclTax($amount) { return $this->setData(OrderInterface::BASE_SHIPPING_INCL_TAX, $amount); } /** * Sets shipping method to order * * @param string $shippingMethod * @return $this * @internal */ public function setShippingMethod($shippingMethod) { return $this->setData('shipping_method', $shippingMethod); } /** * Is visible customer middlename * * @return bool */ private function isVisibleCustomerMiddlename(): bool { return $this->scopeConfig->isSetFlag( 'customer/address/middlename_show', ScopeInterface::SCOPE_STORE ); } /** * Is visible customer prefix * * @return bool */ private function isVisibleCustomerPrefix(): bool { $prefixShowValue = $this->scopeConfig->getValue( 'customer/address/prefix_show', ScopeInterface::SCOPE_STORE ); return $prefixShowValue !== Nooptreq::VALUE_NO; } /** * Is visible customer suffix * * @return bool */ private function isVisibleCustomerSuffix(): bool { $prefixShowValue = $this->scopeConfig->getValue( 'customer/address/suffix_show', ScopeInterface::SCOPE_STORE ); return $prefixShowValue !== Nooptreq::VALUE_NO; } //@codeCoverageIgnoreEnd }