Как программно установить Sku Type & Price Type of Bundle Product в Magento? - PullRequest
3 голосов
/ 28 июня 2010

Я добавил Bundled Product в Magento программно, используя все опции / свойства Simple Product и использование 3 методов специально для Bundle Options: -

  1. setBundleOptionsData ()
  2. setBundleSelectionsData ()
  3. setCanSaveBundleSelections ()

В результате этого только что добавленный Bundle Product прекрасно отображается в разделе Admin с некоторыми значениями по умолчанию, принятыми для следующихсвойства: -

  1. sku_type
  2. тип_веса
  3. тип_доставки
  4. вид_цены
  5. тип_цены

Однако этот комплектный продукт вообще не отображается в интерфейсе, я не знаю почему.Может кто-нибудь помочь мне?Я пытался искать, но безрезультатно.Пожалуйста, кто-нибудь, пожалуйста, подскажите, что я делаю неправильно?

Также мне нужно контролировать вышеупомянутые специальные свойства Bundle Product, чтобы их можно было изменять также во время программной вставки,Кто-нибудь может помочь мне в этом вопросе также?

Любая помощь с благодарностью.

1 Ответ

2 голосов
/ 28 июня 2010

После довольно большого количества испытаний я нашел какой-то путь внутрь него.
Если вы очень четко посмотрите на метод saveAction (), на странице "ProductController.php" модуля "Adminhtml" вынайдет там строку типа "$product->save();".

Если вы проникнете в этот метод "save ()", вы увидите, что Magento использует какой-то метод "setData ()" для свойств простого продукта.

Таким образом, если вы используете поля "цена", "вес", "sku", "имя", "описание", "short_description", ... как одномерный массив, вам просто нужно добавитьнеобходимые свойства Bundle Product для этого списка массивов, а Magento сделает все остальное.

Итак, я имею в виду, что массив будет содержать следующие простые элементы: -

Array
(
  ['name'] => 'simple',
  ['description'] => 'test',
  ['short_description'] => 'simple test',
  ['sku_type'] => 0,
  ['sku'] => 'simple01',
  ['weight_type'] => 1,
  ['weight'] => 12,
  ['price_type'] => 1,
  ['price'] => 250,
  ['shipment_type'] => 0
)

Теперь вам нужно передать этот массив с помощью метода "setData()",и бинго вы идете.

Просто помните, что Magento действительно красив, если вы верите, в противном случае он такой же грубый и грубый.
Надеюсь, это поможет!

...