バージョン選択

フォーラム

メニュー

オンライン状況

23 人のユーザが現在オンラインです。 (16 人のユーザが フォーラム を参照しています。)
登録ユーザ: 1
ゲスト: 22
cof もっと...

サイト内検索

バグ報告 > 管理機能 > チケット #2451 「受注編集> ダウンロード商品を購入した受注に対して、商品追加すると数量が消えてしまう」について

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
sumida
投稿日時: 2014/1/9 20:48
対応状況: −−−
仙人
登録日: 2013/2/10
居住地: 広島県呉市ときどき瀬戸内海
投稿: 641
チケット #2451 「受注編集> ダウンロード商品を購入した受注に対して、商品追加すると数量が消えてしまう」について
調べてみました。
直接の原因は、LC_Page_Admin_Order_Edit.php 関数 setProductsQuantity にあるようです。
この関数で、各お届け先の数量を合計して、受注情報(dtb_order_detail)に設定し直している。
ダウンロード商品は、お届け先(dtb_shipment_item)にないため、ここで、合計の数量が設定されていない。
修正案:
(1) 合計前の数量を取得(dtb_order_detail)
  $arrQuantity['quantity'] = $objFormParam->getValue('quantity');
(2) 合計(dtb_shipment_item)がある商品だけ、数量を更新

    public function setProductsQuantity(&$objFormParam)
    {
        $arrShipmentsItems = $objFormParam->getSwapArray(array('shipment_product_class_id','shipment_quantity'));

        // 配送先が存在する時のみ、商品個数の再設定を行います
        if(!SC_Utils_Ex::isBlank($arrShipmentsItems)) {
            foreach ($arrShipmentsItems as $arritems) {
                foreach ($arritems['shipment_product_class_id'] as $relation_index => $shipment_product_class_id) {
                    $arrUpdateQuantity[$shipment_product_class_id] += $arritems['shipment_quantity'][$relation_index];
                }
            }

            $arrProductsClass = $objFormParam->getValue('product_class_id');
/* changed
            $arrProductsQuantity = $objFormParam->getValue('quantity');
changed */
            $arrQuantity['quantity'] = $objFormParam->getValue('quantity');
/* changed */
            foreach ($arrProductsClass as $relation_key => $product_class_id) {
// added
if ($arrUpdateQuantity[$product_class_id]) {
// added
                $arrQuantity['quantity'][$relation_key] = $arrUpdateQuantity[$product_class_id];
// added
}
// added
            }
            $objFormParam->setParam($arrQuantity);
        }
    }
sumida
投稿日時: 2014/1/12 20:32
対応状況: −−−
仙人
登録日: 2013/2/10
居住地: 広島県呉市ときどき瀬戸内海
投稿: 641
Re: チケット #2451 「受注編集> ダウンロード商品を購入した受注に対して、商品追加すると数量が消えてしまう」について
というか。
ショップ画面では、
そもそも、通常商品とダウンロード商品を同じカートに入れられないので、これはこれで修正するとしても、

同じカートに入れられないように、商品選択などで、制限する必要があるような。
sumida
投稿日時: 2014/3/12 19:59
対応状況: −−−
仙人
登録日: 2013/2/10
居住地: 広島県呉市ときどき瀬戸内海
投稿: 641
Re: チケット #2451 「受注編集> ダウンロード商品を購入した受注に対して、商品追加すると数量が消えてしまう」について
埋もれそうなので。

とりあえず、該当チケットへ情報として追加していただければ。
shutta
投稿日時: 2014/4/8 23:26
対応状況: −−−
仙人
登録日: 2010/2/4
居住地: 関西
投稿: 835
Re: チケット #2451 「受注編集> ダウンロード商品を購入した受注に対して、商品追加すると数量が消えてしまう」について
チケットの投稿者です。
気付くのが遅れてすみません。

本件、

チェンジセット 23361
http://svn.ec-cube.net/open_trac/changeset/23361

にて、kimoto(red)さんによって修正して頂いたみたいです。
sumida様の修正方法とは異なるようですが、別のバグ修正も内包しているそうですので、こちらの修正内容を生かした方が良いのかも
しれません。

遅れて申し訳ありませんでしたが、有難うございました。


----------------

リゾート会員権(エクシブ等)の売買・仲介

shutta
投稿日時: 2014/4/8 23:37
対応状況: −−−
仙人
登録日: 2010/2/4
居住地: 関西
投稿: 835
Re: チケット #2451 「受注編集> ダウンロード商品を購入した受注に対して、商品追加すると数量が消えてしまう」について
引用:

sumidaさんは書きました:
というか。
ショップ画面では、
そもそも、通常商品とダウンロード商品を同じカートに入れられないので、これはこれで修正するとしても、

