현재 Magento 용 EPOS 통합을 작성 중입니다. 주문이 이루어지면 ID는 대기열 파일에 저장됩니다. 1 분에 한 번 cron이 대기열을보고 EPOS 웹 API에 대한 최상위 순서를 실행 한 다음 결과에 따라 successlist 파일이나 faillist 파일로 ID를 이동합니다.맞춤 컬렉션을 사용하는 Magento 격자보기
이러한 목록의 내용을 사용자에게 표시하기 위해 파일 (직렬화 된 배열 포함)을 읽고, 각 주문의 주문 ID, 고객 이름 및 타임 스탬프를 포함하는 varien_object를 작성하고 그런 다음 이들 모두를 Varien_Data_collection의 인스턴스에 저장합니다. 그런 다음이 컬렉션은 grid.php의 _prepareCollection 함수로 전달되어 격자보기를 렌더링합니다.
1.4.1.1에서는 그리드가 잘 렌더링되지만 페이지 매김이 끊어지고 필터링이 작동하지 않습니다.
1.3.2.4에서 그리드는 렌더링되지만 '레코드 없음'이 표시됩니다.
Magento에서 파일의 정보를 표시하는 더 좋은 방법이 있다면 누가이 문제를 일으킬 수 있는지 알고 있습니까?
직렬화 된 파일과의 동기화가 어렵 기 때문에 동시에 머리와 꼬리에 쓸 수 없습니다. 대기열이 데이터베이스의 테이블이 아닌 이유가 있습니까? 테이블은 행 수준의 잠금을 제공하고 동시 편집을 허용하며 관리자 그리드에서 이미 작동합니다. 필터링 및 페이지 매김은 SQL로 수행되므로 파일과 함께 작동하지 않습니다. – clockworkgeek
이상적으로는 데이터베이스에있을 것이고, 장기적으로이 모듈을 다시 작성할 계획입니다. 그러나 나는이 코드를 이전 개발자로부터 상속 받았으며, 회사는 작동하도록 빠른 수정을 찾고 있습니다. 파일이 이상적인 상황이 아니라는 점에 동의합니다. 그리드보기가 데이터베이스를 염두에두고 구현 된 경우 그리드보기를 포기하고 사용자 지정보기를 사용하는 것이이 문제에 대한 더 나은 접근 방법일까요? – Geoff
'Varien_Data_Collection_Db'과 호환되도록'addFieldToFilter()'와'load()'함수로'Varien_Data_Collection'의 자손을 만들 수 있다고 가정합니다. 현재 페이지, 페이지 크기 및 주문 설정을 존중해야합니다.그것은 "빠른"것보다 덜 들린다. 어쩌면 누군가가 DB 컬렉션을 완전히 모방하는 방법으로 대답 할 것이다. – clockworkgeek