magento 1.8 使用 php 将产品添加到购物车

2022-11-06php开发问题
3

本文介绍了magento 1.8 使用 php 将产品添加到购物车的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

在 Magento 1.7 之前,我能够使用以下代码以编程方式将产品添加到购物车:

Up until Magento 1.7 I was able to use the following code to add a product to cart programatically:

require_once '../app/Mage.php'; 
Mage::getSingleton('core/session', array('name' => 'frontend')); 
umask(0);  
Mage::app();  
$session = Mage::getSingleton('customer/session');  
$product = Mage::getModel('catalog/product')->load(99);  // Random product ID

// get cart and add product
$cart = Mage::getSingleton('checkout/cart'); 
$cart->init();
$cart->addProduct($product, 1);

// update session
$session->setCartWasUpdated(true);

// save the cart
$cart->save();  

然而,这在 Magento 1.8 中不再起作用.我一整天都在尝试/搜索为什么会这样.可悲的是,我还没有找到有关此问题的任何线索.

However, this does not work anymore in Magento 1.8. I've been trying/searching all day why this is the case. Sadly I haven't found any clue regarding this issue.

可能与1.8的变化有关,这也导致使用URL方法时需要form-key;不过,这是一个疯狂的猜测.

It may have to do with the changes in 1.8 which also causes the requirement for a form-key when using the URL method; this is a wild guess though.

在使用 Magento 1.8 时,有人知道如何做到这一点吗?

Anyone any idea or a working example on how to do this when working with Magento 1.8?

推荐答案

重新审视它并立即让它运行良好.仅供任何人参考,这是我正在使用的代码(Magento 1.8):

Had a fresh look at it and got it working nicely right away. Just for anyone's reference, here's the code I'm using (Magento 1.8):

// Mage init
require_once '../../app/Mage.php'; 
umask(0);  
Mage::init('default');
Mage::getSingleton('core/session', array('name' => 'frontend'));  

// Get customer session
$session = Mage::getSingleton('customer/session'); 

// Get cart instance
$cart = Mage::getSingleton('checkout/cart'); 
$cart->init();

// Add a product (simple); id:12,  qty: 3 
$cart->addProduct(12, 3);

// Add a product with custom options
$productInstance = Mage::getModel('catalog/product')->load($productId);
$param = array(
    'product' => $productInstance->getId(),
    'qty' => 1,
    'options' => array(
        234 => 'A value'  // Custom option with id: 234
    )
);
$request = new Varien_Object();
$request->setData($param);
$cart->addProduct($productInstance, $request);

// Set shipping method
$quote = $cart->getQuote();
$shippingAddress = $quote->getShippingAddress();
$shippingAddress->setShippingMethod('flatrate_flatrate')->save();               

// update session
$session->setCartWasUpdated(true);

// save the cart
$cart->save(); 

这篇关于magento 1.8 使用 php 将产品添加到购物车的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

PHP实现DeepL翻译API调用
DeepL的翻译效果还是很强大的,如果我们要用php实现DeepL翻译调用,该怎么办呢?以下是代码示例,希望能够帮到需要的朋友。 在这里需要注意,这个DeepL的账户和api申请比较难,不支持中国大陆申请,需要拥有香港或者海外信用卡才行,没账号的话,目前某宝可以...
2025-08-20 php开发问题
168

PHP通过phpspreadsheet导入Excel日期数据处理方法
PHP通过phpspreadsheet导入Excel日期,导入系统后,全部变为了4开头的几位数字,这是为什么呢?原因很简单,将Excel的时间设置问文本,我们就能看到该日期本来的数值,上图对应的数值为: 要怎么解决呢?进行数据转换就行,这里可以封装方法,或者用第三方的...
2024-10-23 php开发问题
287

mediatemple - 无法使用 codeigniter 发送电子邮件
mediatemple - can#39;t send email using codeigniter(mediatemple - 无法使用 codeigniter 发送电子邮件)...
2024-08-23 php开发问题
11

Laravel Gmail 配置错误
Laravel Gmail Configuration Error(Laravel Gmail 配置错误)...
2024-08-23 php开发问题
16

将 PHPMailer 用于 SMTP 的问题
Problem with using PHPMailer for SMTP(将 PHPMailer 用于 SMTP 的问题)...
2024-08-23 php开发问题
4

关于如何在 GoDaddy 服务器中使用 PHPMailer 设置 SMTP 的问题
Issue on how to setup SMTP using PHPMailer in GoDaddy server(关于如何在 GoDaddy 服务器中使用 PHPMailer 设置 SMTP 的问题)...
2024-08-23 php开发问题
17