Проблема в том, что если в группе магазина или инфосистемы очень много элементов, то удалив такую группу в корзину, из самой корзины её удалить не всегда возможно, т.к. перед удалением группы из неё сначала удаляются все элементы, что может быть долго и вызывает ошибку.
(!) Это при том, что лимит на время выполнения скрипта не достигнут (с запасом).
Конечно, может ещё и от хостинга зависит, но гораздо лучше было бы если элементы из корзины удалялись не за один запуск скрипта, а за несколько (аналогично переиндексации в поиске). В таком случае 100% проблем не будет.
А то сейчас, например, потребовалось удалить из корзины несколько папок магазина, а они не удаляются. Плохо ещё что в корзине не видно сколько товаров в группе.
Посмотрел в базе, а там по 5000 - 15000 товаров в каждой папке..., так что из корзины даже одну такую папку не удалить - глючит (хотя лимит 800 сек.; хостинг beget).
Пришлось папку восстановить и удалять товары частями, а потом уже саму папку.
Если бы удаление элементов в корзине выполнялось за несколько запусков скриптов с лимитом на кол-во удаляемых элементов, как при переиндексации поиска, то о такой проблеме можно было бы забыть.
А тут у клиента в корзине накопилось примерно 50 000 товаров. Теперь понятно почему - сам удалить не может.
Версия не старая
Малый бизнес, 7.0.1
Да, именно одна группа, в которой много товаров. В корзине 1 элемент, но много зависимых от него (товары). Лимит по времени не достигается 100%, просто ошибка 503 вылезала.
В том-то и мысль была, чтобы зависимые элементы удалять частями. Не знаю насколько это возможно.
Впрочем, не большая и проблема - просто незачем делать в одной группе по 10 000 товаров.
К сожалению пошаговое удаление внутри удаления одного элемента пока не планируется к реализации, полагаю проще всего запросом пометить все элементы в данной группе удаленными и штатными средствами удалить элементы.
Запрос:
UPDATE `shop_items` SET `deleted` = 1 WHERE `shop_group_id` = 777;
вместо 777 указать ИД удаленной группы
С пометкой товаров понятно - тогда помеченные товары появятся в корзине отдельно как товары и будут удаляться по частям.
Ясно, вопрос решён.
Спасибо.
В текущих версиях удаление и так происходит пошагово, вероятно у вас устаревшая версия.
Также, судя по описанию, вы удалили атомарный элемент - группу, а не 50.000 товаров, в которой очень много связанных элементов. В таком случае лимит достигается при удалении самой атомарной группы с зависимыми элементами, при этом это всё один элемент в корзине.