EC-CUBE 2系で注文を受けた商品の規格を後で削除すると、管理画面で受注内容を編集できなくなる
원문출처 | http://www.neobit.jp/archives/573 |
---|
注文された規格を削除して、dtb_products_classテーブルから該当する規格データが無くなると、受注内容のたとえば発送先住所などを編集しようとしても数量の上限チェックに引っかかりエラーが出て受注内容の変更ができなくなってしまいます。
※ この現象は、規格のチェックBOXを外して更新 → チェックBOXを再度立てて更新 でも発生します。見た目は同じ規格が存在しているように見えますが、内部のproduct_class_idが変わってしまうのが原因です
product_class_idも引用してこれていないので画面処理もうまくいきません。
対応策として、もし規格データが削除されていた場合は在庫数チェックを行わないようにする事で受注内容の編集をできるようにしてみます。
まずdtb_products_classから規格データが無くなっていてもproduct_class_idやproduct_idを引用できるように商品詳細dtb_order_detailの方から参照するようにします
SC_Helper_Purchase.php の
function getOrderDetail のSQL文を書き換えます
- T3.product_id, - T3.product_class_id as product_class_id, + T2.product_id, + T2.product_class_id as product_class_id,
LC_Page_Admin_Order_Edit.php の
function lfCheckError に処理をスルーさせるIF文を追加
// 在庫数のチェック $arrProduct = $objProduct->getDetailAndProductsClass($arrValues['product_class_id'][$i]); + // 規格が削除されていたら在庫数チェックしない + if ($arrProduct['product_class_id'] == '') { + continue; + }
商品種類 product_type_id も引用してこれていなくて、画面にはエラー表示されませんが必須チェックに引っかかり先に進めなくなるのでこれもスルーさせます。
LC_Page_Admin_Order_Edit.php の
function lfInitParam を修正
// 受注詳細情報 - $objFormParam->addParam('商品種別ID', 'product_type_id', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK'), '0'); + $objFormParam->addParam('商品種別ID', 'product_type_id', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'), '0');
視覚的にも、規格が削除されていて在庫数が連動しない商品だと分かったほうが良いので、数量欄のあるTDの背景色を赤色で表示してみます。
/data/Smarty/templates/admin/order/edit.tpl を修正
- <td class="center"> - <!--{assign var=key value="quantity"}--> + <td class="center"<!--{if $arrForm.product_type_id.value[$product_index] == ''}--> style="background-color:#fdd"<!--{/if}-->> + <!--{assign var=key value="quantity"}-->
そもそも関連データが存在している規格データを容易にdeleteしてしまう実装ってどうなの?っていう話なんですが。
카테고리 | 아니오 | 제목 | 날짜 | 조회 수 |
---|---|---|---|---|
EC-CUBE 3.x | 39 | 新規作成したページURLから「user_data」を消す方法とURLを出力するテンプレートタグ | 2019.04.10 | 866 |
EC-CUBE 2.x | 38 | EC CUBEで商品ごとに支払い方法を簡単に分ける | 2019.10.28 | 665 |
EC-CUBE 2系 | 37 | EC-CUBE2.13カスタマイズ:新しいページを追加する | 2019.11.11 | 636 |
EC-CUBE 2系 | 36 | EC-CUBE 2系の「もっと見る」を簡潔に | 2020.01.02 | 624 |
EC-CUBE 4系 | 35 | EC-CUBE4 계에서 관리 화면에 새 메뉴 항목을 추가하는 방법 | 2019.10.28 | 495 |
EC-CUBE 2.x | 34 | EC-CUBE에서 모든 페이지에서 로그인 체크하기 | 2019.11.11 | 449 |
팁 & 노하우 나눔 | 33 | 구글 캘린더 합치기 1 | 2018.12.12 | 427 |
EC-CUBE 4.x | 32 | EC-CUBE 4를 설치했을 때 설정 한 데이터베이스 암호는 어디에 저장되는 것입니까? | 2019.11.14 | 388 |
EC-CUBE 2.x | 31 | 商品数や階層に関係なく全カテゴリーを表示させる方法 | 2019.04.10 | 260 |
EC-CUBE 3.x | 30 | デフォルトのtitleを任意のものに変更する方法 | 2019.04.10 | 228 |
EC-CUBE 3系 | 29 | 관리 화면의 사이드 메뉴에 항목 추가하는 방법 | 2019.11.11 | 165 |
EC-CUBE 2系 | 28 | EC-CUBE標準規約 | 2019.09.28 | 154 |
EC-CUBE 2系 | 27 | リファクタリングガイドライン | 2019.09.28 | 153 |
EC-CUBE 2系 | » | EC-CUBE 2系で注文を受けた商品の規格を後で削除すると、管理画面で受注内容を編集できなくなる | 2020.01.02 | 135 |
EC-CUBE 2系 | 25 | イベントセット販売プラグインマニュアル | 2019.11.07 | 131 |
EC-CUBE 2系 | 24 | ECCUBE 2.13のインストール方法をスクリーンショット付きでわかりやすく徹底解説! | 2019.10.10 | 131 |
EC-CUBE 2.x | 23 | EC-CUBE:SC_FormParamクラスによるパラメーターチェック方法 | 2019.10.03 | 119 |
메뉴얼 | 22 | THEVOS Youtube BOARD SKIN 사용 설명 | 2018.11.11 | 116 |
CSS | 21 | Css 텍스트 외곽선 처리하기, Stroke | 2019.11.28 | 111 |
EC-CUBE 2系 | 20 | EC-CUBE 2系で商品情報をCSVで更新するとき関連商品情報が削除される | 2020.01.02 | 104 |
Facebook [ko]댓글