简体   繁体   English

以编程方式添加的捆绑产品未在fronend,magento问题中显示

[英]Bundle products added programmatically not showing in fronend, magento issue

I have added bundled products by fetching data from the CSV. 我通过从CSV获取数据来添加捆绑产品。 Products added in this manner are visible in admin panel but not in front end. 以这种方式添加的产品在管理面板中可见,但在前端则不可见。 I have gone through all the threads but got no solution. 我经历了所有线程,但没有解决方案。 Please help me with this situation. 请帮我解决这种情况。

require_once($magentoPath . 'includes/config.php');
  require_once($magentoPath . 'app/Mage.php');
  $storeID = 1;
  $websiteIDs = array(1);
  $cats = array("12");

  Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);

  $productCheck = Mage::getModel('catalog/product');

  $p = array(
    'sku_type' => 0,
    'sku' => '687',
    'name' => "BarProduct",
    'description' => 'Foo',
    'short_description' => 'Bar',
    'type_id' => 'bundle',
    'attribute_set_id' => 4,
    'weight_type' => 0,
    'visibility' => 4,
    'price_type' => 0,
    'price_view' => 0,
    'status' => 1,
    'created_at' => strtotime('now'),
    'category_ids' => $cats,
    'store_id' => $storeID,
    'website_ids' => $websiteIDs
  );

  $productCheck->setData($p);
  Mage::register('product', $product);
  $optionRawData = array();
  $optionRawData[0] = array(
    'required' => 1,
    'option_id' => '',
    'position' => 0,
    'type' => 'select',
    'title' => 'FooOption',
    'default_title' => 'FooOption',
    'delete' => '',
  );

  $selectionRawData = array();
  $selectionRawData[0] = array();
  $selectionRawData[0][] = array(
    'product_id' => 337,
    'selection_qty' => 1,
    'selection_can_change_qty' => 1,
    'position' => 0,
    'is_default' => 1,
    'selection_id' => '',
    'selection_price_type' => 0,
    'selection_price_value' => 0.0,
    'option_id' => '',
    'delete' => ''
  );
Mage::register('productCheck', $productCheck);
 Mage::register('current_product', $productCheck);
 $productCheck->setCanSaveConfigurableAttributes(false);
 $productCheck->setCanSaveCustomOptions(true);
  // Set the Bundle Options & Selection Data
  $productCheck->setBundleOptionsData($optionRawData);
  $productCheck->setBundleSelectionsData($selectionRawData);
  $productCheck->setCanSaveBundleSelections(true);
  $productCheck->setAffectBundleProductSelections(true);

  $productCheck->save();
  $indexer = Mage::getSingleton('index/indexer');
foreach ($indexer->getProcessesCollection() as $process) {
    $process->reindexAll();
}
  • Please note that wherever If I re-save my product through admin panel it starts displaying on front-end. 请注意,无论我在哪里通过管理面板重新保存产品,它都会开始显示在前端。

Mage::register('product', $product); => Mage::register('product', $productCheck); => Mage::register('product', $productCheck);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM