/**
  * Export subscriber per website.
  * @param Mage_Core_Model_Website $website
  *
  * @return int
  */
 public function exportSubscribersPerWebsite(Mage_Core_Model_Website $website)
 {
     $updated = 0;
     $fileHelper = Mage::helper('ddg/file');
     $limit = $website->getConfig(Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_SYNC_LIMIT);
     $subscribers = Mage::getModel('ddg_automation/contact')->getSubscribersToImport($website, $limit);
     if (count($subscribers)) {
         $subscribersFilename = strtolower($website->getCode() . '_subscribers_' . date('d_m_Y_Hi') . '.csv');
         //get mapped storename
         $subscriberStorename = Mage::helper('ddg')->getMappedStoreName($website);
         //file headers
         $fileHelper->outputCSV($fileHelper->getFilePath($subscribersFilename), array('Email', 'emailType', $subscriberStorename));
         foreach ($subscribers as $subscriber) {
             try {
                 $email = $subscriber->getEmail();
                 $subscriber->setSubscriberImported(1)->save();
                 $subscriber = Mage::getModel('newsletter/subscriber')->loadByEmail($email);
                 $storeName = Mage::app()->getStore($subscriber->getStoreId())->getName();
                 // save data for subscribers
                 $fileHelper->outputCSV($fileHelper->getFilePath($subscribersFilename), array($email, 'Html', $storeName));
                 $updated++;
             } catch (Exception $e) {
                 Mage::logException($e);
             }
         }
         Mage::helper('ddg')->log('Subscriber filename: ' . $subscribersFilename);
         //register in queue with importer
         Mage::getModel('ddg_automation/importer')->registerQueue(Dotdigitalgroup_Email_Model_Importer::IMPORT_TYPE_SUBSCRIBERS, '', Dotdigitalgroup_Email_Model_Importer::MODE_BULK, $website->getId(), $subscribersFilename);
     }
     //add updated number for the website
     $this->_countSubscriber += $updated;
     return $updated;
 }
 /**
  * update data fields
  *
  * @param $email
  * @param Mage_Core_Model_Website $website
  * @param $storeName
  */
 public function updateDataFields($email, Mage_Core_Model_Website $website, $storeName)
 {
     $data = array();
     if ($store_name = $website->getConfig(Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_CUSTOMER_STORE_NAME)) {
         $data[] = array('Key' => $store_name, 'Value' => $storeName);
     }
     if ($website_name = $website->getConfig(Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_CUSTOMER_WEBSITE_NAME)) {
         $data[] = array('Key' => $website_name, 'Value' => $website->getName());
     }
     if (!empty($data)) {
         //update data fields
         $client = $this->getWebsiteApiClient($website);
         $client->updateContactDatafieldsByEmail($email, $data);
     }
 }
示例#3
0
 /**
  * Generate a base URL for a website like if it is staging
  *
  * @param   Mage_Core_Model_Website $masterWebsite
  * @param   bool $secure
  * @return  string
  */
 public function getBaseUrl($masterWebsite, $secure = false)
 {
     $this->_ensureWebsite();
     $this->getBaseFolder();
     $masterUri = $masterWebsite->getConfig('web/' . ($secure ? '' : 'un') . 'secure/base_url');
     $masterUri = str_replace($this->_baseFolderName . '/' . $masterWebsite->getCode() . '/', '', $masterUri);
     return $masterUri . $this->_baseFolderName . '/' . $this->_website->getCode() . '/';
 }
 /**
  * Return config values that may vary by website/store for the given
  * website.
  * @param  Mage_Core_Model_Website $website
  * @return array Config values for store id, AMQP username and AMQP password
  */
 public function getWebsiteLevelAmqpConfigurations(Mage_Core_Model_Website $website)
 {
     $storeIdPath = $this->_coreConfigMap->getPathForKey(self::STORE_ID_CONFIG_KEY);
     $usernamePath = $this->_amqpConfigMap->getPathForKey(self::USERNAME_CONFIG_KEY);
     $passwordPath = $this->_amqpConfigMap->getPathForKey(self::PASSWORD_CONFIG_KEY);
     $defaultCoreConfig = $this->_coreHelper->getConfigModel(Mage::app()->getStore(0));
     $defaultAmqpConfig = $this->_helper->getConfigModel(Mage::app()->getStore(0));
     // get website level config values, falling back to any not available to the
     // website with default store config values
     return array('store_id' => $website->getConfig($storeIdPath) ?: $defaultCoreConfig->storeId, 'username' => $website->getConfig($usernamePath) ?: $defaultAmqpConfig->username, 'password' => $this->_mageHelper->decrypt($website->getConfig($passwordPath)) ?: $defaultAmqpConfig->password);
 }