일부 웹 사이트에서 일부 스크립트를 자동화하기 위해 작업 중입니다.Magento의 사용자 지정 특성을 비교하여 제품 정보로드
많은 포럼과 질문을 검토했습니다.
이제 거의 대본을 마쳤지 만 작동하지 않는 작은 것이 있지만 내가 잘못하고있는 것을 생각할 수는 없습니다.
이 스크립트의 목표는 배열 (DB에서 가져온 값)과 동일한 속성 값을 갖는 제품을 얻는 것입니다.
우리는 속성 (EAN)를 선택 : 그래서 여기
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
require_once('../app/Mage.php');
require_once('db.php');
Mage::app();
$db = db_connection();
$collection = Mage::getModel('catalog/product')->getCollection();
$collection->addAttributeToSelect('ean');
$getean = $db->prepare('SELECT ean_l FROM mytable');
$getean->execute();
$allean = $getean->fetchAll();
foreach($allean as $ean) {
$collection->addFieldToFilter(array(
array('attribute'=>'ean','eq'=>'' . $ean['ean_l'] . ''),
));
echo 'ean_l: ' . $ean['ean_l'] . '<br>';
foreach ($collection as $product) {
echo $product['entity_id'];
}
}
이 작동 방법은 다음과 같습니다
그래서 여기 내 코드입니다.
데이터베이스에서 모든 ean 번호 목록을 가져옵니다.
목록을 반복하여 모든 제품을 ean 번호와 비교합니다.
그런 다음 컬렉션을 반복하고 해당 제품의 ID를 가져옵니다.
그러나 모든 $product['entity_id']
은 273입니다. entity_id는 273이지만 올바른 ean 번호가있는 제품 274도 있습니다. 여기
그래서 왜입니까? 내 추론에서는 ean_l을 모든 루프로 변경하고 속성 값과 동일하게하기 때문입니다.
그리고 컬렉션이 변경되어야합니다. 맞습니까?
어떤 시점에서 적어도 274 이상을 보여서는 안됩니까?
이 질문은 특히 Magento 프로그래머에게는 해당되지 않지만 다른 프로그래머들도 도움을받을 수 있습니다.