【问题标题】:Magento: create order programatically: Configurable product issueMagento:以编程方式创建订单:可配置的产品问题
【发布时间】:2014-08-11 21:27:26
【问题描述】:
【问题讨论】:
标签:
magento
configuration
magento-1.8
【解决方案1】:
如果你有孩子的sku,你可以这样做:
$_product = Mage::getModel('catalog/product')->loadByAttribute('sku', 'mysku-123');
如果你有尺寸:
$childProducts = Mage::getModel('catalog/product_type_configurable')->getUsedProducts(null,$product);
foreach ($childProducts as $child) {
if ($child->getSize()==$size){
//add the product to the order
}
}
然后你在孩子中循环找出大小。
【解决方案2】:
在添加可配置产品以编程方式创建订单/报价时,我遇到了类似的问题。添加产品时需要在选项数组中设置super_attribute。该值必须包含区分相关产品的属性(例如:颜色、尺寸)。所以,它会是这样的:
$buyOptions = array(
'qty' => 1,
'super_attribute' => array($attributeId => $attributeValue) //ex: array(131 => 53)
);
$quote->addProduct($product, new Varien_Object($buyOptions));
我不知道如果您想通过他们的 sku 选择关联产品,但如果您只想从可配置的产品中选择特定的关联产品,上面的代码将起作用。我相信本质上是一样的。
ps:我在这里回答这个问题是因为在 magento stackexchange 中它被标记为重复(我认为是错误的)。