функция для удаления заказов

[10 ноября 2016 г.]    Российская сборка Magento 2.49.12
Magento 2: модули и услуги
  • Тема закрыта
#1 Роман Цегинька
  • Группа: Заблокирован
  • Сообщений: 95
  • Регистрация: 01.08.2011

28.10.2011 17:16

Здравствуйте. Подскажите пожалуйста функцию для удаления заказов. Пишу модуль который будет удалять просроченные заказы, а вот напрямую через sql запрос не получается.

#2 Роман Цегинька
  • Группа: Заблокирован
  • Сообщений: 95
  • Регистрация: 01.08.2011

28.10.2011 17:59

Насколько я понимаю вся проблема в в том что стоит запрет на удаление, или добавления данных. Походу должна быть стандартная функция которая это все касается, и удаление за одним проходом всех привязан записей по всей базе но к сожалению я не знаю сработает ли такой метод, буду благодарен зха помощь.

#3 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8884
  • Регистрация: 20.02.2010

29.10.2011 04:48

Как правило, в хороших учётных системах учётные объекты не удаляются.
В частности в вашем случае просроченные заказы - важные исходные данные для анализа потребительского поведения.
Анализируя просроченные заказы, можно понять, что надо делать в данном конкретном магазине, чтобы просрочек было меньше.

#4 Роман Цегинька
  • Группа: Заблокирован
  • Сообщений: 95
  • Регистрация: 01.08.2011

29.10.2011 13:16

Дмитрий вы как никто другой понимаете, что если заказчик хочет, чтобы ему удалялись старые заказы то программисту нужно это реализовать. К сожалению у меня нет возможности изучить Магента как фраемворк по нехватке литературы и времени, поэтому спрашиваю если кому известная функция удаления заказов будьте добры выложить ее на форуме. Буду бесконечно благодарен.

#5 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8884
  • Регистрация: 20.02.2010

29.10.2011 13:24

Для вас: поставьте модуль Delete Any Order.
Хочу обратить внимание заказчиков, которые будут читать данную тему, что удаление заказов и других учётных объектов системы - прямой путь к коррупции для административного персонала интернет-магазина.
Также хочу обратить внимание на разницу между исполнительным программистом и программистом, предлагающим качественные решения.

#6 Роман Цегинька
  • Группа: Заблокирован
  • Сообщений: 95
  • Регистрация: 01.08.2011

29.10.2011 14:00

Спасибо Дмитрий, но думаю в свое время вы тоже не делали все идеально. Все приходит со временем и опытом, который появляется при выполнении самых разнообразных задач. И плюс то, что оплата услуг профессионала и новичка Магентo существенно отличается. И лично я не вижу ничего плохого в том, что владелец сайта сможет удалить уже не нужную для него информацию о заказах которые проводились давным давно, тем самым он проведет чистку базы данных и соответственно уменьшит ее размер. Тем более Магента дает возможность ручного удаления всех заказов, в моем случае его нужно автоматизировать. Хорошего вам дня!

#7 Роман Цегинька
  • Группа: Заблокирован
  • Сообщений: 95
  • Регистрация: 01.08.2011

29.10.2011 21:27

К сожалению Дмитрий я не нашел бесплатного екстеншина который вы мне посоветовали, однако в продолжение к теме я написал такую ​​функцию которая должна была удалять записи заказа. Ниже привожу сам sql запрос он работает но к сожалению не так как нужно. Данный запрос удаляет все записи из данных таблиц, однако при указании параметра WHERE он престает выполняться. Я проверял сам запрос непосредственно на базе данных все работает как и должно, однако с самого Магенто он выполняться категорически отказывается. Я так понимаю, что именно Магенто выполняет блокировки таких действий. Однако, если возможно подскажите, как можно обойти данный блок.


Ето работает :)
$connection = Mage::getSingleton('core/resource')->getConnection('core_write');
$connection->beginTransaction();
$delete = $connection->query('

SET FOREIGN_KEY_CHECKS=0;

ALTER TABLE `catalogsearch_query` AUTO_INCREMENT=1;


DELETE FROM sales_flat_order;
DELETE FROM sales_flat_order_address;
DELETE FROM sales_flat_order_grid;
DELETE FROM sales_flat_order_item;
DELETE FROM sales_flat_order_payment;
DELETE FROM sales_flat_order_status_history;


ALTER TABLE `sales_flat_order` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order_address` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order_grid` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order_item` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order_payment` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order_status_history` AUTO_INCREMENT=1;
SET FOREIGN_KEY_CHECKS=1;


Ето нет:(
$connection = Mage::getSingleton('core/resource')->getConnection('core_write');
$connection->beginTransaction();
$delete = $connection->query('

SET FOREIGN_KEY_CHECKS=0;

ALTER TABLE `catalogsearch_query` AUTO_INCREMENT=1;


DELETE FROM sales_flat_order WHERE entity_id=20;
DELETE FROM sales_flat_order_address WHERE parent_id=20;
DELETE FROM sales_flat_order_grid WHERE entity_id=20;
DELETE FROM  sales_flat_order_item WHERE order_id=20;
DELETE FROM  sales_flat_order_payment WHERE entity_id=20;
DELETE FROM   sales_flat_order_status_history WHERE parent_id=20;


ALTER TABLE `sales_flat_order` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order_address` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order_grid` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order_item` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order_payment` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order_status_history` AUTO_INCREMENT=1;
SET FOREIGN_KEY_CHECKS=1;


');

Если выполнить этот запрос напрямую в базе все отработает.

#8 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8884
  • Регистрация: 20.02.2010

30.10.2011 05:04

Слова, выделенные жирным в моём предыдущем сообщении - введите в адресную строку Google.
Данный модуль стоит 20 евро.

#9 Роман Цегинька
  • Группа: Заблокирован
  • Сообщений: 95
  • Регистрация: 01.08.2011

30.10.2011 14:56

Я ето знаю поетому написал, что я не нашел бесплатного екстеншина который вы мне посоветовали.

#10 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8884
  • Регистрация: 20.02.2010

30.10.2011 14:58

Это какое-то недоразумение: я бесплатный не советовал.
Я советовал именно тот, название которого написал.

#11 Роман Цегинька
  • Группа: Заблокирован
  • Сообщений: 95
  • Регистрация: 01.08.2011

30.10.2011 15:07

Возможно мы не поняли друг друга. Однако платный вариант мне не подходит так, как мне не нужен данный модуль,. а лишь посмотреть на его функции. А платить 20 евро за то, чтобы взглянуть не является разумным решением проблемы. Ну по крайней мере в моем случае. Вы можете мне что-то посоветовать отталкиваясь от запроса который я написал выше? Почему оно не воспринимает WHERE и как это можно обойти. Так как именно в данной команде и есть ключ к решению моей проблемы.

#12 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8884
  • Регистрация: 20.02.2010

30.10.2011 15:16

Если вы считаете, что решение данной проблемы не стоит 20 евро, значит, тему закрываем по причине низкой ценности.

Поделиться темой: