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











