Есть необходимость получения из списка заказов информации о покупателях(ФИО, адрес электронной почты, телефон, компания) например для рассылки по электронной почте. Если покупатель зарегистрирован, то это решается проще. А вот если заказ был сделан без регистрации(а таких примерно 80%), то тут возникает проблема. Конечно ВСЯ эта информация сохранена в заказах, но получить эти данные списком стандартными средствами не представляется возможным, а лопатить базу по одному заказу... адский труд. Может кто подскажет решение или натолкнет на мысль.
Код: SELECT firstname, lastname, email, telephone, fax, payment_company AS company FROM oc_order Или я чо то недопонимаю? А насчет рассылок - так в админке есть мегаудобный инструмент для этого. В ПРОДАЖИ-ПОЧТА
Зачем это все... Ставь водуль заказ в один клик и все... Можешь его чуть под себя переделать... чтобы было и ФИО
я так понимаю это запрос к базе данных, ну а вывод-то куда? а про рассылки - про этот инструмент я знаю, но он только для зарегистрированных пользователей и то тех. что поставил "галочку" в "подписаться на рассылку" --- добавлено: 22 фев 2013 в 17:17 --- Здесь я уже поставлен в тупик. Не знаю что ответить... Модуль только собирает данные, все-равно они попадают в БД. Вывод из базы теми же стандартными средствами админки... Про которые и вопрос.
Ну можно на коленке простой модуль склепать. Или добавить эту фишку куданить. Впринципе сложного ничего нет. Ну например в OcStore 5.3.1 там есть поле с выбором <select name="to"> <option value="newsletter">Подписчики на новости</option> <option value="customer_all">Все покупатели</option> <option value="customer_group">Группа покупателей</option> <option value="customer">Покупатели</option> <option value="affiliate_all">Все партнёры</option> <option value="affiliate">Партнёры</option> <option value="product">Товары</option> </select> Так что выбор адресавтов довольно широкий.
Выбор-то широкий, только(и в этом суть основного вопроса) он касаестя покупателей, а к Покупателям относятся ТОЛЬКО зарегистрированные пользователи, сделавшие заказ. А таких немного Я то видел решение в установке какого-нибудь модуля(про который пока не знаю), или правкой соответствующего файла для изменения выводимых поля в Продажи-Заказы, или какой-нибудь Отчет.
Давайте добавим в функционал отправки писем еще один пункт выбора "Все, в том числе и незарегистрированные". Расписую по порядку: 1. admin\controller\sale\contact.php После PHP: case 'customer_all': $results = $this->model_sale_customer->getCustomers(); foreach ($results as $result) { $emails[] = $result['email']; } break; добавить PHP: //////// add all case 'customer_all_all': $results = $this->model_sale_customer->getAllCustomers(); foreach ($results as $result) { $emails[] = $result['email']; } break; //////// После PHP: $this->data['text_customer_all'] = $this->language->get('text_customer_all'); Добавить PHP: /// add all $this->data['text_customer_all_all'] = $this->language->get('text_customer_all_all'); /// 2. admin\model\sale\customer.php После PHP: public function getCustomerByEmail($email) { $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "customer WHERE email = '" . $this->db->escape($email) . "'"); return $query->row; } добавить PHP: /////// add all public function getAllCustomers($email) { $query = $this->db->query("SELECT firstname, lastname, email, telephone, fax, payment_company AS company FROM " . DB_PREFIX . "order"); return $query->row; } /////// 3. admin\language\russian\sale\contact.php После PHP: $_['text_customer_all'] = 'Все покупатели';[/code]добавить[code]/// add all$_['text_customer_all_all'] = 'В том числе и незарегистрированные';/// 4. admin\view\template\sale\contact.tpl После PHP: <?php if ($to == 'customer_all') { ?> <option value="customer_all" selected="selected"><?php echo $text_customer_all; ?></option> <?php } else { ?> <option value="customer_all"><?php echo $text_customer_all; ?></option> <?php } ?> Добавить PHP: <!---- add all --> <?php if ($to == 'customer_all_all') { ?> <option value="customer_all_all" selected="selected"><?php echo $text_customer_all_all; ?></option> <?php } else { ?> <option value="customer_all_all"><?php echo $text_customer_all_all; ?></option> <?php } ?> <!-- end add all --> Все. Обратите внимание - - это ключевой момент. О котором я написал выше. Все остальное - это обвязка. В общем , то, что в этом посте - это готовое решение.
ОГРОМНОЕ СПАСИБО! Честно говоря, задавая вопрос, я имел ввиду ТАКОЕ решение(стал копаться-ковыряться и нашел такой модуль). То, что делает этот модуль - визуализация, а ВАШЕ решение - автоматизация!