<?php class Bysoft_Mycheckout_Model_Addtocart{ /** * When occur FATAL ERROR, it will redo the run function * @param unknown $i */ public function shutdown($i) { var_dump('already shutdown.'); $last_error = error_get_last(); var_dump($last_error); register_shutdown_function(array(&$this,'shutdown',$i)); $this->run($i); } /** * main function: * 1.get the number $i `th user, * 2.login it * 3.get two rand product and add them to user's shopping cart, before that, clear his shopping cart */ public function run($i) { umask(0); Mage::app('admin'); $this->i=$i; register_shutdown_function(array(&$this,'shutdown',$i)); Mage::app()->setCurrentStore(1); $websiteId = 1; $arr = $this->getProductData(); $email = 'test_' . $i . '@test.com'; $password = 'password'; if ($this->login_user($email,$password)) { $this->cleanCart(); var_dump($this->getCartItemNum()); if($this->getCartItemNum() < 2) { $product_ids = array(); for ($j = 1; $j <= 2; ++$j) { $product_ids[] = $this->saveRandProduct($arr,$j); } $cart = Mage::getModel('checkout/cart'); $cart->init(); $customer = Mage::getModel("customer/customer"); $customer->setWebsiteId(1); $customer->loadByEmail($email); $customer->load($customer->getId()); $quote = Mage::getSingleton('checkout/session')->getQuote(); $quote->setCustomer($customer); var_dump($quote->getCustomerId()); $cart->addProductsByIds($product_ids); $cart->save(); } Mage::getSingleton('customer/session')->logout()->renewSession(); } } /** * get all useable product sku from a csv file. * @return multitype:unknown */ public function getProductData() { //get product data from csv file(which products have enough stock) $file_path = BP . DS . 'media' . DS. 'product_inventory' . DS .'data.csv'; $fp = fopen($file_path, 'r'); $res = array(); $count = 0; while ($data = fgetcsv($fp)) { if (isset($data[0]) && trim($data[0])!= '' && $count != 0) { $res[] = $data; } ++$count; } return $res; } /** * login a user */ public function login_user($email,$password) { $session = Mage::getSingleton('customer/session'); try { $session->login( $email, $password ); $session->setCustomerAsLoggedIn($session->getCustomer()); var_dump($email . ' login successed!'); return true; } catch( Exception $e ) { return false; } } /** * clean current logined user's shopping cart. */ public function cleanCart() { if ($this->getCartItemNum() >0) { Mage::getSingleton('checkout/cart')->truncate()->save(); var_dump('remove all item from cart'); } } /** * count current user's shopping cart item number */ public function getCartItemNum() { //get cart item (current login user) $cart = Mage::getSingleton('checkout/session'); $cart->init(); $quote = $cart->getQuote(); $items = $quote->getAllVisibleItems(); foreach ($items as $item) { //var_dump($item->getData()); } return count($items); } /** * get random product from a array. * @param array $arr * @param int $j * @return int */ public function saveRandProduct($arr,$j) { while (!$_product) { $num = (rand(($j-1)*(floor(count($arr)/2))+1,$j*floor(count($arr)/2))); $product_model = Mage::getModel('catalog/product'); $productid = $product_model->getIdBySku($arr[$num-1][0]); $_product = $product_model->load($productid); } return $productid; } }
相关推荐
Add to cart JumboAdobeXD源码下载设计素材UI设计
克隆这个git clone https://github.com/hassansin/eastbay_addtocart.git eastbay_addtocart && cd eastbay_addtocart : git clone https://github.com/hassansin/eastbay_addtocart.git eastbay_addtocart && cd ...
用vue实现加入购物车的抛物线动画,平抛运动,带有抛物线的小球抛物线掉落到购物车
语言:English 在bestbuy产品页面上,单击以创建专用加入卡特网链路的书签 当ps5s,series-xs或图形卡下降时,您有几秒钟 一项采购。 添加到购物车链接比页面上的按钮更可靠,因此此扩展名让您创建自己的。...
react-task1-addtocart
语言:English 温度 安装此扩展程序以使RegExr的AddToCart功能正常工作!
add-to-cart
经过测试,并在项目中有用过的,页面收藏到桌面的功能 js版本,有例子可测试
VC6 add files to project失效解决方法
Add Python to the search path on Windows
drupal的addtoany模块,支持drupal6,可以方便的订阅、收藏或者通过email发送给其他朋友们,是个推广的好帮手。
功能:-AddToAny的通用共享按钮和智能菜单-基于您可能已经在使用的服务进行个性化-与Gmail,WhatsApp,LinkedIn和更多社交媒体网络共享-AddToAny的“更多”按钮可让您随时随时访问任何其他服务-正确-单击以从上下文...
插件名称:Add-nofollow-to-XFN 插件功能:在WordPress后台的"链接" - "添加新链接"中的"链接关系(XFN)"中增加一个"nofollow"选项,安装插件后效果如下: 安装方法: 下载插件压缩包,解压后将 "Add-nofollow-to...
Ajax-Magento-ajax-add-to-cart.zip,[模块magento 1]magento ajax添加到购物车-ajoter vos produits au panier en ajax/感谢ajax将您的产品添加到购物车,ajax代表异步javascript和xml。它是多种web技术的集合,包括...
matlab功能函数,给直线加上箭头,使之成为矢线,起点[a,b],终点[c,d] 引用格式:add_arrow_to_line(a, c, b, d, color, linewidth, length_arrow) length_arrow指箭头边线长度
安装步骤如下: 1.压缩文件包,将文件里边的YOUR_TEMPLATE...--eof Add to Cart Box-->就行.弄好这个文件之后,把includes下的其它文件都上传好。 3.进入前台,进入属性管理,你可以看到多了一个属性Grid了,选择即可
该项目是通过引导的。 可用脚本 在项目目录中,可以运行: yarn start 在开发模式下运行该应用程序。 打开在浏览器中查看它。 如果您进行编辑,则页面将重新加载。 您还将在控制台中看到任何棉绒错误。...
名称:Add to Microsoft To Do -------------------- 版本:0.20.0 作者:Pavel Ukhan 分类:生产工具 -------------------- 概述:这是将任何内容从网络保存到待办事项列表的最简单方法。 该扩展允许您将有关当前...
JavaScript