2014-09-18 5 views
0

Magento에 최소한의 "선적 추적"시스템을 추가하려고합니다. 다음은 내가하려는 일입니다.Magento 관리 및 사용자 주문 세부 정보 페이지 편집

관리자 주문 세부 정보 페이지의 라디오 버튼을 사용하여 배송지 (예 : 아직 배송되지 않음, 도착 중입니다)를 선택하고 싶습니다. 하나를 선택하고 제출을 누르면 고객이 주문 세부 정보 페이지의 정보를 보길 원합니다.

나는이 file-- 응용 프로그램/디자인/adminhtml/기본/기본/템플릿/판매/주문 /보기/탭/info.phtml - 그러나 편집하여 관리자 측에 라디오 버튼을 추가하기 위해 관리했습니다

Magento가 업데이트되면 덮어 쓰기 될 것입니다. 고객 측 파일의 편집에 대해서도 마찬가지입니다. app/design/frontend/base/default/template/sales/order/info/buttons.phtml

또한 버튼은 실제로 아무 것도하지 않습니다. . 내가해야 할 일은 Sales_Flat_Order (배송 상태가있는 주문) 및 Sales_Flat_Order_Grid (관리자가 현재 상태를 볼 수 있도록)에 열을 추가하는 것일 수 있다고 생각합니다. 그런 다음 라디오 버튼이 어떻게 든이 테이블의 상태를 변경할 수 있으며 고객 페이지가로드되면 상태를 검색하여 표시 할 수 있습니다. 질문

요약 :

  1. 가 어떻게 지속 가능한 방법으로 주문 세부 정보 페이지 (관리자의 고객의)를 편집 할 수 있습니다?
  2. phpMyAdmin에서 새 테이블 열을 만들어야합니까, 아니면 Magento를 통해해야할까요?
  3. 아무 래도 라디오 버튼을 사용하여 표를 변경할 수 있습니까?
  4. 그런 다음 해당 정보를 검색하여 고객 주문 세부 정보 페이지에 표시 할 수 있습니까?

일부 지침은 크게 감사하겠습니다. 나는 지금까지이 문제를 해결하기 위해 구글을 상대로 머리를 때리고 있었지만 실제로 문제를 해결하는 것에는별로 가깝지 않다.

답변

0

그래서, (대부분) 내 문제를 해결했습니다. 다음은 내가 한 일입니다.

shipping_status라는 phpMyAdmin의 sales_flat_order 테이블에 새 열을 만들었습니다. 그런 다음 admin 쪽에서 언급 한 페이지에서 get 메서드를 사용하는 라디오 단추를 추가했습니다. 다음 코드를 사용하여 주문의 shipping_status를 업데이트했습니다.

<?php @$a = $_GET['shipping_status'] ?> 
<?php $b = $_order->getId() ?> 
<?php $con = mysql_connect("localhost",login,password); ?> 
<?php mysql_select_db("magentodb", $con); ?> 
<?php $sql_statement = "UPDATE sales_flat_order ". 
    "SET shipping_status = '$a' ". 
    "WHERE entity_id = $b" ; ?> 
<?php mysql_query($sql_statement); ?> 

여기서 로그인 ID는 실제 데이터베이스 사용자 이름 및 비밀번호입니다. 따라서 제출 된 값을 라디오 버튼에서 가져 와서 주어진 순서 ID (entity_id)를 가진 주문의 행에있는 sales_flat_order 테이블에 넣습니다.

<?php $b = $_order->getId() ?> 
<?php $con = mysql_connect("localhost",login,password); ?> 
<?php mysql_select_db("magentodb", $con); ?> 
<?php $sql_statement = "SELECT shipping_status ". 
    "FROM sales_flat_order ". 
    "WHERE entity_id = $b" ; ?> 
<?php $result1 = mysql_query($sql_statement); ?> 
<?php $result2 = mysql_fetch_assoc($result1); ?> 
<?php if ($result2[shipping_status] == '0'): ?> 
    <strong><?php echo 'Preparing to Ship'; ?></strong> 
<?php elseif ($result2[shipping_status] == "1"): ?> 
    <strong><?php echo 'Departed the United Kingdom'; ?></strong> 
<?php elseif ($result2[shipping_status] == '2'): ?> 
    <strong><?php echo 'Arrived in your country'; ?></strong> 
<?php elseif ($result2[shipping_status] == '3'): ?> 
    <strong><?php echo 'Out for Local Delivery'; ?></strong> 
<?php else: ?> 
    <strong><?php echo 'Delivered'; ?></strong> 
<?php endif; ?> 

이 가져 :

그런 다음, 사용자 측에서,이 코드를 추가하여 응용 프로그램/디자인/프론트 엔드/기초/기본/템플릿/판매/주문/info.phtml 에서 페이지를 편집 shipping_status의 현재 값과 연관된 상태를 인쇄합니다. 좋은 측정을 위해, 나는 다시 가서이 파일을 다른 파일에 넣어 관리자가 변경 전/후에 상태를 볼 수 있도록했다.

여기에 나머지 문제가 있습니다. 이것은 이 아니며 지속 가능한 해결책 인입니다.Magento가 업데이트 될 때마다이 코드가없는 새 파일로 대체 될 것입니다. 그래서 비슷한 문제에 대한 해결책을 찾고 있다면, 이는 단지 임시 해결책 일뿐입니다.

관련 문제