메뉴얼

EC-CUBE 2系

EC-CUBE 2系で注文を受けた商品の規格を後で削除すると、管理画面で受注内容を編集できなくなる

by TheVOS posted Jan 02, 2020
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
Extra Form
원문출처 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してしまう実装ってどうなの?っていう話なんですが。

Facebook [ko]댓글 


  • Q: [메뉴얼] THEVOS Youtube BOARD SKIN 사용 설명 2018.11.11
    A:

    [ 스킨 기능 ]

    - 사용자 정의 자동추가

      게시판 스킨을 "INSP 유튜브"으로 변경하고 사용자정의 eid(dex_embed_srl)가 없을겨우 자동으로 추가됨


    - 기존게시판에서도 사용가능

      ㄴ 게시판에 필요한 사용자 정의는 "thevos_extv_youtube_code" 이다.

      ㄴ 하지만 skin설정에서 동영상설정 -> 영상주소eid 에서 해당 값을 바꿀수 있다.

      ㄴ 기존 게시판에 사용자 정의가 있을경우에는 제일 마지막에 사용자 정의가 추가된다.


    - 동영상 출력

      글쓰기페이지에서 동영상입력박스에다가 유튜브의 주소 https://youtu.be/vOyAbCT3GBw 또는 vOyAbCT3GBw 이라고 입력할경우 게시판 뷰페이지 상단에 동영상이 뜨게됨


    - 동영상 사이즈

      별도로 지정하지 않으며 컨텐츠의 가로 폭만큼 유동적으로 늘어남 반응형 대음


    - 리스트 썸네일 유튜브 썸네일로 출력

      ㄴ 리스트 썸네일은 유튜브 썸네일로 출력한다.

      ㄴ 단! 사용자가 첨부파일에 이미지를 업로드하고 대표이미지로 설정할경우.. 해당 이미지가 리스트에 출력하게된다

          첨부파일에 이미지를 업로드하고 대표이미지를 설정하지 않을경우에는 그냥 유튜브 썸네일이 출력된다.


    - 반응형

      ㄴ PC, 태블릿, 모바일 등 모든 기기에 대응

    Facebook [ko]댓글 

Board Pagination Prev 1 Next
/ 1