Здравствуйте. Подскажите пожалуйста функцию для удаления заказов. Пишу модуль который будет удалять просроченные заказы, а вот напрямую через sql запрос не получается.
функция для удаления заказов
28.10.2011 17:59
Насколько я понимаю вся проблема в в том что стоит запрет на удаление, или добавления данных. Походу должна быть стандартная функция которая это все касается, и удаление за одним проходом всех привязан записей по всей базе но к сожалению я не знаю сработает ли такой метод, буду благодарен зха помощь.
29.10.2011 04:48
Как правило, в хороших учётных системах учётные объекты не удаляются.
В частности в вашем случае просроченные заказы - важные исходные данные для анализа потребительского поведения.
Анализируя просроченные заказы, можно понять, что надо делать в данном конкретном магазине, чтобы просрочек было меньше.
В частности в вашем случае просроченные заказы - важные исходные данные для анализа потребительского поведения.
Анализируя просроченные заказы, можно понять, что надо делать в данном конкретном магазине, чтобы просрочек было меньше.
29.10.2011 13:16
Дмитрий вы как никто другой понимаете, что если заказчик хочет, чтобы ему удалялись старые заказы то программисту нужно это реализовать. К сожалению у меня нет возможности изучить Магента как фраемворк по нехватке литературы и времени, поэтому спрашиваю если кому известная функция удаления заказов будьте добры выложить ее на форуме. Буду бесконечно благодарен.
29.10.2011 13:24
Для вас: поставьте модуль Delete Any Order.
Хочу обратить внимание заказчиков, которые будут читать данную тему, что удаление заказов и других учётных объектов системы - прямой путь к коррупции для административного персонала интернет-магазина.
Также хочу обратить внимание на разницу между исполнительным программистом и программистом, предлагающим качественные решения.
Хочу обратить внимание заказчиков, которые будут читать данную тему, что удаление заказов и других учётных объектов системы - прямой путь к коррупции для административного персонала интернет-магазина.
Также хочу обратить внимание на разницу между исполнительным программистом и программистом, предлагающим качественные решения.
29.10.2011 14:00
Спасибо Дмитрий, но думаю в свое время вы тоже не делали все идеально. Все приходит со временем и опытом, который появляется при выполнении самых разнообразных задач. И плюс то, что оплата услуг профессионала и новичка Магентo существенно отличается. И лично я не вижу ничего плохого в том, что владелец сайта сможет удалить уже не нужную для него информацию о заказах которые проводились давным давно, тем самым он проведет чистку базы данных и соответственно уменьшит ее размер. Тем более Магента дает возможность ручного удаления всех заказов, в моем случае его нужно автоматизировать. Хорошего вам дня!
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; ');
Если выполнить этот запрос напрямую в базе все отработает.
30.10.2011 05:04
Слова, выделенные жирным в моём предыдущем сообщении - введите в адресную строку Google.
Данный модуль стоит 20 евро.
Данный модуль стоит 20 евро.
30.10.2011 14:56
Я ето знаю поетому написал, что я не нашел бесплатного екстеншина который вы мне посоветовали.
30.10.2011 14:58
Это какое-то недоразумение: я бесплатный не советовал.
Я советовал именно тот, название которого написал.
Я советовал именно тот, название которого написал.
30.10.2011 15:07
Возможно мы не поняли друг друга. Однако платный вариант мне не подходит так, как мне не нужен данный модуль,. а лишь посмотреть на его функции. А платить 20 евро за то, чтобы взглянуть не является разумным решением проблемы. Ну по крайней мере в моем случае. Вы можете мне что-то посоветовать отталкиваясь от запроса который я написал выше? Почему оно не воспринимает WHERE и как это можно обойти. Так как именно в данной команде и есть ключ к решению моей проблемы.
30.10.2011 15:16
Если вы считаете, что решение данной проблемы не стоит 20 евро, значит, тему закрываем по причине низкой ценности.