2011-09-09 4 views
1

최근 가져온 운송료 데이터를 기반으로 모든 주문 및 order_item의 실제 총 이익을 계산하는 모듈을 만들었습니다. 나는 sales_flat_order 테이블과 sales_flat_order_item 테이블에 2 개의 열을 추가하여이 작업을 수행했습니다. 가져온 데이터를 저장할 때 updated_at 값이 업데이트됨을 알기 전까지는 위와 같은 결과가 나타났습니다. 이것이 모든 주문의 첫 번째 수입 이었기 때문에 현재 모두 업데이트 된 것으로보고됩니다. 이것은 그것과 동기화되는 보고서 및 기타 운송 소프트웨어를 포기합니다.Magento 주문 표 : 맞춤 열

이이 질문에 나를 제공 :

  1. 가 (이 경우 판매 테이블)을 주요 NO-NO 기존 테이블에 열을 추가 있습니까?
  2. 그렇지 않은 경우 updated_at 값을 증가시키지 않는 데이터를 설정하는 방법이 있습니까?

실제로 도움이되는 경우 데이터를 실제로 쓰는 코드는 내 IndexController.php 파일 안에 있습니다. 이 명령은 주문 및 해당 주문 내의 항목 모음을 반복하고 $order->setGrossMargin($orderGM)->save();과 같은 것을 사용하여 필요한 값을 설정합니다. 나는 그것이 그것을하고있는 save()에 대한 호출이라고 상상한다. 그러나 나는이 문제에 대해 올바른 방법을 확신하지 못한다.

나는 데이터를 사용자 정의 테이블로 가져오고 필요할 때만 판매 테이블에서 읽는 솔루션을 개발 중입니다. 어느 쪽이든, 당신은 시도 않았다, 좋은 운동 :

브라이언 저장

답변

1

대신 호출()이다 :

$order->getResource()->saveAttribute('gross_margin')

+0

아니, 난하지 않았다. 나는 그것을 시도했고 예외를 던졌다. 왜냐하면'saveAttribute'의 인수 1은'Mage_Core_Model_Abstract'이어야하기 때문이다. 함수와 다른 유스 케이스를 살펴보면'saveAttribute'를 호출하는 객체를 전달할 수있는 것 같습니다. 그래서, 나는 이것을 시도하고 그것이 효과가있다 :'$ order-> getResource() -> saveAttribute ($ order, 'gross_margin'); – BrianVPS