Миграция на minishop2
Всем доброго времени суток. Пытаюсь перенести поля с ТВ в опции minishop2
Делаю запрос в базу данных
В ответ получаю ошибку
#1062 — Дублирующаяся запись '12311' по ключу 'PRIMARY'
Если же запрос делаю REPLACE
Делаю запрос в базу данных
INSERT INTO brzhprf1x_ms2_products
(id,price)
select contentid,value from brzhprf1x_site_tmplvar_contentvalues where
tmplvarid=6Переношу данные с тв с id 6 в поле price минишопВ ответ получаю ошибку
#1062 — Дублирующаяся запись '12311' по ключу 'PRIMARY'
Если же запрос делаю REPLACE
REPLACE INTO brzhprf1x_ms2_products
(id,price)
select contentid,value from brzhprf1x_site_tmplvar_contentvalues where
tmplvarid=6То все переносится. Но возникает следующая проблема при переносе поля старой ценыREPLACE INTO brzhprf1x_ms2_products
(id,old_price)
select contentid,value from brzhprf1x_site_tmplvar_contentvalues where
tmplvarid=7Делая такой запрос почему то перезаписываются поля PRICE при этом значения в поле старая цена записываются. Что я делаю не так подскажите пожалуйста. Комментарии: 46
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Вот пример синхры tv поля price:
Fatal error: Uncaught Error: Call to a member function getTVValue() on null in core/components/console/processors/exec.class.php(24): eval()'d code:6 Stack trace: #0 core/components/console/processors/exec.class.php(24): eval() #1
core/model/modx/modprocessor.class.php(185): ConsoleExecProcessor->process() #2 core/model/modx/modx.class.php(1770): modProcessor->run() #3 /core/model/modx/modconnectorresponse.class.php(144): modX->runProcessor('exec', Array, Array) #4 /core/model/modx/modconnectorrequest.class.php(86): modConnectorResponse->outputContent(Array) #5 /core/model/modx/modconnectorrequest.class.php(73): modConnectorRequest->prepareResponse(Array) #6 www/manager/components/console/connectors/console.php(11): modConnectorR in /core/components/console/processors/exec.class.php(24): eval()'d code on line 6
SQL time: 0,0001 s
SQL queries: 1
PHP time: 0,0009 s
Total time: 0,0010 s
Memory: 0 MB
я специально закомментировал строчку кода.
на ночь глядя ошибся
msProduct надо указывать везде
Все опции товара можно посмотреть через var_dump($product->toArray()) (скрин)
Пример:
Никто не подскажет как сделать запись именно в такие поля?
Есть процессоры, один минус они медленные. Если товаров очень много(примерно >1000) то это будет долго или выйдет за лимит выполнения скрипта.
Пользуюсь поиском видимо не так ищу. Подскажите пожалуйста, уже голова отваливается никак не могу разобраться.
Может за деньги поможете?
«У вас же заданы конкретные значения для опций, мне же надо эти самые опции вытаянуть из дополнительных полей.»
Ничего трудного же нет в этом, вот чуть просто подумать надо
Просто ведь? да?
Если у вас TV с множеством значений, то его сначала надо разобрать и преобразовать в массив, чтобы условно получилось ['белый', 'кофе', 'серый'] и потом уже присвоить нужной вам опции. Т.е. надо посмотреть что выдает $resource->getTVValue('id или название ТВ') и преобразовать в нужные данные.
Сделал так только ничего не получилось. Параметры не перенеслись.
php_value max_execution_time 300
Не получиться увеличить время на обработку?
Получил
SQL time: 0.1978 s
SQL queries: 1654
PHP time: 4.3618 s
Total time: 4.5596 s
Memory: 12 MB
Но ничего не обновилось
Изучай документацию, и методы работы с компонентом minishop, если не понимаешь что к чему, пиши в раздел modx.pro/work
Спасибо за помощь всем.