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

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

[EC-CUBE 2.12.3] 商品RSSに商品画像URLと在庫情報を含める方法
https://www.nakweb.com/weekly/ec-cube-2-12-3-%e5%95%86%e5%93%81rss%e3%81%ab%e5%95%86%e5%93%81%e7%94%bb%e5%83%8furl%e3%81%a8%e5%9c%a8%e5%ba%ab%e6%83%85%e5%a0%b1%e3%82%92%e5%90%ab%e3%82%81%e3%82%8b%e6%96%b9%e6%b3%95/

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

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>

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