0

オプションを使用して、画像などの追加情報を追加しています。そして、このデータを option_type_id と option_id を使用して自分のテーブルに保存しました。フロントエンドで、自分のテーブル データをデフォルト オプションに結合したいと考えています。したがって、これらのオプションには画像情報が付属しています。

$_option->getValues() 

この関数はオプション データを返します。ここで、クエリを生成するこの関数の実装に到達する必要があるため、結合を追加して独自のデータを取得できます。

ありがとう

4

2 に答える 2

0

これが私が成功したものです。

製品のリソース コレクションをオーバーライドしました

 class MYC_COPSwatch_Model_Resource_Product_Option_Collection extends Mage_Catalog_Model_Resource_Product_Option_Collection{        

     public function addValuesToResult($storeId = null)
{
    if ($storeId === null) {
        $storeId = Mage::app()->getStore()->getId();
    }
    $optionIds = array();
    foreach ($this as $option) {
        $optionIds[] = $option->getId();
    }
    if (!empty($optionIds)) {
        /** @var $values Mage_Catalog_Model_Option_Value_Collection */
        $values = Mage::getModel('catalog/product_option_value')
            ->getCollection()                
            ->addTitleToResult($storeId)
            ->addPriceToResult($storeId)                

            ->addSwatchToResult($storeId)   //USED Join in this function             

            ->setOrder('sort_order', self::SORT_ORDER_ASC)
            ->setOrder('title', self::SORT_ORDER_ASC);

        foreach ($values as $value) {
            $optionId = $value->getOptionId();
            if($this->getItemById($optionId)) {
                $this->getItemById($optionId)->addValue($value);
                $value->setOption($this->getItemById($optionId));
            }
        }
    }

    return $this;
} 

誰かの時間を節約するかもしれません。

于 2013-10-05T08:06:31.187 に答える