<?php
$noda
= 548;
print " <a href='/admin/commerce/products/$noda'>$noda</a><p> </p>";
$pr = commerce_product_load($noda);
$pr->field_price_krasnodar['und'][0]['amount'] = '55500';
commerce_product_save($pr);?>
Выдаёт ошибку:
PDOException: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'field_price_krasnodar_currency_code' cannot be null: INSERT INTO {field_data_field_price_krasnodar} (entity_type, entity_id, revision_id, bundle, delta, language, field_price_krasnodar_amount, field_price_krasnodar_currency_code, field_price_krasnodar_data) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5, :db_insert_placeholder_6, :db_insert_placeholder_7, :db_insert_placeholder_8); Array ( [:db_insert_placeholder_0] => commerce_product [:db_insert_placeholder_1] => 548 [:db_insert_placeholder_2] => 1570 [:db_insert_placeholder_3] => product [:db_insert_placeholder_4] => 0 [:db_insert_placeholder_5] => und [:db_insert_placeholder_6] => 55500 [:db_insert_placeholder_7] => [:db_insert_placeholder_8] => ) в функции field_sql_storage_field_storage_write() (строка 622 в файле /var/www/********/data/www/*****/modules/field/modules/field_sql_storage/field_sql_storage.module).
Помогите пожалуйста. Спасибо. D7
Комментарии
А если поля цены в Ноде заполнены - то всё работает.
Получается что я не могу программно заполнить пустые поля Ноды.
что поиск говорит? мне сказал https://www.drupal.org/forum/support/post-installation/2014-02-28/how-i-...
вставляй 1 запись.
Мой код вообще не смотрели?
Там нет работы с БД.
Нашёл! Ура!
А что было?
Да понятно что. Цена была без указания валюты
напишите пожалуйста - как её указать
<?php
$pr->field_price_krasnodar['und'][0]['currency_code'] = 'USD';
?>
Вместо USD подставить код краснодарского рубля))
Нет.
Понимаете. Этих массивов вообще не существует. - Тут и подсказка.
Хотя... А может быть этого и будет достаточно?
Но я делал немножко не так.
Строго говоря, вся эта возня с полями (или непосредственно кодом значений полей) должна быть заменена на работу с методами enity wrapper (для commerce в 7.x есть такая возможность). Тогда многое решается автоматом.
Тогда, конечно, вам не составит труда набросать тут код для замены НЕСУЩЕСТВУЮЩЕГО значения цены в Коммерсе. Спасибо.
В свою очередь, думаю, что вам не составит труда объяснить, что же в итоге подразумевается под несуществующим значением (и на основании чего вы сделали вывод, что оно не существует) и в чём конкретно у вас сложность с указанием этой цены.
Просто для примера работы с entity wrapper - у xandeadx'а давным-давно висит вводный манул: http://xandeadx.ru/blog/drupal/549 Хорошо показано, в чём удобство работы со значениями полей сущности через врэппер.
Там рассматриваются в основном ноды. Но принципиально этот процесс не отличается от commerce_product. Тут вам уже следует погуглить самостоятельно.
То есть 3 строчек кода - не будет?
От меня? Нет, конечно.
Других дел полно, кроме как гуглить вопросы, связанные с позавчерашним днём.