Labo

[EC-CUBE 2.12.3] 商品RSSに商品ステータスを含める方法

2013年04月06日 / 投稿者名:fukap


前回に引き続いてRSSネタです。前回のネタはこちら。

 

[EC-CUBE 2.12.3] 商品RSSに商品画像URLと在庫情報を含める方法
https://ec-cube.nakweb.com/blog/2064.html

 

今度は商品ステータスの出力にトライしてみたいと思います。

 

1.data/class/pages/rss/LC_Page_Rss_Products.php の lfGetProductsAllData メソッドを以下のように修正
(商品ステータスを取得というコメントの後ろ)

    /**
     * lfGetProductsAllData.
     *
     * @return array $arrProduct 商品情報の配列を返す
     */
    function lfGetProductsAllData() {
        $objQuery = SC_Query_Ex::getSingletonInstance();
        //商品情報を取得
        $arrProduct = $this->lfGetProductsAllclass($objQuery);
        // 値の整形
        foreach ($arrProduct as $key => $val) {
            // 画像ファイルのURLセット
            if (file_exists(IMAGE_SAVE_REALDIR . $arrProduct[$key]['main_list_image'])) {
                $dir = IMAGE_SAVE_RSS_URL;
            } else {
                $dir = IMAGE_TEMP_RSS_URL;
            }
            $arrProduct[$key]['main_list_image'] = $dir . $arrProduct[$key]['main_list_image'];
            if (file_exists(IMAGE_SAVE_REALDIR . $arrProduct[$key]['main_image'])) {
                $dir = IMAGE_SAVE_RSS_URL;
            } else {
                $dir = IMAGE_TEMP_RSS_URL;
            }
            $arrProduct[$key]['main_image'] = $dir . $arrProduct[$key]['main_image'];
            if (file_exists(IMAGE_SAVE_REALDIR . $arrProduct[$key]['main_large_image'])) {
                $dir = IMAGE_SAVE_RSS_URL;
            } else {
                $dir = IMAGE_TEMP_RSS_URL;
            }
            $arrProduct[$key]['main_large_image'] = $dir . $arrProduct[$key]['main_large_image'];
            // ポイント計算
            $arrProduct[$key]['point_max'] = SC_Utils_Ex::sfPrePoint(
                $arrProduct[$key]['price02_max'],
                $arrProduct[$key]['point_rate']
            );
            $arrProduct[$key]['point_min'] = SC_Utils_Ex::sfPrePoint(
                $arrProduct[$key]['price02_min'],
                $arrProduct[$key]['point_rate']
            );
            // 商品ステータスを取得
            $objProduct = new SC_Product_Ex();
            $arrProduct[$key]['productStatus'] = $objProduct->getProductStatus($val['product_id']);
        }
        return $arrProduct;
    }

2.data/Smarty/templates/default/rss/products.tpl の pubDate の下あたりを以下のように修正

        <pubDate><!--{$arrProduct.update_date|date_format:"%Y-%m-%dT%T+09:00"}--></pubDate>
        <!--{if count($arrProduct.productStatus) > 0}-->
            <productStatus>
                <!--{foreach from=$arrProduct.productStatus[$arrProduct.product_id] key=k item=status}--><!--{if $k != 0}-->,<!--{/if}--><!--{$status}--><!--{/foreach}-->
            </productStatus>
        <!--{/if}-->
    </item>

あまりニーズの無いネタでスマソ。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

* Copy This Password *

* Type Or Paste Password Here *

*

コメント欄にコードを挿入したい場合は、[php][/php] を使ってください。