У меня много проблем с тем, чтобы заставить клиента оставаться в системе после создания новой учетной записи.Я создаю им учетную запись и добавляю товары в корзину с внешнего сайта, а затем отправляю их в магазин Magento.Я хочу, чтобы это произошло:
- Клиент переходит на страницу регистрации и вводит соответствующую информацию.
- Он переходит на новую страницу, где он может добавить бесплатные образцы вих корзина.
- После отбора образцов.их учетная запись создана, и они перенаправлены в магазин Magento с образцами в корзине.
У меня проблема между шагами 2 и 3. Я создаю учетную запись с помощью SOAP API Magento.со следующим:
$customerInfo = array('firstname' => $custFirstname, 'lastname' => $custLastname, 'email' => $email, 'password_hash' => md5( $new_password ), 'store_id' => 34, 'website_id' => 25,'group_id' => 9);
// Call API method customer.create
$newCustomerId = $client->call( $session, 'customer.create', array( $customerInfo ) );
Затем я возвращаю их идентификатор клиента, который я передаю другой функции, которая фактически регистрирует их и добавляет товары в их корзину:
public static function _addSamplesToCart($customer_id, $sample_one, $sample_two, $sample_three){
Mage::getSingleton("core/session", array("name" => "frontend"));
$customerSession = Mage::getSingleton('customer/session', array("name" => "frontend"));
$customerSession->init("customer_bn_us");
$customerSession->loginById($customer_id);
$cart = Mage::getSingleton('checkout/cart');
$cart->addProductsByIds($idArray);
$cart->save();
$cart->getCheckoutSession()->setCartWasUpdated(true);
}
Эти функциина самом деле вызывается из почтовых запросов AJAX, поэтому, когда я получаю успешное возвращаемое значение из _addSamplesToCart, я делаю простое перенаправление javascript (window.location = "http://www.myhostname.net/welcome"), и оно корректно переносит меня туда, но я не вошел в систему.
Я искал весь день и пробовал несколько разных вещей, но ничего не получалось. Я также пытался сделать скрытую форму отправки в / customer / account / loginPost, и она все еще не работает. У меня естьпроверил, что это правильно создает учетную запись в Magento. Единственное, что я догадываюсь, это то, что я делаю это со смесью AJAX и PHP, так или иначекуки или сессии перепутаны?