Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

Запретить создание новых product_option_value_id при сохранении товара


Recommended Posts

Ситуация такая. При сохранении товара, даже если была изменена просто цена, меняется product_option_value_id и товары которые лежат в корзине у клиента с выбранными опциями приходят без этих опций. Как запретить изменение product_option_value_id при сохранении товара? (OC 2.2)
Спасибо!

Link to comment
Share on other sites


вариантов немного

1. использовать для изменения цены какой-нибудь модуль, не задействующий стандартный метод editProduct из admin\model\catalog\product.php

2. переписать код движка в данном методе

навскидку - использовать сверку хеша опций товара при сохранении

если изменился - использовать стандартную перезапись опций, если нет - не трогать опции

Link to comment
Share on other sites

6 минут назад, AlexDW сказал:

вариантов немного

1. использовать для изменения цены какой-нибудь модуль, не задействующий стандартный метод editProduct из admin\model\catalog\product.php

2. переписать код движка в данном методе

навскидку - использовать сверку хеша опций товара при сохранении

если изменился - использовать стандартную перезапись опций, если нет - не трогать опции

Минус в том, что они могут поменять и название товара, описание и все равно id поменяется. Вы случайно не оказываете подобные услуги по второму варианту? В 3-ем опенкарте такой проблемы нет. Вся зараза на второй версии. 

Link to comment
Share on other sites


в тройке абсолютно то же самое, сравните дистрибутивы

и неважно что меняете - при сохранении товара опции сначала удаляются, потом заполняются заново

Link to comment
Share on other sites

11 минут назад, AlexDW сказал:

в тройке абсолютно то же самое, сравните дистрибутивы

и неважно что меняете - при сохранении товара опции сначала удаляются, потом заполняются заново

Да, Вы правы. В ocStore такая проблема решена. Во сколько обойдется такой фикс? Очень много заказов без опций приходит. 

Link to comment
Share on other sites


1 час назад, serg91100 сказал:

Да, Вы правы. В ocStore такая проблема решена. Во сколько обойдется такой фикс? Очень много заказов без опций приходит. 

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

Link to comment
Share on other sites


15 минут назад, Moonwalker сказал:

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

То есть решения подобного нет? Заказы без опций, это очень не приятно. 

Тестил ocStore 3.0.2.0, смотрел product_option_value_id и он не менялся при сохранении. 

Link to comment
Share on other sites


Не знаю, может, и есть. Но тут либо логику опенкарта править, либо работать напрямую с БД, минуя карточку товара в админке ))

Link to comment
Share on other sites


3 часа назад, serg91100 сказал:

В ocStore такая проблема решена.

 

1 час назад, serg91100 сказал:

Тестил ocStore 3.0.2.0, смотрел product_option_value_id и он не менялся при сохранении. 

 

без понятия что у вас за правки в движке,

но и в оригинальном opencart, и в ocStore перед сохранением при редактировании товара через админку опции сначала удаляются

$this->db->query("DELETE FROM " . DB_PREFIX . "product_option WHERE product_id = '" . (int)$product_id . "'");
$this->db->query("DELETE FROM " . DB_PREFIX . "product_option_value WHERE product_id = '" . (int)$product_id . "'");

 

Link to comment
Share on other sites

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

 

 

без понятия что у вас за правки в движке,

но и в оригинальном opencart, и в ocStore перед сохранением при редактировании товара через админку опции сначала удаляются

$this->db->query("DELETE FROM " . DB_PREFIX . "product_option WHERE product_id = '" . (int)$product_id . "'");
$this->db->query("DELETE FROM " . DB_PREFIX . "product_option_value WHERE product_id = '" . (int)$product_id . "'");

 

Вы лучше скажите, вы сможете этим заняться и в какую цену?

Link to comment
Share on other sites


11 минут назад, AlexDW сказал:

нет, не занимаюсь

ищите исполнителя в разделе платных услуг

Жаль. Спасибо. Попробую. 

Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

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.