/** * @param \CentralNews\Entity\Order[] $orders * @param \CentralNews\Entity\ISubscriberGroup $group * @return bool * @throws \CentralNews\Exception\InvalidArgumentException */ public function importOrders(array $orders, ISubscriberGroup $group) { if (!$group->getId()) { throw new InvalidArgumentException('Invalid Group ID'); } $xmlOrders = $this->createOrdersXml($orders); $data = array('group_id' => $group->getId(), 'orders' => base64_encode($xmlOrders)); $request = new \CentralNews\Service\Request('import_orders', $data, '', ''); $response = $this->sendRequest($request); $this->onImportedOrders($this, $response); return $response->isSuccess(); }
/** * @param \CentralNews\Service\Subscriber $subscriber * @return string|false */ protected function createXmlSubscribers(array $subscribers, ISubscriberGroup $group, array $options) { $xml = new \XMLWriter(); $xml->openMemory(); $xml->startDocument('1.0', 'UTF-8'); $xml->startElement("subscribers"); $xml->writeAttribute('enable_update', isset($options['enable_update']) ? (bool) $options['enable_update'] : TRUE); if ($group instanceof BaseSubscriberGroup && !$group->getId() && $group->getName()) { $xml->writeAttribute('subscriber_group_name', $group->getName()); } foreach ($subscribers as $subscriber) { $xml->startElement("subscriber"); $xml->writeAttribute('email', $subscriber->getEmail()); $xml->writeAttribute('firstname', $subscriber->getFirstname()); $xml->writeAttribute('surname', $subscriber->getSurname()); $xml->writeAttribute('city', $subscriber->getCity()); $xml->writeAttribute('address', $subscriber->getAddress()); $xml->writeAttribute('zip_code', $subscriber->getZipCode()); $xml->writeAttribute('company', $subscriber->getCompany()); $xml->writeAttribute('status_activity', $subscriber->getStatus()); $xml->writeAttribute('status_activity_rewrite', $subscriber->getStatusActivityRewrite()); $xml->endElement(); } $xml->endElement(); return $xml->flush(); }