web-dev-qa-db-ja.com

商品ビューページのUbercartの商品数量がsmsung 2/10として表示されますか?

商品を追加し、その商品の数が10であると言いました。1つ購入した場合、そのように販売された10/1のうちの商品ビューページに表示します。

利用可能な貢献されたモジュール、またはそれを行うカスタムの方法はありますか?商品コンテンツタイプのフィールドとして数量を追加できますが、その後はどうすればよいですか?

3
Ram

在庫の合計および販売済みアイテムを表示するコードスニペット:

$output = '';

$array_sku = uc_product_get_models($node->nid, FALSE);          

foreach ($array_sku as $sku) {
    $stock_level = uc_stock_level($sku);

    $stock_counts = db_select('uc_order_products', 'up')
                    ->fields('up', array('nid','qty'))
                    ->condition('up.model', $sku, '=')
                    ->execute()
                    ->fetchAll();

    $quantity_count = 0;

    if(isset($stock_counts))  {   
        foreach($stock_counts as $stock_count ) {
            $quantity_count += $stock_count->qty;
        }   
    }

    $total = $stock_level +  $quantity_count;

    if($total == 0){
        $total = 1;
    }           

    $output .= $total . " / " . $quantity_count . " Sold out";          
  }

 print $output;

上記のコードは、製品のさまざまなSKUごとに在庫レベルをチェックすることを確認してください。製品の属性があり、各属性に異なるSKUがある場合、製品のstockごとにsKUが表示されます。

「ストック」構成のフレッシュな「Ubercart」インストールで完璧に機能します。

このコードは、テーマディレクトリのnode--product.tpl.phpファイルに追加できます。

1

これは答えではありませんが、以下のコードを使用して在庫レベルを見つけることができます。node.tpl.phpに入力して、var $ stock_htmlを適切な場所に印刷します。おそらくnode-product.tpl.php _<?php print $stock_html ?>_。

_<?php
if ($node->type == 'product') {
  $arr_sku = uc_stock_skus($node->nid);
  $stock_html .='<table>';
  foreach($arr_sku as $sku){
    $stocklevel = uc_stock_level($sku);
    if ($stocklevel) {
      if ($stocklevel < 1) {
        $stocklevel = '<span class="nostock">'.$stocklevel.'</span>';
      }
      $stock_html .='<tr><td>'.$sku.'</td><td>:&nbsp;&nbsp;'.$stocklevel.'</td></tr>';
    }
  }
  $stock_html .='</table>';
}
?>
_

または、これを試すことができます http://www.ubercart.org/comment/60577

1
Bala
         <?php
                $array_sku = uc_product_get_models($node->nid, FALSE);          
                foreach ($array_sku as $sku) {
                    $stock_level = uc_stock_level($sku);
                    //$stock_count = db_select('uc_order_products', 'up')->fields('up', array('nid'))->condition('up.model', $sku, '=')->execute()->rowCount();

                    $stock_counts = db_select('uc_order_products', 'up')
                                    ->fields('up', array('nid','qty'))
                                    ->condition('up.model', $sku, '=')
                                    ->execute()
                                    ->fetchAll();
                    $quantity_count = 0;
                    if(isset($stock_counts))
                    {   
                        foreach($stock_counts as $stock_count )
                        {
                            $quantity_count += $stock_count->qty;
                        }   
                    }
                    $total = $stock_level +  $quantity_count;
                    if($total == 0){
                        $total = 1;
                    }           
                    $output .= $total . " / " . $quantity_count . " Sold out";          
                }
          ?>    

これにより、製品の正確な在庫レベルと販売レベルが出力されます。

0
Ram