Jump to content
Sign in to follow this  
igarik

Удаление всех товаров из админки opencart 1.5

Recommended Posts

Здравствуйте, можно ли реализовать кнопку в админке, когда нажимаем его, то удаляются все товары в админке.
Нашел решение, через MySql,

Выполнить его можно будет, как вручную, так через phpmyadmin.
SQL-запрос для удаления товаров в Opencart

TRUNCATE TABLE oc_product;
    TRUNCATE TABLE oc_product_attribute;
    TRUNCATE TABLE oc_product_description;
    TRUNCATE TABLE oc_product_discount;
    TRUNCATE TABLE oc_product_image;
    TRUNCATE TABLE oc_product_option;
    TRUNCATE TABLE oc_product_option_value;
    TRUNCATE TABLE oc_product_related;
    TRUNCATE TABLE oc_product_related;
    TRUNCATE TABLE oc_product_reward;
    TRUNCATE TABLE oc_product_special;
    TRUNCATE TABLE oc_product_tag;
    TRUNCATE TABLE oc_product_to_category;
    TRUNCATE TABLE oc_product_to_download;
    TRUNCATE TABLE oc_product_to_layout;
    TRUNCATE TABLE oc_product_to_store;
    TRUNCATE TABLE oc_review;
    DELETE FROM oc_url_alias WHERE query LIKE 'product_id=%';
Если вы увидете ошибку, на подобе:
1
#1146 - Table 'p254341_smarket.oc_product_tag' doesn't exist 
То уберите эту строку в запросе.

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

Share this post


Link to post
Share on other sites

я даже боюсь предположить какая нужда может заставить каждый день удалять все товары из магазина.

Share this post


Link to post
Share on other sites

Не понимаю необходимость удаления товаров на уже работающем магазине

 

Ведь товары привязывается еще и к заказам.

Share this post


Link to post
Share on other sites

Не понимаю необходимость удаления товаров на уже работающем магазине

 

Ведь товары привязывается еще и к заказам.

Не обманывайте людей.  :-)  Товары никак к заказу не привязываются.

В заказе создаётся копия всех нужных данных из товаров и опций.

Удаление самого товара никак не повлияет на заказ с этим товаром.

Share this post


Link to post
Share on other sites

В истории заказов тоже копии создаются?

Share this post


Link to post
Share on other sites

я даже боюсь предположить какая нужда может заставить каждый день удалять все товары из магазина.

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

В истории заказов тоже копии создаются?

Вы про таблицу order_history?

Там сохраняется история изменения статусов заказа. К товарам никакого отношения не имеет.

 

Товары сохраняются в таблице order_product.

Опции сохраняются в таблице order_option.

 

Привязка опций в заказе идет по order_product_id.

В этих таблицах сохраняются имена и товаров и опций.

Если после заказа перименовать товар, то в заказе он будет под старым именем. Пока не будет внесено изменений в заказ (при изменении заказа он пересоздаётся на клиентской части и все данные обновляются).

Edited by mpn2005

Share this post


Link to post
Share on other sites

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

тогда у вас неправильный подход к решению задачи. У товара есть статус "выключено", например.

Share this post


Link to post
Share on other sites

Не обманывайте людей.  :-)  Товары никак к заказу не привязываются.

В заказе создаётся копия всех нужных данных из товаров и опций.

Удаление самого товара никак не повлияет на заказ с этим товаром.

 

Вы про таблицу order_history?

Там сохраняется история изменения статусов заказа. К товарам никакого отношения не имеет.

 

Товары сохраняются в таблице order_product.

Опции сохраняются в таблице order_option.

 

Привязка опций в заказе идет по order_product_id.

В этих таблицах сохраняются имена и товаров и опций.

Если после заказа перименовать товар, то в заказе он будет под старым именем. Пока не будет внесено изменений в заказ (при изменении заказа он пересоздаётся на клиентской части и все данные обновляются).

 

еще дополню:

если редактировать заказ, в котором есть удаленные из БД товары - при редактировании эти товары из заказа удалятся автоматически

