/** * Assign PIN codes to the order items * * @return void */ public function acquirePINCodes() { $missingCount = 0; foreach ($this->getItems() as $item) { if ($item->getProduct()->getPinCodesEnabled() && !$item->countPinCodes()) { $item->acquirePinCodes(); $missingCount += $item->countMissingPinCodes(); } } if ($missingCount) { \XLite\Core\Mailer::sendAcquirePinCodesFailedAdmin($this); \XLite\Core\TopMessage::addError('Could not assign X PIN codes to order #Y.', array('count' => $missingCount, 'orderId' => $this->getOrderNumber())); } }