Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
В админке в заказе машазина выводить старые заказы по страницам

Автор kroxaРаздел Настройка системы и модулей

Ответов: 3
Просмотров: 2201
Последний ответ 08 Апреля 2011, 15:08:52
от admin
Не открываются заказы в модуле Интернет магазин

Автор shotoРаздел Настройка системы и модулей

Ответов: 8
Просмотров: 283
Последний ответ 01 Марта 2017, 20:35:54
от e.ioffe
Заказы

Автор ExorcistРаздел Настройка системы и модулей

Ответов: 8
Просмотров: 2487
Последний ответ 14 Декабря 2011, 10:49:58
от admin
Какие файлы можно удалить?

Автор VeinardРаздел Установка UMI.CMS

Ответов: 5
Просмотров: 777
Последний ответ 02 Марта 2016, 23:10:05
от e.ioffe
Удалить все объекты из корзины

Автор MadaletРаздел Настройка системы и модулей

Ответов: 2
Просмотров: 4130
Последний ответ 22 Октября 2011, 14:34:13
от Armor

0 Пользователей и 1 Гость просматривают эту тему.

*

anatolii.st

  • *
  • 5
  • +0/-0
    • Просмотр профиля
Удалить все заказы
« : 26 Апреля 2013, 10:54:46 »
Всем привет) Несколько лет назад на UMI был сделан интернет магазин и сейчас клиент решил его переименовать и запустить по новой. Но не как не удается удалить все заказы из админки, а их там за 8 000, т.е. есть возможность удалять только по одному и после каждого заказа приходится обновлять всю страницу. Если кто уже сталкивался с этим помогите с sql запросом или скриптом через API, который безопасно удалит все заказы и пользователей.

буду признателен за ответ))
« Последнее редактирование: 26 Апреля 2013, 12:50:58 от anatolii.st »

*

admin

  • *****
  • 2419
  • +172/-1
    • Просмотр профиля
Re:Удалить все заказы
« Ответ #1 : 28 Апреля 2013, 13:03:21 »
в таких случаях обычно я пишу макрос который удаляет сразу все объекты определенного типа, но иногда не хватает времени на выполнение макроса, тогда я передаю параметр по сколько удалять... и запускаю его несколько раз...

пример подобного кода:
public function del_do() {

            $per_page=1000; // количество объектов которые обрабатываем за раз

             
               $sel = new selector('objects');
               $sel->types('object-type')->name('emarket', 'order');
               
               $sel->limit(0, $per_page);
             
               $total=$sel->length;
               $hierarchy = umiHierarchy::getInstance();
               if($total > 0){
                    foreach($sel as $order) {
                         //... удаляеv заказ $order
                    }
                    exit((string)$total);
               }else exit('end');
             
          }

код пишем например в файл /classes/modules/custom.php

и вызываем в адресной строке /udata/custom/del_do

P.S. не забываем про права на функцию (я обычно делаю это авторизованным под admin, чтобы не прописывать права на эту функцию)

P.P.S. и не забывайте о предосторожностях (например сделать бекап базы), а то вдруг в скрипте что-то не так или ваша задача немного другая (удалить не все заказы , а какую-то часть), а вы все поудаляете  ;)

*

anatolii.st

  • *
  • 5
  • +0/-0
    • Просмотр профиля
Re:Удалить все заказы
« Ответ #2 : 17 Мая 2013, 10:25:07 »
т.е. на место
//... удаляеv заказ $order

нужно будет дописать  ?
 $hierarchy->delObject($order);

именно так не пашет пишет
Fatal error: Call to undefined method umiHierarchy::delObject() in /home/soundfil/public_html/classes/modules/custom.php on line 2122

версия UMI 2.8.4
« Последнее редактирование: 17 Мая 2013, 11:09:48 от anatolii.st »

*

admin

  • *****
  • 2419
  • +172/-1
    • Просмотр профиля
Re:Удалить все заказы
« Ответ #3 : 17 Мая 2013, 12:59:13 »
 $hierarchy->delObject

удаляет страницы что видно из название класса $hierarchy = umiHierarchy::getInstance();

а у вас заказы, они объекты и удалять их надо при помощи класса  umiObjectsCollection::getInstance(); посмотрите документацию с примерами работы с объектами.... http://api.docs.umi-cms.ru/razrabotka_nestandartnogo_funkcionala/primery_ispolzovaniya_vozmozhnostej_api/obekty/