Ответить Новая тема Новый опрос 
 Не удаляются товары
grabos
Cпециалист
Сообщений: 138
Регистрация: 24-05-2010


17-03-2016 18:24
Добрый день. В Престе 1.4.7.0 невозможно удалить некоторые товары. Думаю это происходит если они добавлены в аксессуары к другому товару. Так как товаров более 2000 искать, к какому товару либо товарам добавлен как аксессуар очень проблематично. Что нужно поправить, чтобы решить эту проблему? Спасибо.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


18-03-2016 01:48
Цитата:( grabos @ 17-03-2016 19:24 Смотреть сообщение )
невозможно удалить некоторые товары. Думаю это происходит если они добавлены в аксессуары к другому товару.

Подобное невозможно! При удалении товара выполняются deleteAccessories и deleteFromAccessories.

Протестировал на prestashop 1.4.4: товар находящийся в аксессуарах у другого товара был удалён, ошибок нет.
Приложите отображаемую ошибку при удалении подобного товара.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
grabos
Cпециалист
Сообщений: 138
Регистрация: 24-05-2010


18-03-2016 03:54
скрин во вложении


Изображения:
скрин.jpg - Размер файла93.96KB, Скачиваний: 288 (Нажмите для увеличения)
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


18-03-2016 14:40
1. Отключите отображение ошибок / оповещений в файле: /config/config.inc.php.
2. Проверьте все имеющиеся заказы, данный товар, возможно, имеется в не подтвержденных заказах.
Ошибку можно определить в файле /classes/Product.php метод delete.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
grabos
Cпециалист
Сообщений: 138
Регистрация: 24-05-2010


18-03-2016 14:50
Как понял, здесь надо поправить?


public function delete()
{
// check if the product is not used in a non validated order
if (!$this->isDeletable())
return false;

if (!GroupReduction::deleteProductReduction($this->id))
return false;

Hook::deleteProduct($this);
if (!parent::delete() OR
!$this->deleteCategories(true) OR
!$this->deleteProductAttributes() OR
!$this->deleteProductFeatures() OR
!$this->deleteTags() OR
!$this->deleteCartProducts() OR
!$this->deleteAttributesImpacts() OR
!$this->deleteAttachments() OR
!$this->deleteCustomization() OR
!SpecificPrice::deleteByProductId((int)($this->id)) OR
!$this->deletePack() OR
!$this->deleteProductSale() OR
!$this->deleteSceneProducts() OR
!$this->deleteSearchIndexes() OR
!$this->deleteAccessories() OR
!$this->deleteFromAccessories())
return false;

if (!_PS_MODE_DEMO_ AND !$this->deleteImages())
return false;

if ($id = ProductDownload::getIdFromIdProduct($this->id))
if ($productDownload = new ProductDownload($id) AND !$productDownload->delete(true))
return false;
return true;
}

public function deleteSelection($products)
{
$return = 1;
foreach ($products AS $id_product)
{
$product = new Product((int)($id_product));
$return &= $product->delete();
}
return $return;
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


18-03-2016 15:24
Цитата:( grabos @ 18-03-2016 15:50 Смотреть сообщение )
Как понял, здесь надо поправить?

Нет, необходимо профилировать данный код и найти строку или метод на котором происходит остановка сценария удаления.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
grabos
Cпециалист
Сообщений: 138
Регистрация: 24-05-2010


18-03-2016 15:48
Цитата:( Алекс @ 18-03-2016 11:24 Смотреть сообщение )
Цитата:( grabos @ 18-03-2016 15:50 Смотреть сообщение )
Как понял, здесь надо поправить?
Нет, необходимо профилировать данный код и найти строку или метод на котором происходит остановка сценария удаления.

Мои познания похоже закончились. ((( Как это сделать уже не знаю
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
grabos
Cпециалист
Сообщений: 138
Регистрация: 24-05-2010


23-03-2016 22:57
Может кто подскажет?
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Ответить Новая тема Новый опрос