X

Magento: удаление shipment-а через базу

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

Первым делом, делаем бэкап базы.

Для начала, нам нужно найти order_id, его можно посмотреть в админке, в урле ордера или через базу в таблице sales_order (sales_order.entity_id). Пусть это будет 608.

Следующим шагом ищем id шипмента (sales_shipment.entity_id), через админку или вот так

SELECT * FROM sales_shipment WHERE order_id=608

Пусть в ответ мы получим 48. Теперь удаляем записи по sales_shipment.entity_id

DELETE FROM sales_shipment_comment WHERE parent_id=48;
DELETE FROM sales_shipment_track WHERE parent_id=48;
DELETE FROM sales_shipment_item WHERE parent_id=48;
DELETE FROM sales_shipment_grid WHERE entity_id=48;
DELETE FROM sales_shipment WHERE entity_id=48;
DELETE FROM inventory_shipment_source WHERE entity_id=48;

Последним шагом, сбрасывает кол-во товаров которое было отправлено (без этого шага, кнопка Ship не появится в админке)

UPDATE sales_order_item SET qty_shipped=0 WHERE order_id=608

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

Если найдете другие таблицы, дайте знать в комментах.

Категории: Бездна