osben Опубликовано 28 сентября, 2013 Жалоба Поделиться Опубликовано 28 сентября, 2013 Добрый день. Сегодня утром обратился клиент и попросил сделать в экспорте товаров с выбором категорий. Вот решил поделится. simpla/ajax/export.php После $this->db->query('SET NAMES cp1251'); добавить $category_id = $this->request->get('category_id'); $category_children = array(); if(!empty($category_id)) { $category = $this->categories->get_category((int)$category_id); if (isset($category)) $category_children = $category->children; } заменить foreach($this->products->get_products(array('page'=>$page, 'limit'=>$this->products_count)) as $p) на foreach($this->products->get_products(array('page'=>$page, 'category_id'=>$category_children, 'limit'=>$this->products_count)) as $p) заменить $total_products = $this->products->count_products(); if($this->products_count*$page < $total_products) return array('end'=>false, 'page'=>$page, 'totalpages'=>$total_products/$this->products_count); else return array('end'=>true, 'page'=>$page, 'totalpages'=>$total_products/$this->products_count); на $total_products = $this->products->count_products(array('category_id'=>$category_children)); if($this->products_count*$page < $total_products) return array('end'=>false, 'page'=>$page, 'category_id'=>$category_children, 'totalpages'=>$total_products/$this->products_count); else return array('end'=>true, 'page'=>$page, 'category_id'=>$category_children, 'totalpages'=>$total_products/$this->products_count); simpla/ExportAdmin.php После public function fetch() { добавить $categories = $this->categories->get_categories_tree(); $this->design->assign('categories', $categories); simpla/design/html/export.tpl после $("#start").hide('fast'); добавить $("#product_categories").hide('fast'); или заменить на $("#start, #product_categories").hide('fast'); после page = typeof(page) != 'undefined' ? page : 1; добавить category_id = $('select[name="category_id"]').find('option:selected').val(); заменить data: {page:page}, на data: {page:page, category_id:category_id}, после <div id='progressbar'></div> добавить <div id="product_categories" {if !$categories}style='display:none;'{/if}> <label>Категория</label> <div> <ul> <li> <select name="category_id"> <option value='0'>Все категории</option> {function name=category_select level=0} {foreach from=$categories item=category} <option value='{$category->id}'>{section name=sp loop=$level} {/section}{$category->name|escape}</option> {category_select categories=$category->subcategories level=$level+1} {/foreach} {/function} {category_select categories=$categories} </select> </li> </ul> </div> </div> П.С. Если нашли ошибки, пишите.Спасибо можно говорить и в денежном эквиваленте Цитата Ссылка на сообщение Поделиться на другие сайты
osben Опубликовано 28 сентября, 2013 Автор Жалоба Поделиться Опубликовано 28 сентября, 2013 В архиве все измененные файлыЭкспорт товаров с выбором категорий.zip Цитата Ссылка на сообщение Поделиться на другие сайты
artbe Опубликовано 1 октября, 2013 Жалоба Поделиться Опубликовано 1 октября, 2013 На версии © 2013 Simpla 2.2.3, не видит этого селекта выбора категорий. Если убрать display:none, вывод селекта происходит. Но опять же не выводятся категории товара. Цитата Ссылка на сообщение Поделиться на другие сайты
osben Опубликовано 1 октября, 2013 Автор Жалоба Поделиться Опубликовано 1 октября, 2013 На версии © 2013 Simpla 2.2.3, не видит этого селекта выбора категорий. Если убрать display:none, вывод селекта происходит. Но опять же не выводятся категории товара. А у Вас категории есть? или Вы не поправили файл simpla/ExportAdmin.php Цитата Ссылка на сообщение Поделиться на другие сайты
SV911 Опубликовано 1 октября, 2013 Жалоба Поделиться Опубликовано 1 октября, 2013 Класс!!! Спасибо!Я как то недавно задавал подобный вопрос на форуме как сделать такую выгрузку, чтобы всю базу не лопатило - но озвученная одним умельцем сумма за такую доделку в 70$ меня отпугнула ))) Цитата Ссылка на сообщение Поделиться на другие сайты
osben Опубликовано 1 октября, 2013 Автор Жалоба Поделиться Опубликовано 1 октября, 2013 Класс!!! Спасибо!Я как то недавно задавал подобный вопрос на форуме как сделать такую выгрузку, чтобы всю базу не лопатило - но озвученная одним умельцем сумма за такую доделку в 70$ меня отпугнула )))70$ наверное многовато, можете мне оплатить сколько считаете нужно в качестве стимула что то еще интересно сделать как будет настроение Цитата Ссылка на сообщение Поделиться на другие сайты
Matteus Опубликовано 8 марта, 2014 Жалоба Поделиться Опубликовано 8 марта, 2014 Спасибо! Очень помогло! А то 15к товаров и сервер прерывал, ни как не мог сделать экспорт Цитата Ссылка на сообщение Поделиться на другие сайты
oriolun Опубликовано 11 марта, 2014 Жалоба Поделиться Опубликовано 11 марта, 2014 Спасибо, работает Цитата Ссылка на сообщение Поделиться на другие сайты
DraveMor Опубликовано 30 августа, 2014 Жалоба Поделиться Опубликовано 30 августа, 2014 Подскажите пожалуйста, как можно реализовать массовый импорт товаров? То бишь все категории сразу. Цитата Ссылка на сообщение Поделиться на другие сайты
koteyka Опубликовано 31 августа, 2014 Жалоба Поделиться Опубликовано 31 августа, 2014 Выбираешь "Все категории" Цитата Ссылка на сообщение Поделиться на другие сайты
DraveMor Опубликовано 31 августа, 2014 Жалоба Поделиться Опубликовано 31 августа, 2014 Выбираешь "Все категории"Дело в том, что у меня нет выбора этого варианта. Цитата Ссылка на сообщение Поделиться на другие сайты
koteyka Опубликовано 31 августа, 2014 Жалоба Поделиться Опубликовано 31 августа, 2014 Значить что-то не так сделал. Самый первый пункт при выборе категорий должен быть "Все категории". Цитата Ссылка на сообщение Поделиться на другие сайты
xilt Опубликовано 29 октября, 2014 Жалоба Поделиться Опубликовано 29 октября, 2014 Дополнение по свойствам . После выполнения вышеуказанных действий. Сделаем так чтобы добавлялись в список колонок свойства товаров только для выбранной категории Для этого заменим это: // Добавим в список колонок свойства товаров $features = $this->features->get_features(); На это: // Добавим в список колонок свойства товаров только для выбранной категории $filter = array(); if(!empty($category_id)) { $category = $this->categories->get_category((int)$category_id); if (isset($category)) $filter['category_id'] = $category->id; } $features = $this->features->get_features($filter); Цитата Ссылка на сообщение Поделиться на другие сайты
Денис Опубликовано 2 декабря, 2014 Жалоба Поделиться Опубликовано 2 декабря, 2014 Спасибо за бесплатную модификацию, очень полезно, причем если выбираешь категорию намного быстрее обрабатывается запрос и без ненужных товаров. У меня вопрос, если это не сложный допил, то как выстроить товары при экспорте по категории, этот момент всегда смущал когда в эксперте много категорий, все в перемешку... Цитата Ссылка на сообщение Поделиться на другие сайты
osben Опубликовано 2 декабря, 2014 Автор Жалоба Поделиться Опубликовано 2 декабря, 2014 Спасибо за бесплатную модификацию, очень полезно, причем если выбираешь категорию намного быстрее обрабатывается запрос и без ненужных товаров. У меня вопрос, если это не сложный допил, то как выстроить товары при экспорте по категории, этот момент всегда смущал когда в эксперте много категорий, все в перемешку...Вам нужно в api/Product.php сделать в методе get_products свой ордер который будет отвечать за категории и использовать его в simpla/ajax/export.php Цитата Ссылка на сообщение Поделиться на другие сайты
filth Опубликовано 25 апреля, 2015 Жалоба Поделиться Опубликовано 25 апреля, 2015 А кто подскажет как можно ещё и бренд выбрать для нужной категории??? Цитата Ссылка на сообщение Поделиться на другие сайты
wildrock Опубликовано 30 апреля, 2015 Жалоба Поделиться Опубликовано 30 апреля, 2015 CТАВЛЮ + АВТОРУ СПАСИБО Цитата Ссылка на сообщение Поделиться на другие сайты
Maxman Опубликовано 1 мая, 2015 Жалоба Поделиться Опубликовано 1 мая, 2015 Спасибо!!! Все работает как часы! Цитата Ссылка на сообщение Поделиться на другие сайты
keks Опубликовано 18 мая, 2015 Жалоба Поделиться Опубликовано 18 мая, 2015 (изменено) Как сделать, чтобы при экспорте категории, файл назывался как категория? к примеру: часы.csv или chasi.csv Изменено 18 мая, 2015 пользователем keks Цитата Ссылка на сообщение Поделиться на другие сайты
koteyka Опубликовано 18 мая, 2015 Жалоба Поделиться Опубликовано 18 мая, 2015 В simpla/ajax/export.php вместо private $filename = 'export.csv'; напиши $category_id = $this->request->get('category_id'); if(!empty($category_id)) { $category = $this->categories->get_category((int)$category_id); } private $filename = $category->name.'.csv'; Это топорно (лишний запрос будет), но не критично. Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 26 мая, 2015 Жалоба Поделиться Опубликовано 26 мая, 2015 (изменено) Если выбрать: <option value='0'>Все категории</option> то экспорт прекращает работу и ничего не формирует. Изменено 26 мая, 2015 пользователем Noxter Цитата Ссылка на сообщение Поделиться на другие сайты
ignasius Опубликовано 15 июня, 2015 Жалоба Поделиться Опубликовано 15 июня, 2015 А скажем если мне надо разбить товар не по категориям, а по брендам? Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 15 июня, 2015 Жалоба Поделиться Опубликовано 15 июня, 2015 А скажем если мне надо разбить товар не по категориям, а по брендам?Могу индивидуально написать функционал за оплату. Цитата Ссылка на сообщение Поделиться на другие сайты
ignasius Опубликовано 15 июня, 2015 Жалоба Поделиться Опубликовано 15 июня, 2015 Могу индивидуально написать функционал за оплату.И сколько это будет стоить? Цитата Ссылка на сообщение Поделиться на другие сайты
ignasius Опубликовано 16 июня, 2015 Жалоба Поделиться Опубликовано 16 июня, 2015 Отбой, я уже сам сделал Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.