【发布时间】:2013-09-09 15:50:44
【问题描述】:
我需要以编程方式更新 Magento 中数千个类别的页面布局 + 随机化产品订单。这是一段代码:
/* @var $_childColorCategory Mage_Catalog_Model_Category */
$_childColorCategory = Mage::getModel('catalog/category')->load($_childColorId);
/* positions rand */
$_positions = $_childColorCategory->getProductsPosition();
if (count($_positions) > 1) {
$_order = range(1, count($_positions));
shuffle(&$_order);
$_newPositions = array_combine(array_keys($_positions), $_order);
$_childColorCategory->setPostedProducts($_newPositions);
}
$_childColorCategory
->setPageLayout('two_columns_right')
->save();
当然是循环等。
问题是布局没有被更新(嵌套产品的顺序改变得很好):我在仪表板中看到所有受影响的类别都有正确的('two_columns_right')布局,但在手动点击保存按钮之前它实际上并没有在前端工作在管理员中。如果我单击按钮(不进行任何更改),那么布局实际上就在前端,而且 - 对该类别的任何进一步的编程布局更改都很好。有任何想法吗?谢谢
附: 这不是 100% 的缓存问题。 Magento 已更新到 1.7 - 不走运。 多商店设置(4 个网站)。
【问题讨论】: