在庫数を表示させたが、在庫があるのに在庫数が0になる

フォーラム 使い方全般 在庫数を表示させたが、在庫があるのに在庫数が0になる

タグ: 

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

    <?php usces_the_itemZaikoNum(); ?>
    上記のコードを使用して在庫数を表示させたのですが、在庫があるにも関わらず、在庫数が0と表示されてしまいます。

    原因と解決法がわかる方がいらっしゃいましたら、教えていただけると助かります。m(__)m
    よろしくお願いいたします。

    ——————————————-
    WordPress のバージョン:5.2.4
    Welcart のバージョン:1.9.22
    PHP のバージョン:7.2.17
    Welcart専用の拡張プラグインとバージョン:WCEX Multi Price 1.1.6
    ご利用のテーマ:WALDEN
    サーバー:スターサーバー
    SSLの利用:常時SSL
    ——————————————–

    #88715
    yskysmr
    キーマスター

    こんにちは。

    usces_the_itemZaikoNum(); を使用したとのことですが、このコードはどのテンプレートに書かれたでしょうか。

    #88726
    kana
    参加者

    お返事ありがとうございます。
    wc_item_single.php に書きました。

    wp-content/themes/welcart_walden/wc_templates/wc_item_single.php

    合っておりますでしょうか?

    また、WCEX Multi Priceのプラグインを入れる前は在庫数が表示されていたような気がします。(うる覚えですが・・)
    WCEX Multi Priceのプラグインは何か関係ありますでしょうか?

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

    #88728
    yskysmr
    キーマスター

    kana 様

    WCEX Multi Price は関係ありません。
    では、wc_item_single.php のどこに書かれたでしょうか。usces_have_skus() のループの中に書かれているでしょうか。

    #88729
    kana
    参加者

    お返事ありがとうございます。
    下記のように書いておりますが、合っていますでしょうか?(<?php usces_the_itemZaiko(); ?>の隣です)
    よろしくお願いいたします。

    <?php if(usces_sku_num() === 1) : usces_have_skus(); ?>
    <!–1SKU(SKUを1つしかもたない時の表示)–>

    <h1 class=”item_page_title”><?php the_title(); ?></h1>

    <?php the_content(); ?>
    <?php if( $item_custom = usces_get_item_custom( $post->ID, ‘list’, ‘return’ ) ) : ?>

    <?php echo $item_custom; ?>

    <?php endif; ?>

    <!– end of exp –>

    <section class=”orderitem”>

    <?php if( usces_the_itemCprice(‘return’) > 0 ) : ?>
    <dl>
    <dt class=”field_name”><?php _e(‘List price’, ‘usces’); ?><?php usces_guid_tax(); ?></dt>
    <dd class=”field_cprice”><?php usces_the_itemCpriceCr(); ?></dd>
    </dl>
    <?php endif; ?>
    <dl>
    <dt class=”field_name”><?php _e(‘selling price’, ‘usces’); ?><?php usces_guid_tax(); ?></dt>
    <dd class=”field_price”><?php usces_the_itemPriceCr(); ?></dd>
    </dl>
    <dl>
    <dt class=”field_name”><?php _e(‘stock status’, ‘usces’); ?></dt>
    <dd><?php usces_the_itemZaiko(); ?>(在庫数:<?php usces_the_itemZaikoNum(); ?>)</dd>
    </dl>

    <?php if( $item_custom = usces_get_item_custom( $post->ID, ‘list’, ‘return’ ) ) : ?>

    <?php echo $item_custom; ?>

    <?php endif; ?>

    <form action=”<?php echo USCES_CART_URL; ?>” method=”post”>
    <?php usces_the_itemGpExp(); ?>

    <?php if (usces_is_options()) : ?>
    <table class=’skusingle’>
    <?php while (usces_have_options()) : ?>
    <tr><th><?php usces_the_itemOptName(); ?></th><td><?php usces_the_itemOption(usces_getItemOptName(),”); ?></td></tr>
    <?php endwhile; ?>
    </table>
    <?php endif; ?>
    <?php if( !usces_have_zaiko() ) : ?>

    <?php echo apply_filters(‘usces_filters_single_sku_zaiko_message’, __(‘Sold Out’, ‘usces’)); ?>(在庫個数 : <?php usces_the_itemZaikoNum(); ?>)

    <?php else : ?>

    <?php _e(‘Quantity’, ‘usces’); ?><?php usces_the_itemQuant(); ?><?php usces_the_itemSkuUnit(); ?><?php usces_the_itemSkuButton(__(‘Add to Shopping Cart’, ‘usces’), 0); ?>
    <?php usces_singleitem_error_message($post->ID, usces_the_itemSku(‘return’)); ?>

    <?php endif; ?>

    <!– end of skuform –>
    <?php echo apply_filters(‘single_item_single_sku_after_field’, NULL); ?>
    <?php do_action(‘usces_action_single_item_inform’); ?>
    </form>

    </section><!– end of action-section –>

    #88737
    kana
    参加者

    どなたか教えていただけませんでしょうか。
    よろしくお願いいたします。m(__)m

    #88738
    uishi
    参加者
    <?php if( !usces_have_zaiko() ) : ?>//usces_have_zaikoがtrueでなければ、次の処理。
    
    <?php echo apply_filters(‘usces_filters_single_sku_zaiko_message’, __(‘Sold Out’, ‘usces’)); ?>(在庫個数 : <?php usces_the_itemZaikoNum(); ?>)
    
    <?php else : ?>

    在庫がなければ、在庫数は0ではないですか。見当違いかな。
    もともとは在庫状態(品切れとか入荷待ちとか)を表示する部分。

    別件ですが掲示板等ではコードの部分はつかってバッククォートでくくるのがマナーかも。

    #88739
    yskysmr
    キーマスター

    kana 様

    記述は合っていると思います。<?php usces_the_itemZaiko(); ?> は表示されていますか?在庫状態の表示です。

    #88740
    kana
    参加者

    uishi様
    お返事ありがとうございます。
    私に知識がないことが悪いのですが、ご回答の意味が理解できません。(別件の件もわかりません。)
    大変申し訳ないのですが、もしも気が向きましたら具体的にどのようにしたらいいか教えていただけると嬉しいです。

    yskysmr様
    はい、<?php usces_the_itemZaiko(); ?> はホームページ上で表示されております。
    しかし、在庫があるのに<?php usces_the_itemZaiko(); ?>は0と表示されてしまうので困っております。
    なぜでしょうか・・。

    https://navy-field.net/item/001/

    こちらのページの在庫状態のところの(在庫数:0)の表示です。
    なぜでしょうか・・。

    • この返信は4年、 4ヶ月前にkanaが編集しました。
    #88744
    yskysmr
    キーマスター

    kana 様

    「在庫があるのに」と仰っていますが、この商品の SKU の在庫数に、数値を設定されていますでしょうか。

    #88745
    kana
    参加者

    商品マスター⇒SKU価格のところに、在庫数の数値を設定しております。
    Welcart Shop 商品リスト一覧にも、在庫数が表示されています。(画像を添付します)

    どこか間違っているところがありますでしょうか??

    Attachments:
    You must be logged in to view attached files.
    #88747
    yskysmr
    キーマスター

    kana 様

    ちゃんと在庫数は登録されているようです。そうなりますと、なぜ、usces_the_itemZaikoNum() で在庫数が表示されないのかはわかりません。
    弊社のテスト環境で kana 様のコードをそのまま記述したところ、在庫数は表示されました。

    • この返信は4年、 4ヶ月前にyskysmrが編集しました。
    #88755
    kana
    参加者

    何か、原因の確認方法等ありませんでしょうか?

    #88757
    kana
    参加者

    ちなみに、welcartのデフォルトテーマでも同じように在庫数が0になったのでテーマの問題ではないですし、プラグインもすべて確かめましたが違いました。

    #88758
    uishi
    参加者

    2か所あったんですね。失礼しました。

    はなしの流れからしか推測できないんですが、別プラグインを使っていて今回の仕様に乗り換えだと思うんですが、以前使用してた投稿に書き換えだけを行ってた場合、以前の_sku_(_isku_だったかな?)がデータベースに残ったままとかないんでしょうか。

    yskysmr様がアドバイスしている通り、var_dunp($skus)とかprint_r($skus)とかで、ページに登録してある$skus(か$sku)の内容を確認してみてみるか、データーベースを確認してみるかしてみてはどうでしょう。

    在庫数はecho $skus[該当する添え字]['stocknum']($skuかな?)でも表示するような気がしますが、添え字(0~データの最大個数-1のうちの一つ)が表示したいものの物でないとダメなです。

    また的外れならごめんなさい。

    ちなみに在庫状態と在庫数は関係がないですよね。在庫有と0、売り切れと1でも問題なく動く。スレ主さんのように在庫状態と在庫数の両方を表示しているときには問題ですが。

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