osben Posted September 28, 2013 Report Share Posted September 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> П.С. Если нашли ошибки, пишите.Спасибо можно говорить и в денежном эквиваленте Quote Link to post Share on other sites
osben Posted September 28, 2013 Author Report Share Posted September 28, 2013 В архиве все измененные файлыЭкспорт товаров с выбором категорий.zip Quote Link to post Share on other sites
artbe Posted October 1, 2013 Report Share Posted October 1, 2013 На версии © 2013 Simpla 2.2.3, не видит этого селекта выбора категорий. Если убрать display:none, вывод селекта происходит. Но опять же не выводятся категории товара. Quote Link to post Share on other sites
osben Posted October 1, 2013 Author Report Share Posted October 1, 2013 На версии © 2013 Simpla 2.2.3, не видит этого селекта выбора категорий. Если убрать display:none, вывод селекта происходит. Но опять же не выводятся категории товара. А у Вас категории есть? или Вы не поправили файл simpla/ExportAdmin.php Quote Link to post Share on other sites
SV911 Posted October 1, 2013 Report Share Posted October 1, 2013 Класс!!! Спасибо!Я как то недавно задавал подобный вопрос на форуме как сделать такую выгрузку, чтобы всю базу не лопатило - но озвученная одним умельцем сумма за такую доделку в 70$ меня отпугнула ))) Quote Link to post Share on other sites
osben Posted October 1, 2013 Author Report Share Posted October 1, 2013 Класс!!! Спасибо!Я как то недавно задавал подобный вопрос на форуме как сделать такую выгрузку, чтобы всю базу не лопатило - но озвученная одним умельцем сумма за такую доделку в 70$ меня отпугнула )))70$ наверное многовато, можете мне оплатить сколько считаете нужно в качестве стимула что то еще интересно сделать как будет настроение Quote Link to post Share on other sites
Matteus Posted March 8, 2014 Report Share Posted March 8, 2014 Спасибо! Очень помогло! А то 15к товаров и сервер прерывал, ни как не мог сделать экспорт Quote Link to post Share on other sites
oriolun Posted March 11, 2014 Report Share Posted March 11, 2014 Спасибо, работает Quote Link to post Share on other sites
DraveMor Posted August 30, 2014 Report Share Posted August 30, 2014 Подскажите пожалуйста, как можно реализовать массовый импорт товаров? То бишь все категории сразу. Quote Link to post Share on other sites
koteyka Posted August 31, 2014 Report Share Posted August 31, 2014 Выбираешь "Все категории" Quote Link to post Share on other sites
DraveMor Posted August 31, 2014 Report Share Posted August 31, 2014 Выбираешь "Все категории"Дело в том, что у меня нет выбора этого варианта. Quote Link to post Share on other sites
koteyka Posted August 31, 2014 Report Share Posted August 31, 2014 Значить что-то не так сделал. Самый первый пункт при выборе категорий должен быть "Все категории". Quote Link to post Share on other sites
xilt Posted October 29, 2014 Report Share Posted October 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); Quote Link to post Share on other sites
Денис Posted December 2, 2014 Report Share Posted December 2, 2014 Спасибо за бесплатную модификацию, очень полезно, причем если выбираешь категорию намного быстрее обрабатывается запрос и без ненужных товаров. У меня вопрос, если это не сложный допил, то как выстроить товары при экспорте по категории, этот момент всегда смущал когда в эксперте много категорий, все в перемешку... Quote Link to post Share on other sites
osben Posted December 2, 2014 Author Report Share Posted December 2, 2014 Спасибо за бесплатную модификацию, очень полезно, причем если выбираешь категорию намного быстрее обрабатывается запрос и без ненужных товаров. У меня вопрос, если это не сложный допил, то как выстроить товары при экспорте по категории, этот момент всегда смущал когда в эксперте много категорий, все в перемешку...Вам нужно в api/Product.php сделать в методе get_products свой ордер который будет отвечать за категории и использовать его в simpla/ajax/export.php Quote Link to post Share on other sites
filth Posted April 25, 2015 Report Share Posted April 25, 2015 А кто подскажет как можно ещё и бренд выбрать для нужной категории??? Quote Link to post Share on other sites
wildrock Posted April 30, 2015 Report Share Posted April 30, 2015 CТАВЛЮ + АВТОРУ СПАСИБО Quote Link to post Share on other sites
Maxman Posted May 1, 2015 Report Share Posted May 1, 2015 Спасибо!!! Все работает как часы! Quote Link to post Share on other sites
keks Posted May 18, 2015 Report Share Posted May 18, 2015 (edited) Как сделать, чтобы при экспорте категории, файл назывался как категория? к примеру: часы.csv или chasi.csv Edited May 18, 2015 by keks Quote Link to post Share on other sites
koteyka Posted May 18, 2015 Report Share Posted May 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'; Это топорно (лишний запрос будет), но не критично. Quote Link to post Share on other sites
Noxter Posted May 26, 2015 Report Share Posted May 26, 2015 (edited) Если выбрать: <option value='0'>Все категории</option> то экспорт прекращает работу и ничего не формирует. Edited May 26, 2015 by Noxter Quote Link to post Share on other sites
ignasius Posted June 15, 2015 Report Share Posted June 15, 2015 А скажем если мне надо разбить товар не по категориям, а по брендам? Quote Link to post Share on other sites
Noxter Posted June 15, 2015 Report Share Posted June 15, 2015 А скажем если мне надо разбить товар не по категориям, а по брендам?Могу индивидуально написать функционал за оплату. Quote Link to post Share on other sites
ignasius Posted June 15, 2015 Report Share Posted June 15, 2015 Могу индивидуально написать функционал за оплату.И сколько это будет стоить? Quote Link to post Share on other sites
ignasius Posted June 16, 2015 Report Share Posted June 16, 2015 Отбой, я уже сам сделал Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.