Magento - используя Mage для редактирования продукта? - PullRequest
2 голосов
/ 13 июля 2010

Я пытаюсь интегрировать некоторые функции Magento в свою пользовательскую CMS, чтобы моим клиентам было проще обновлять некоторые из их продуктов.

У меня уже есть классы, написанные для получения всей необходимой мне информации о данных, но я пытаюсь выяснить, как сохранить изменения в продукте таким же образом (например, такие атрибуты, как цвет, размер, упаковка).Можно ли это сделать с помощью mage?

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

Mage::app();<br/> $this->model = Mage::getModel('catalog/product');

Кто-нибудь еще пробовал это раньше?

Ответы [ 2 ]

5 голосов
/ 14 июля 2010

Сначала вы захотите загрузить определенный продукт.Вы можете сделать это, используя метод load () и передав идентификатор продукта:

$this->model = Mage::getModel('catalog/product')->load(1111);

Затем вы можете установить (изменить) данные вашего продукта следующим образом:просто запустите метод save (), чтобы сохранить продукт:

$this->model->save();
2 голосов
/ 15 июля 2010

Итак, после долгих хлопот я собрал код, который работает:

function setAttribute($pid,$options)
{
  Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
  $this->model = Mage::getModel('catalog/product')->load($pid);
  foreach ($options as $k=>$v)
  {
    $this->model->setData($k,$v);
  }
  $this->model->save();
}

Вы передаете идентификатор продукта и массив данных, которые вы хотите обновить для указанного продукта.
что-то вроде ниже:

$options = array('labels'=>"No",
'sizee_us_gal'=>1.98,
'size_l'=>7.5,
'makes_us_gal'=>7,
'makes_l'=>23,
'timeframe_weeks'=>4,
'composition'=>"grapes",
'packed'=>"case of 2"
);

Надеюсь, это поможет всем.

...