同じカートに入れられないように、商品選択などで、制限する必要があるような。


管理側的には、商品種別の異なる商品が含まれても困る理由は恐らくないんじゃないかと思います。
フロント側は、通常商品とダウンロード商品では送料が異なったりするために、実装や仕様的にどうすれば良いか困る(面倒?)ために、消極的に一緒に買えないようにしているんじゃないかなぁと思います。

また、管理側は可能な限り何でもできた方が良いと思いますし、どうせ自分のショップですから、受注の変更内容に関しては管理者の責任で判断してもらえば良いかと思います。


----------------

リゾート会員権(エクシブ等)の売買・仲介

sumida
投稿日時: 2014/4/9 15:52
対応状況: −−−
仙人
登録日: 2013/2/10
居住地: 広島県呉市ときどき瀬戸内海
投稿: 641
Re: チケット #2451 「受注編集> ダウンロード商品を購入した受注に対して、商品追加すると数量が消えてしまう」について
shutta 様

私も最初は、そう思っていました。(自由度があるので)
ただ、あえて「同じカートに入れられないように、商品選択などで、制限する必要があるような。」というのは、
たまたま、data/Smarty/templates/admin/order/disp.tplの

    <!--▼お届け先情報ここから-->
    <h2>お届け先情報</h2>
    <!--{if $arrForm.product_type_id.value[0] != $smarty.const.PRODUCT_TYPE_DOWNLOAD}-->
    <!--{foreach name=shipping from=$arrAllShipping item=arrShipping key=shipping_index}-->
.
.
    <!--{/foreach}-->
    <!--{/if}-->
    <!--▲お届け先情報ここまで-->


のコードを見かけました。
ここでは、1個めの商品がダウンロード商品であれば、お届け先情報を表示しない仕様になっていたので、商品種別の混在は、許していないと解釈しました。
shutta
投稿日時: 2014/4/9 23:20
対応状況: −−−
仙人
登録日: 2010/2/4
居住地: 関西
投稿: 835
Re: チケット #2451 「受注編集> ダウンロード商品を購入した受注に対して、商品追加すると数量が消えてしまう」について
なるほど、逆にdisp.tplの記載の意図と整合性が取れなくなりそうですね。

経緯を調べてみましたが、

#1325 ステータス管理の注文番号から受注を編集できる
http://svn.ec-cube.net/open_trac/ticket/1325



チェンジセット 21035
http://svn.ec-cube.net/open_trac/changeset/21035

で追加されていました。

その際のコメントには、

「ダウンロード商品」時の「お届け先」表示を抑止しました。
とだけ説明が記載されています。

恐らく、お届け先が無い場合に表示が空欄になってしまうので、その場合に見栄えを良くしたかったのではないかと思います。
このチケットにより、受注詳細画面が復活したのですが、2.4系の頃と異なり、ダウンロード商品の概念が追加されているために、お届け先が無いケースを考慮したのではないかと推測します。

だとすれば、disp.tpl の方は、お届け先情報の有無で表示を切り替えるように改修するのが良いのではないかと思いますが、如何でしょうか?


----------------

リゾート会員権(エクシブ等)の売買・仲介

sumida
投稿日時: 2014/4/10 9:23
対応状況: −−−
仙人
登録日: 2013/2/10
居住地: 広島県呉市ときどき瀬戸内海
投稿: 641
Re: チケット #2451 「受注編集> ダウンロード商品を購入した受注に対して、商品追加すると数量が消えてしまう」について
shutta 様

通常商品とダウンロード商品(商品種別)とお届け先情報の持ち方(仕様)が、
明確になっていれば、問題ないかと思います。

追記:4/10
チェンジセット
http://svn.ec-cube.net/open_trac/changeset/23361
の修正については、
http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=14060&forum=9&post_id=65036#forumpost65036
に記載しましたが、
実際にソースに修正をかけてみました。
dtb_shipmentにダウンロード商品のレコードが追加されます。
そのため、他の機能で想定外の受注情報となると思われます。

追記:
別件のようです。
(商品の変更でダウンロード商品を選択した場合も、レコードが追加されました。)
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

公式ストアEC-CUBE4系デザインテンプレート続々リリース中

統計情報

総メンバー数は73,080名です
総投稿数は102,130件です

投稿数ランキング

1
seasoft
7333
2
468
3078
3
AMUAMU
2712
4
nanasess
2180
5
umebius
2030
6
yuh
1612
7
red
1453
8
h_tanaka
1090
9
tsuji
936
10
fukap
907
11
shutta
835
12
tao_s
793
13 ramrun 789
14 karin 689
15 sumida 641
16
homan
633
17 DELIGHT 572
18
patapata
502
19
flealog
485
20 tonton 437


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.