Tạo ra khách hàng vấn đề theo chương trình


13

Tôi muốn tạo một số khách hàng theo chương trình và tôi gặp sự cố khi tôi muốn lưu ID trang web.

Tôi có nhiều ID trang web:

0 => admin
1 => germany
2 => hungary
3 => romania

Đây là mã của tôi:

 $customer = Mage::getModel("customer/customer");
 $customer->setWebsiteId(3);
 $customer->setStoreId(1);
.....
 $customer->save();

Khi tôi lưu một khách hàng, tôi nhận được Admingiá trị được chọn từ trang web thả xuống . Bất cứ giá trị nào tôi cung cấp cho trang web Id (như 12321) tôi đều nhận được Admingiá trị. Tại sao ?

Cảm ơn.

Câu trả lời:


0

Bạn có thể thử với mã này:

//If you know store id
$storeId = 'id';
$store = Mage::getModel('core/store')->load($storeId); // Mage::app()->getStore($storeId);
if($store && $store->getId()) {
    $customer = Mage::getModel("customer/customer");
    $customer->setStore($store);
}


//->setStore reference:app/code/core/Mage/Customer/Model/Customer.php
/**
 * Set store to customer
 *
 * @param Mage_Core_Model_Store $store
 * @return Mage_Customer_Model_Customer
 */
public function setStore(Mage_Core_Model_Store $store)
{
    $this->setStoreId($store->getId());
    $this->setWebsiteId($store->getWebsite()->getId());
    return $this;
}

Tôi nhận được thông báo lỗi này: Lỗi nghiêm trọng: Uncaught Mage_Core_Exception: ID trang web của khách hàng phải được chỉ định khi sử dụng phạm vi trang web
Attila Naghi

1
Bạn đang thử tải khách hàng qua Email? Vấn đề này được đề cập trong: app / code / core / Mage / Customer / Model / Resource / Customer.php: 212 + 0- Vui lòng đọc: inchoo.net/magento/programming-magento/iêu
osrecio

0

Đây là mẫu mã của tôi và bạn phải đặt ID trang web 2 lần. Đừng hỏi tôi tại sao. Có thể ai đó sẽ cung cấp cho bạn một giải pháp tốt hơn nhưng giải pháp này phù hợp với tôi:

 $customer->setWebsiteId(1);
 $customer->setStoreId(5);
 $customer->setData(.....)

 $customer->save();

 $customer->setConfirmation(null);
 $customer->setWebsiteId(1); 
 $customer->save();

0

Hãy thử mã này

$websitesArray = array(0 => "admin",
                1 => "germany",
                2 => "hungary",
                3 => "romania");
foreach($websitesArray as $websiteId => $websiteName) {
    $website = Mage::getModel('core/website')->load($websiteId);
    if($website->getId()) {
        $customer = Mage::getModel("customer/customer");
        $customer->setWebsiteId($website->getId())
                    ->setFirstname('John')
                    ->setLastname('Doe')
                    ->setEmail('jd1@ex.com')
                    ->setPassword('somepassword');

        try{
            $customer->save();
        }
        catch (Exception $e) {
        }       
    }
}

Ghi chú :

Chuyển đến phía quản trị viên System > configuration > Customers > Customer Configuration > Account Sharing Optionsvà đặt Per Websitetrong trườngShare Customer Accounts

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.