[解決済み] 商品コードからデータを取得したい
-
投稿者投稿
-
2011年9月30日 10:02 AM #50692wada参加者
季節商品などの特集ページで、商品IDを指定し、そこから商品一覧を表示したいと思っています。
カテゴリーページのような、商品が一覧で表示できる形にしたいです。
商品IDから、URLやサムネイル、価格などを取得できるコードはあるんでしょうか?
2011年10月3日 1:14 AM #62948nanbuキーマスターこんにちは。
URLは、
<?php the_permalink(); ?>
サムネイルは、
<?php usces_the_itemImage(0, 300, 300); ?>
価格は、
<?php usces_the_itemPriceCr(); ?>
必要な情報はほとんどテンプレートタグで取得できます。
ただ、Welcart 専用テンプレートタグのリファレンスが用意できていません。申し訳ありませんが、Welcart Default テーマ内のwc_templates/wc_item_single.php テンプレートなどを参考にしてみていただけますでしょうか。
また、テンプレートタグはusc-e-shop/functions/template_func.php に記述されています。
リファレンス作成を急ぎたいと思います。
よろしくお願いいたします。
2011年10月4日 5:19 AM #62949wada参加者ご指南いただいたテンプレートタグは、ループ内で使うものですよね…
こちらのページに、カートへ入れるボタンのショートコードはありましたが、
https://www.welcart.com/community/archives/1208#more-1208
ほかに、記事内へ商品情報を引用できるコードはないでしょうか…
ボタンではなく、紹介したい商品の情報を取得したいのです…
特集ページとして、本文に記事を記入。
その特集に関連する商品を5~15程度、記事の下に表示させていきたいです。
数が多いため、カスタムフィールドで記入欄を追加、
そこへスペース区切りで商品コードを記入し、
それをテンプレート側で処理し、商品一覧にできないかなと思ったのですが…
商品コードから、ページのIDを割り出して、get_parmalink等で取得していくのかなと思ったのですが、
welcart自体に、商品コードから情報を取得するタグがあるのではと思い…
的はずれなことを言っていたらすみません。
2011年10月5日 7:44 AM #62950nanbuキーマスター商品コードからpost_id を取得するテンプレートタグはございませんが、以下のようにしていただくと取得できます。
global $usces;
$post_id = $usces->get_postIDbyCode( $item_code );2011年10月7日 12:45 AM #62951wada参加者教えていただいたコードと、テンプレートタグのPHPを参考に
以下のコードで取得しました。
global $usces;
$post_id = $usces->get_postIDbyCode( $item_id );
$post = get_post($post_id);
$fields = $usces->get_skus( $post_id );
$price = $fields['price'][0];
$post_url = get_parmalink($post_id);
$post_title = $post->post_title;
$post_image = usces_the_itemImage(0,300,300,$post,"return");無事表示できました、ありがとうございました。
2011年10月11日 12:03 AM #62952nanbuキーマスター$usces->get_skus( $post_id )
は次のバージョン(v1.1)から仕様が変りますので、価格を取得するのであればテンプレートタグをこの様に使うと良いかと思います。$price = usces_the_firstPrice( 'return', $post );
また、そのまま表示させるのであればこちらが便利です。
<?php usces_the_firstPriceCr(); ?>
2011年10月24日 1:08 AM #62953wada参加者そのようにコードを変更致します。
返信有難う御座いました。
2012年2月1日 9:07 AM #629549steps参加者お世話になります。
バージョン(v1.1)にアップデートを行い、各機能の動作チェックを行っております。
$usces->get_skus( $post_id )の仕様が変更になったとのことですが、どのように変わったのか説明しているページはありませんか?
これまで、次のようなコードで商品のSKUタイトルや価格情報などを取得していましたが、バージョン(v1.1)では取得できなくなりました。
// Get SKU Info
$datas = $usces->get_skus( $post_id, 'ARRAY_A' );
$disp= $datas[$sku]['disp'];
$zaikonum = $datas[$sku]['zaikonum'];
$zaiko = $datas[$sku]['zaiko'];
$zaiko_stat = $usces->zaiko_status[$zaiko];
$tax = $usces->getGuidTax();
$gptekiyo = $datas[$sku]['gptekiyo'];
$skuPrice = $datas[$sku]['price'];
$skuPrice = number_format($skuPrice);
$skuCprice = $datas[$sku]['cprice'];
$skuCprice = number_format($skuCprice );
$SkuUnit= $datas[$sku]['unit'];どのように変更すれば良いのかアドバイスいただければ幸いです。
2012年2月1日 10:16 AM #629559steps参加者バージョン(v1.1)での$usces->get_skusのソースを確認しました。
なるほど、SKUアイテムをすべて配列で返すようになったのですね。目的はSKUコードからSKU情報を取得することなので、ループで判定すればOKそうですね。
$usces->get_skus以外に、商品コードとSKUコードの組み合わせで、SKU情報を取得する方法がもし他にもあればご教授いただけるとありがたいです。
2012年2月2日 2:27 AM #62956nanbuキーマスターこんにちは、9steps さん
get_skus()の第2引数がポイントになります。
第2引数が’sort’の場合、配列のキーは商品登録時のSKUの並び順が数値としてキーになります。従ってそのままループさせて取り出せば管理パネルで設定した通りの並びでSKUを表示させることができます。
変わって第2引数を’code’にしますと、配列のキーがSKUコードになります。従ってSKU情報を取得したいだけの場合は、このようにして配列($skus)を取得し、SKU情報は$skusで該当のSKU情報が配列で取得できます。
$skus = $usces->get_skus( $post_id, 'code' );
echo $skus['SKUコード']['name'];
echo $skus['SKUコード']['cprice'];
echo $skus['SKUコード']['price'];
echo $skus['SKUコード']['unit'];
echo $skus['SKUコード']['stocknum'];
echo $skus['SKUコード']['stock'];
echo $skus['SKUコード']['gp']; -
投稿者投稿
- このトピックに返信するにはログインが必要です。