<?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 ...
【AddToCart-crx插件】是一款专为增强RegExr平台功能而设计的浏览器扩展程序,主要针对英文用户群体。这款插件的核心目的是启用"AddToCart"功能,为用户的在线购物体验提供便利。 首先,我们需要理解什么是浏览器...
"Add to Home"功能在移动Web开发中是一个常见的特性,允许用户将网页快捷方式添加到他们的设备主屏幕上,类似于一个原生应用的图标。这个功能为用户提供了一种方便的方式,可以快速访问他们频繁使用的Web应用,而...
"Add to Cart"功能在电子商务网站中扮演着至关重要的角色,它是用户将商品加入购物车的交互过程。在这个场景中,HTML(HyperText Markup Language)是构建网页的基础语言,用于定义网页内容的结构和表现。下面我们将...
### VC6.0中“Open File”与“Add to Project”功能异常及修复方法 #### 一、问题背景 Visual C++ 6.0 (简称VC6.0)是一款广泛应用于Windows平台上的C/C++集成开发环境。尽管该软件已发布多年,但由于其稳定性和...
在“react-task1-addtocart”这个项目中,我们主要关注的是使用React库来实现一个购物车功能。React是Facebook开发的一个用于构建用户界面的JavaScript库,尤其适用于构建单页应用(SPA)。在这个任务中,我们将探讨...
Drupal的AddToAny模块是一个非常实用的工具,尤其对于那些希望增强网站社交分享功能的用户而言。这个模块专为Drupal 6设计,旨在提供一种简便的方式,让访客能够订阅、收藏网页内容,并且能够通过电子邮件轻松地将...
语言:English 在bestbuy产品页面上,单击以创建专用加入卡特网链路的书签 当ps5s,series-xs或图形卡下降时,您有几秒钟 一项采购。 添加到购物车链接比页面上的按钮更可靠,因此此扩展名让您创建自己的。...
功能:-AddToAny的通用共享按钮和智能菜单-基于您可能已经在使用的服务进行个性化-与Gmail,WhatsApp,LinkedIn和更多社交媒体网络共享-AddToAny的“更多”按钮可让您随时随时访问任何其他服务-正确-单击以从上下文...
Add Python to the search path on Windows
在使用Microsoft Visual C++ 6.0(简称VC6)进行C++开发时,有时会遇到"Add Files to Project"功能失效的问题,这使得无法通过菜单项将新文件添加到项目中,对开发流程造成不便。本文将详细介绍如何解决这个问题,并...
在JavaScript编程领域,"Add Shopping Cart .zip" 文件很可能是包含了一个在线购物车系统的源代码。这个系统可能使用JavaScript作为主要的客户端脚本语言,为用户提供动态交互的体验,例如添加商品、查看购物车内容...
本项目"add_cart-master.zip"显然聚焦于微信小程序的一个核心功能——购物车系统。购物车功能是电商应用的核心组件,用户可以在此添加商品、调整数量并计算总价,同时支持对购物车中的商品进行管理,如删除。 首先...
插件名称: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技术的集合,包括...
这个"quick-add-to-cart"项目显然聚焦于实现这一功能,以简化用户从产品库中选择并购买商品的过程。以下是关于这个功能及其实现的一些详细知识点: 1. 用户界面设计:首先,一个直观易用的用户界面(UI)是关键。...
### Altium Designer设计中Unknown_Pin和Failed_to_add_class_member问题解决方案 #### 一、问题概述 在使用Altium Designer进行电路板设计时,经常会遇到Unknown_Pin和Failed_to_add_class_member这两种错误提示...
addToCart: (itemId, quantity) => dispatch(addToCart(itemId, quantity)), }); export default connect( mapStateToProps, mapDispatchToProps )(CartButton); ``` 以上就是React全家桶中的Redux部分,包括其...