Share this post


Link to post
Share on other sites

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

 

т.е вы каждый раз при загрузке товаров заполняете их карточки (описание, картинки и тд) - а потом удаляете?

и через некоторое время, когда этот товар снова появляется - все по новой?

 

удалять товар имеет смысл лишь когда он 100% больше не появится

если вероятность его появления есть - достаточно отключать эти товары в админке, чтобы они не показывались в магазине.

 

и даже это, с точки зрения ПС и продвижения - нехорошо.

лучше, если создадите дополнительный статус типа "временно недоступен" - так ваша страница будет индексирована поисковиками

грубо, больше страниц - больше вероятность получить посетителя, больше посещаемость, больше доверия со стороны ПС.

 

а вот регулярное выпадение страниц из индекса (при удалении товаров) - оказывает обратное действие

Share this post


Link to post
Share on other sites

Не обманывайте людей.  :-)  Товары никак к заказу не привязываются.

В заказе создаётся копия всех нужных данных из товаров и опций.

Удаление самого товара никак не повлияет на заказ с этим товаром.

Печалько

 

 

CREATE TABLE `oc_order_product` (

  `order_product_id` int(11) NOT NULL AUTO_INCREMENT,

  `order_id` int(11) NOT NULL,

  `product_id` int(11) NOT NULL,

  `name` varchar(255) NOT NULL,

  `model` varchar(64) NOT NULL,

  `quantity` int(4) NOT NULL,

  `price` decimal(15,4) NOT NULL DEFAULT '0.0000',

  `total` decimal(15,4) NOT NULL DEFAULT '0.0000',

  `tax` decimal(15,4) NOT NULL DEFAULT '0.0000',

  `reward` int(8) NOT NULL,

  PRIMARY KEY (`order_product_id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

 

Совсем нет связей!

Share this post


Link to post
Share on other sites

Печалько

 

Совсем нет связей!

Этот product_id используется только для редактирования заказа, о чём было написано выше.

Пока заказ не редактируется он с товарами не связан. И ваше упорство этого никак не изменит.

 

Ознакомьтесь с кодом редактирования заказа в админке. Узнаете много нового.

Share this post


Link to post
Share on other sites

Необходимость в несуществующем товаре.

 

Причем здесь мое упорство?

Если удалять товары - то удалять везде, где есть хоть какая-то ссылка.

 

Держать product_id на несуществующий - бессмысленно, хотя бы потому, что если вдруг, произойдет наложение product_id, то изменится истинная картина в заказах

И опять покажу код

CREATE TABLE `oc_order_product` (
  `order_product_id` int(11) NOT NULL AUTO_INCREMENT,
  `order_id` int(11) NOT NULL,
  `product_id` int(11) NOT NULL,
  `name` varchar(255) NOT NULL,
  `model` varchar(64) NOT NULL,
  `quantity` int(4) NOT NULL,
  `price` decimal(15,4) NOT NULL DEFAULT '0.0000',
  `total` decimal(15,4) NOT NULL DEFAULT '0.0000',
  `tax` decimal(15,4) NOT NULL DEFAULT '0.0000',
  `reward` int(8) NOT NULL,
  PRIMARY KEY (`order_product_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

Где язык для name? в order

Где курс? там же

 

Где SKU - упс... нет! О каком учете может быть речь?

Share this post


Link to post
Share on other sites

Необходимость в несуществующем товаре.

Причем здесь мое упорство?

Если удалять товары - то удалять везде, где есть хоть какая-то ссылка.

Держать product_id на несуществующий - бессмысленно, хотя бы потому, что если вдруг, произойдет наложение product_id, то изменится истинная картина в заказах

И опять покажу код

CREATE TABLE `oc_order_product` (  `order_product_id` int(11) NOT NULL AUTO_INCREMENT,  `order_id` int(11) NOT NULL,  `product_id` int(11) NOT NULL,  `name` varchar(255) NOT NULL,  `model` varchar(64) NOT NULL,  `quantity` int(4) NOT NULL,  `price` decimal(15,4) NOT NULL DEFAULT '0.0000',  `total` decimal(15,4) NOT NULL DEFAULT '0.0000',  `tax` decimal(15,4) NOT NULL DEFAULT '0.0000',  `reward` int(8) NOT NULL,  PRIMARY KEY (`order_product_id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
Где язык для name? в order

Где курс? там же

Где SKU - упс... нет! О каком учете может быть речь?

Не продолжайте писать чушь.

Цена заказа берётся из total и ничего другое уже на цену заказа не влияет.

Язык-то в заказанном товаре зачем?

Языки валюта будет ровно та, что была у пользователя во время оформления заказа.

Сделайте несколько тестовых заказов с одним товаром, но разными валютами и языками. И посмотрите что будет в таблице.

Потом удалите товары и в заказе всё будет на месте, пока вы его не попробуте изменить.

Что касается неактуального id товара, то не забываете про настройку срока редактирования заказов.

Т.к. если магазин например работает 10 лет, то не стоит товары которых никогда не будет держать всесь этот срок.

Edited by mpn2005

Share this post


Link to post
Share on other sites

назовите мне хоть одну причину "не будет держать всесь этот срок."

 

Держать товар, да не имеет смысла. Держать инфу о товаре смысл имеет.

 

пока вы его не попробуте изменить.

 

Так товар удален, заказ изменен, статистика изменена. Учет изменен.

Share this post


Link to post
Share on other sites

назовите мне хоть одну причину "не будет держать всесь этот срок."

 

Держать товар, да не имеет смысла. Держать инфу о товаре смысл имеет.

 

Так товар удален, заказ изменен, статистика изменена. Учет изменен.

Удаление товара не приведёт к порче заказов, если мы их не редактируем.

И данные о заказе и его товарах хранятся в одельных таблицах.

 

P.S.: И мы уже зря засоряем тему, которая в принципе не об этом.

Share this post


Link to post
Share on other sites

Та все о том :) Об учете.

Товар удален - учета нет.

Share this post


Link to post
Share on other sites

Та все о том :) Об учете.

Товар удален - учета нет.

 

да как нет?

система учета должна брать данные о товаре именно из заказов, а не из таблиц товаров

иначе если спустя месяц цена товара изменилась - уже весь учет ни к черту ;)

 

и данные даже о удаленных товарах в заказах хранятся безболезненно - потому как там хранятся данные о товаре на момент его заказа

что потом с этим товаром случилось - неважно, до момента редактирования заказа

 

механизм движка таков, что при редактировании заказа данные о товарах (на основе product_id из заказов) начинают браться из таблицы товаров

и если редактировать заказ, в котором товар стоил 100р, а сейчас он стоит 200р - при сохранении отредактированного заказа его стоимость будет 200р

 

и удаленные из БД товары из заказа выпадут вообще - по этой же причине

Share this post


Link to post
Share on other sites

Вы ведете учет по model...

 

Продолжайте.

Share this post


Link to post
Share on other sites

Вы ведете учет по model...

 

Продолжайте.

Учёт материя не однозначная. Всё зависит от множества факторов и типов товара.

 

А оформленный заказ это вполне определённая сущность.

Да он не универсален, и порой приходится делать доработки в сохранении заказа.

Т.к. там не все данные о товаре.

Но связывать заказ с товаром по id и не хранить копию - это архитектурно не очень хорошее решение.

Т.к. с момента заказа может что-то измениться (например вес, размер или даже артикул), а уже оформленный заказ это статическая информация о товаре на момент оформления заказа.

Share this post


Link to post
Share on other sites

Вы ведете учет по model...

 

Продолжайте.

 

неа, есть связанная таблица order_product ;)

post-688391-0-42204200-1452370830_thumb.png

 

как раз на скриншоте - в тестовый движок на локалке импортированы заказы с рабочего магазина

фактически товаров нет, но это не мешает составить отчет по продажам на основе данных из таблиц order и связанных с ней :-)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.