TL; DR : 구성 가능 제품과 연관된 단순 제품이 구성 가능 제품 자체와 동일한 속성 세트에 있어야하는 이유가 있습니까? 나는 어떤 존재 의미 기술적 인 이유는? 나는 "상식적인"이유를 안다. 신발 을 판매하는 경우 색상과 크기에 따라 모든 버전 도 신발 이어야 합니다.
긴 버전 : 구성 가능한 일부 제품을 "병합"하는 작업이있었습니다. 나는 하나 이상을 만들기 위해 2 이상에서 의미합니다. 나는 제품의 양 때문에 수동으로하고 싶지 않았고 통과하고 싶지 않았습니다.$product->load(..)->set...()->save()
스크립트를 실행하는 데 걸리는 시간 때문에 그래서 간단한 제품이 겹치지 않기 때문에 프로세스를 단락 시켰습니다. 크기와 색상의 독특한 조합이있었습니다. 저는 이것을 했어요:
Mage::getResourceSingleton('catalog/product_type_configurable')
->saveProducts($mainConfigrableProduct, $simpleProductIds);
여기서 $simpleProductIds
병합해야하는 구성 가능한 제품과 관련된 모든 단순 제품 ID의 배열입니다.
이것은 대부분의 제품에서 완벽하게 작동했지만 몇 가지 문제가있었습니다.
내가 전화하면
$productIds = $product->getTypeInstance()->getUsedProductIds()
나는 모든 간단한 제품 ID를 얻었지만 백엔드에는 그중 몇 개만 나타났습니다. 얼마 동안 파헤친 후에는 표시 가능한 유일한 것이 구성 가능한 제품과 동일한 속성 세트에있는 것임을 알았습니다. 다른 속성 세트는 첫 번째 속성 세트와 매우 유사하지만 약간의 차이가 있지만 구성 가능한 속성 (크기 및 색상)이 포함되어 있습니다.
그리고 지금 이상한 것. 프론트 엔드에서 모든 제품 (위의 코드에서 $ productIds) 또는 동일한 속성 세트의 제품 만 볼 것으로 예상되었습니다. 잘 사이에 뭔가가 있었다.
- 관련 제품 ID 20 개-5 가지 크기, 4 가지 색상
- 백엔드의 관련 제품 10 개-5 가지 크기, 2 가지 색상-다른 2 가지 색상 (10 개 제품)은 다른 속성 세트에있었습니다.
- 프론트 엔드의 15 가지 조합-5 가지 크기 3 가지 색상 (???)
표시되지 않은 제품의 속성 세트를 변경하여 문제를 해결할 수 있었지만 여전히 당황했습니다.
참고 : 집에서 시도하지 마십시오. 또는 집에서 시도 할 수 있지만 라이브 서버에서는 시도 할 수 없습니다.