고객 웹 사이트 ID를 프로그래밍 방식으로 설정합니다
-
13-12-2019 - |
문제
누군가가 외부 스크립트를 통해 고객을 추가 할 때 웹 사이트 및 저장 값이 무시되고 고객이 항상 "관리자"에 할당되어 있고 "주 웹 사이트"가 아닌 고객이 항상 할당됩니다.
i Magento 인스턴스 내에 1 개의 웹 사이트와 1 개의 저장소가 있으며 각각 1
의 ID가 있습니다.내 코드는 다음과 같습니다 :
$customer = Mage::getModel("customer/customer");
$customer ->setWebsiteId(1)
->setStore(1)
->setFirstname('John')
->setLastname('Smith')
->setEmail('john@smith.com')
->setPassword('password')
->setGroupId('1');
try{
$customer->save();
}
catch (Exception $e) {
Zend_Debug::dump($e->getMessage());
}
. 해결책
setStore()
를 사용하는 대신 setStoreId()
$customer = Mage::getModel('customer/customer');
$email = 'john@smith.com';
$storeId = 1;
$website_id = Mage::getModel('core/store')->load($storeId)->getWebsiteId();
$customer->setWebsiteId($website_id);
$customer->setStoreId($storeId);
...
. 다른 팁
코드에 오류가 발생했습니다.
->setStore()
.
위에서 저장소 ID의 정수 값을 사용하지 아니한 경우 현재 저장소의 인스턴스가 필요합니다 (예 :
->setStore(Mage::app()->getStore())
.
귀하의 경우에, 나는 그것이있을 것이라고 상상한다,
->setStore(Mage::getModel('core/store')->load(2));
. 제휴하지 않습니다 magento.stackexchange