【问题标题】:Automatic onepage checkout Magento - Shipping method自动单页结帐 Magento - 运输方式
【发布时间】:2013-08-01 13:15:03
【问题描述】:

我正在研究运输方式的自动化,它似乎工作正常,但问题是:

每个第二个订单都有相同的错误“请指定送货方式”

会不会是会话错误?变量应该通过 get-post 发送还是以其他方式从 Magento 检索?

这是一个代码:

<?php
$customer = Mage::getSingleton('customer/session')->getCustomer();


$customer->setWebsiteId(Mage::app()->getWebsite()->getId());

echo $customAddress = Mage::getModel('customer/address')->load($customer->getDefaultBilling());


$quote = Mage::getSingleton('checkout/session')->getQuote()->setBillingAddress(Mage::getSingleton('sales/quote_address')->importCustomerAddress($customAddress));

$cart = Mage::getSingleton('checkout/cart');

$storeId = Mage::app()->getStore()->getId();

$checkout = Mage::getSingleton('checkout/type_onepage');

$checkout->initCheckout();

$checkout->saveCheckoutMethod('register');

$checkout->saveShippingMethod('matrixrate_matrixrate_35');

$checkout->savePayment(array('method'=>'pay'));

Mage::getSingleton('checkout/type_onepage')->getQuote()->getShippingAddress()->setShippingMethod('matrixrate_matrixrate_35');


try {
    if ($checkout->saveOrder()) {echo "SUCCESSSSS!!!";}}
catch (Exception $ex) {
    echo $ex->getMessage();
}            

/* Clear the cart */
$cart->truncate();
$cart->save();
$cart->getItems()->clear()->save();
Mage::getSingleton('checkout/session')->clear();

它使用名为 Pay 的自定义支付网关,我正在使用 matrixrate 扩展进行运输,虽然 flatrate_flatrate 存在相同的错误,所以我不认为这是扩展问题。

谢谢!!!

亚当

【问题讨论】:

  • 更新:下单后清理购物车搞砸了,我现在正在解决运费问题。我还在购物车页面上添加了代码来设置送货方式。
  • 我还建议您避免使用 var_dumps 或 echos,因为有时这种打印会像您之前提到的那样向您发送“警报”错误。
  • 谢谢贝托,我会摆脱它们的。更新:我已经设法让购物车运行,但是当用户登录时第一个订单没有处理,因为它告诉没有运输方式,第二个和其余的工作正常。

标签: php magento checkout


【解决方案1】:

问题:订单拆分后购物车商品仍然显示

1.在运输方法步骤中保存报价集合..

$quote->collectTotals()->save();

2.在订单拆分的最后部分添加以下步骤。

$quote->setIsActive(false);
$quote->save();

【讨论】:

    【解决方案2】:

    问题已解决。

    看起来会话/时间有问题,服务器没有立即处理所有内容。

    我必须在购物车总页面上添加:

    $checkout->getQuote()->getShippingAddress()->setShippingMethod('matrixrate_matrixrate_35');
    $checkout->saveShippingMethod('matrixrate_matrixrate_35');
    

    为了确保运费设置,还:

    在成功页面手动清除会话。

    总报价金额有一个错误,所以我只是重新设计了脚本以正确计算它。

    非常感谢您的帮助!

    亚当

    【讨论】:

      猜你喜欢
      • 2014-07-08
      • 2012-12-03
      • 2012-09-30
      • 2015-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-17
      • 2012-04-28
      相关资源
      最近更新 更多