前回に引き続いて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>
あまりニーズの無いネタでスマソ。