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

Одна цена на все товары.


bot002

Recommended Posts

Подскажите, нужно устроить финальную распродажу. Нужно установить всем товарам одинаковую цену. Как это сделать? Модуля перелопатил, в основном дают изменить цену на процент или на определенное число. А вот установить одну цену для всех товаров... Не нашел

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


или в файле модели (catalog/model/catalog/product.php) найти строку:

'price'            => ($query->row['discount'] ? $query->row['discount'] : $query->row['price']),

и поменять на:

'price'            => 500, //($query->row['discount'] ? $query->row['discount'] : $query->row['price']),

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

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

3 минуты назад, auditor сказал:

или в файле модели (catalog/model/catalog/product.php) найти строку:


'price'            => ($query->row['discount'] ? $query->row['discount'] : $query->row['price']),

и поменять на:


'price'            => 500, //($query->row['discount'] ? $query->row['discount'] : $query->row['price']),

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

Забыли ещё файл system/library/cart/cart.php

Заказ же ж будет с ценами, какие в базе, если там не сделать изменений тоже

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

2 часа назад, PaulKravchenko сказал:

UPDATE `oc_product` SET `price` = 500

 

где 500 = цена товара

а oc_ = префикс БД

А назад потом вернуть цены можно?

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


 

57 минут назад, bot002 сказал:

Что это?

акции
 

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


12 часов назад, PaulKravchenko сказал:

UPDATE `oc_product` SET `price` = 500

 

где 500 = цена товара

а oc_ = префикс БД

если я таким образом изменю цены, будет ли возможность как-то их назад вернуть? или это безвозвратный запрос?

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


23 минуты назад, bot002 сказал:

если я таким образом изменю цены, будет ли возможность как-то их назад вернуть? или это безвозвратный запрос?

нет, вернуть конечно не сможете

Я бы на вашем месте воспользовался бесплатным модулем: Экспорт-импорт export import .xlsx

- сделать экспорт товаров и сохранить копию полученного файла

- установить для всех одну цену (хоть через sql хоть в файле экспорта с последующим импортом)

- когда понадобится вернуть - сделать экспорт еще раз (чтобы кол-во товара было актуальным) - скопировать колонку price из первого файла (до изменения цен) - вставить ее в новый файл и импортировать

 

Может есть и более изящные варианты, но этот без ковыряния в коде и составления sql запросов экспорта колонки price и последующего его импорта с апдейтом данных

 

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

3 минуты назад, nikifalex сказал:

из бэкапа

я в этом деле дилетант. Не могли бы Вы мне подсказать.

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

А можно сделать бекап только одной таблицы? именно цен. 

И что будет, если я продам по 100 грн допустим 100 товаров, потом захочу вернуть цены? В заказах будут другие суммы?

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


1 минуту назад, PaulKravchenko сказал:

нет, вернуть конечно не сможете

Я бы на вашем месте воспользовался бесплатным модулем: Экспорт-импорт export import .xlsx

- сделать экспорт товаров и сохранить копию полученного файла

- установить для всех одну цену (хоть через sql хоть в файле экспорта с последующим импортом)

- когда понадобится вернуть - сделать экспорт еще раз (чтобы кол-во товара было актуальным) - скопировать колонку price из первого файла (до изменения цен) - вставить ее в новый файл и импортировать

 

Может есть и более изящные варианты, но этот без ковыряния в коде и составления sql запросов экспорта колонки price и последующего его импорта с апдейтом данных

 

Понял, спс. Забыл указать, что у меня древняя 1.5 опенкарт версия)

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


8 минут назад, PaulKravchenko сказал:

Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 71 bytes) in /home/ukrcoi00/shmotie.com/www/system/PHPExcel/Classes/PHPExcel/CachedObjectStorage/CacheBase.php on line 164

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


Вам хороший совет дали - удобнее\проще всего (и можно вернуть обратно) воспользоваться коробочным функционалом и сделать временную\акционную цену на все товары.

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

Spoiler

INSERT INTO oc_product_special (oc_product_special.product_id, oc_product_special.customer_group_id, oc_product_special.priority, oc_product_special.price, oc_product_special.date_start, oc_product_special.date_end)
SELECT DISTINCT
op.product_id
, 1
, 0
, 500
, CAST('2019.04.11' AS DATE)
, CAST('2019.12.31' AS DATE)
FROM oc_product op, oc_product_to_category optc WHERE op.status = 1
 AND op.product_id = optc.product_id

-- AND optc.category_id = 61

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

Spoiler

DELETE FROM oc_product_special WHERE date_start = CAST('2019.04.11' AS DATE)

 

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

 

Ну или покупайте модули. Там все прощее\удобнее\понятнее :)

Змінено користувачем 100napb
  • +1 1
Надіслати
Поділитися на інших сайтах

4 часа назад, 100napb сказал:

Вам хороший совет дали - удобнее\проще всего (и можно вернуть обратно) воспользоваться коробочным функционалом и сделать временную\акционную цену на все товары.

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

  Скрыть контент

INSERT INTO oc_product_special (oc_product_special.product_id, oc_product_special.customer_group_id, oc_product_special.priority, oc_product_special.price, oc_product_special.date_start, oc_product_special.date_end)
SELECT DISTINCT
op.product_id
, 1
, 0
, 500
, CAST('2019.04.11' AS DATE)
, CAST('2019.12.31' AS DATE)
FROM oc_product op, oc_product_to_category optc WHERE op.status = 1
 AND op.product_id = optc.product_id

-- AND optc.category_id = 61

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

  Скрыть контент

DELETE FROM oc_product_special WHERE date_start = CAST('2019.04.11' AS DATE)

 

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

 

Ну или покупайте модули. Там все прощее\удобнее\понятнее :)

Это топ.

Благодарю!

Огонь.

Счастья вам столько же, сколько подарили мне!

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


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

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

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

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

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

Вхід

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

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

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

×
×
  • Створити...

Important Information

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