2010-10-08 4 views
5

4 개 도메인 (미국의 경우 1 개, 유럽 (영국, 프랑스 및 독일)의 경우 3 개)에서 단일 카탈로그를 사용하여 Magento 상점을 구축하고 있습니다. 유럽에는 1 개의화물 창고가 있으며 미국에는 1 개가 있으며 경품 등이 완수 된 미국의 비공식/내부 '창고'가 있으며 Magento의 재고 수준을 추적하지 않습니다. 우리는 비 웹 판매, 경품, 박람회 주문 등과 같은 내부/관리 주문과 함께 일반적인 웹 판매와 같은 특정 거래 유형을 추적해야합니다. 핵심 계획 모델을 확장하고 일종의 "주문/거래 유형"을 추가하는 것이 계획입니다. 그런 다음 주문을 배치 할 때 주문 데이터를 처리하고 상점 ID 및 '주문 유형'값에 따라 이행을 위해 어느 창고를 보냈는지 지시합니다.Magento 맞춤 주문 속성/입력란? 발에 몸을 쏴서?

Magento를 처음 접하는 분이라면 어떤 이유로 든 이런 종류의 설치가 나쁜 생각인지 알고 싶습니다. 내가 발에서 총을 쏜거야? 단일 카탈로그에 문제가있는 이유가 있습니까? 이 흐름을보다 쉽고 효과적으로 처리 할 수 ​​있습니까? 할 수있는 것처럼 주문에 맞춤 속성을 추가하는 방법이 있습니까?

답변

15

당신은 올바른 방향으로 가고 있지만 (Magento와 마찬가지로), 몇 가지 옵션이 있습니다. 여기서 가장 중요한 원칙은 수정의 아키텍처가 코어의 업그레이드/패치가 손상되는 상황으로 이어지지 않아야한다는 것입니다. 흥미로운 점은 Magento가 현재 릴리스의 Mage_Sales_Model_Order (및 관련 객체)에 대한 확장 성과 업그레이드 안전성 (주로) EAV 모델에서 벗어났습니다. 따라서 업그레이드를 통해 속성을 추가하는 것이 더 어려워집니다. IMHO.

Observer 시스템을 사용하여 새 특성 값을 추가하는 것이 좋습니다. 관련 모델을 사용하는 것이 좋습니다. 즉, Order 모델 자체에 특성을 추가하는 대신 order_id 및 사용자 지정 특성을 포함하는 모델을 만듭니다. 적절한 이벤트에 후크 (모든 주문의 경우 sales_convert_quote_to_order이거나 프론트 엔드 주문의 경우 checkout_type_onepage_save_order_after) 견적 항목을 검사하여 맞춤 모델의 값을 설정하십시오. 주문을 이행 하우스로 전송하기 위해 프로세스를 실행할 때 order_id을 통해 사용자 정의 속성을 조회 할 수 있습니다.

+1

우수한 응답. 상점을 안전하게 업그레이드 할 수 있도록 새 테이블을 만드는 경우 +1. – silvo

+0

고마워요 조나단, 완벽하게 들리 네요! –