我在结帐时有几个产品,我需要能够获得通过代码为它们选择的所有自定义选项。

任何帮助深表感谢!

最佳答案

我只给你一个产品的例子。假设您知道所需产品的Sku(例如,将其作为“ABCDE”)。这样您就可以获取该产品的ID。

该代码将类似于:

$productSku = "ABCDE";
$product = Mage::getModel('catalog/product');
$productId = $product->getIdBySku( $productSku );
$product->load($productId);

/**
 * In Magento Models or database schema level, the product's Custom Options are
 * executed & maintained as only "options". So, when checking whether any product has
 * Custom Options or not, we should check by using this method "hasOptions()" only.
 */
if($product->hasOptions()) {
    echo '<pre>';

    foreach ($product->getOptions() as $o) {
        $optionType = $o->getType();
        echo 'Type = '.$optionType;

        if ($optionType == 'drop_down') {
            $values = $o->getValues();

            foreach ($values as $k => $v) {
                print_r($v);
            }
        }
        else {
            print_r($o);
        }
    }

    echo '</pre>';
}

我认为这将使您开始使用。

根据变量“$optionType”中选项的类型,您需要调用另一个嵌套的“foreach”循环。我曾在文本框,文本字段,下拉菜单中工作,但未处理其他类型。因此,我想您需要自己做一些RnD。

09-19 23:23