[解決済み] 商品コードからデータを取得したい

フォーラム 使い方全般 [解決済み] 商品コードからデータを取得したい

  • このトピックには9件の返信、3人の参加者があり、最後にnanbuにより12年、 1ヶ月前に更新されました。
10件の投稿を表示中 - 1 - 10件目 (全10件中)
  • 投稿者
    投稿
  • #50692
    wada
    参加者

    季節商品などの特集ページで、商品IDを指定し、そこから商品一覧を表示したいと思っています。

    カテゴリーページのような、商品が一覧で表示できる形にしたいです。

    商品IDから、URLやサムネイル、価格などを取得できるコードはあるんでしょうか?

    #62948
    nanbu
    キーマスター

    こんにちは。

    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 に記述されています。

    リファレンス作成を急ぎたいと思います。

    よろしくお願いいたします。

    #62949
    wada
    参加者

    ご指南いただいたテンプレートタグは、ループ内で使うものですよね…

    こちらのページに、カートへ入れるボタンのショートコードはありましたが、

    https://www.welcart.com/community/archives/1208#more-1208

    ほかに、記事内へ商品情報を引用できるコードはないでしょうか…

    ボタンではなく、紹介したい商品の情報を取得したいのです…

    特集ページとして、本文に記事を記入。

    その特集に関連する商品を5~15程度、記事の下に表示させていきたいです。

    数が多いため、カスタムフィールドで記入欄を追加、

    そこへスペース区切りで商品コードを記入し、

    それをテンプレート側で処理し、商品一覧にできないかなと思ったのですが…

    商品コードから、ページのIDを割り出して、get_parmalink等で取得していくのかなと思ったのですが、

    welcart自体に、商品コードから情報を取得するタグがあるのではと思い…

    的はずれなことを言っていたらすみません。

    #62950
    nanbu
    キーマスター

    商品コードからpost_id を取得するテンプレートタグはございませんが、以下のようにしていただくと取得できます。

    global $usces;
    $post_id = $usces->get_postIDbyCode( $item_code );

    #62951
    wada
    参加者

    教えていただいたコードと、テンプレートタグの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");

    無事表示できました、ありがとうございました。

    #62952
    nanbu
    キーマスター

    $usces->get_skus( $post_id ) は次のバージョン(v1.1)から仕様が変りますので、価格を取得するのであればテンプレートタグをこの様に使うと良いかと思います。

    $price = usces_the_firstPrice( 'return', $post );

    また、そのまま表示させるのであればこちらが便利です。

    <?php usces_the_firstPriceCr(); ?>

    #62953
    wada
    参加者

    そのようにコードを変更致します。

    返信有難う御座いました。

    #62954
    9steps
    参加者

    お世話になります。

    バージョン(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'];

    どのように変更すれば良いのかアドバイスいただければ幸いです。

    #62955
    9steps
    参加者

    バージョン(v1.1)での$usces->get_skusのソースを確認しました。

    なるほど、SKUアイテムをすべて配列で返すようになったのですね。目的はSKUコードからSKU情報を取得することなので、ループで判定すればOKそうですね。

    $usces->get_skus以外に、商品コードとSKUコードの組み合わせで、SKU情報を取得する方法がもし他にもあればご教授いただけるとありがたいです。

    #62956
    nanbu
    キーマスター

    こんにちは、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'];

10件の投稿を表示中 - 1 - 10件目 (全10件中)
  • このトピックに返信するにはログインが必要です。