Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


igarik

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 
То уберите эту строку в запросе.

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

Надіслати
Поділитися на інших сайтах


Есть в этом модуле https://opencartforu...н-акций-скидок/

 

Ага... шикарная штука - мгновенно ее отключил!

Надіслати
Поділитися на інших сайтах

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

 

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

Надіслати
Поділитися на інших сайтах

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

 

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

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

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

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

Надіслати
Поділитися на інших сайтах

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

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

Надіслати
Поділитися на інших сайтах


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

Надіслати
Поділитися на інших сайтах


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

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

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

 

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

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

 

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

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

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

Змінено користувачем mpn2005
Надіслати
Поділитися на інших сайтах

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

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

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

 

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

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

 

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

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

 

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

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

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

 

еще дополню:

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

Надіслати
Поділитися на інших сайтах

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

 

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

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

 

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

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

 

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

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

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

 

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

Надіслати
Поділитися на інших сайтах

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

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

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

Печалько

 

 

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;

 

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

Надіслати
Поділитися на інших сайтах

Печалько

 

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

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

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

 

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

Надіслати
Поділитися на інших сайтах

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

 

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

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

 

Держать 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 - упс... нет! О каком учете может быть речь?

Надіслати
Поділитися на інших сайтах

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

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

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

Держать 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 лет, то не стоит товары которых никогда не будет держать всесь этот срок.

Змінено користувачем mpn2005
Надіслати
Поділитися на інших сайтах

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

 

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

 

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

 

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

Надіслати
Поділитися на інших сайтах

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

 

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

 

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

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

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

 

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

Надіслати
Поділитися на інших сайтах

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

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

 

да как нет?

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

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

 

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

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

 

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

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

 

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

Надіслати
Поділитися на інших сайтах

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

 

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

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

 

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

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

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

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

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

Надіслати
Поділитися на інших сайтах

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

 

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

 

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

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

 

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

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

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.