购物车的送货方式不可用


8

我必须将送货方式设置为购物车,并且能够显示所有可用的送货方式,并且我已经将有效的送货方式作为SOAP Web服务方法“ shoppingCartShippingMethod”的输入参数,因此,是否需要更改Magento管理面板上的配置?

<?php
$proxy = new SoapClient('http://127.0.0.1/magento/index.php/api/v2_soap/?wsdl');

$sessionId = $proxy->login('cats', 'sudhir123');
echo "\nSession Id = ";
var_dump($sessionId);

$cartId = $proxy->shoppingCartCreate($sessionId, '3');
echo "\nCart Id = ";
var_dump($cartId);

$customerData = array(
"firstname" => "testFirstname",
"lastname" => "testLastName",
"email" => "testEmail@mail.com",
"mode" => "guest",
"website_id" => "0"
  );
$resultCustomerSet = $proxy->shoppingCartCustomerSet($sessionId, $cartId, $customerData);
echo "\nCustomer Set to Shopping Cart = ";
var_dump($resultCustomerSet);

$customeraddress = $proxy->shoppingCartCustomerAddresses($sessionId,     $cartId, array(array(
'mode' => 'billing',
'firstname' => 'Sudhir',
'lastname' => 'Belagali',
'street' => 'street address',
'city' => 'city',
'region' => 'region',
'postcode' => 'postcode',
'country_id' => 'US',
'telephone' => '123456789',
'is_default_billing' => 1
)));   
echo "\nCustomer Address Set to Shopping Cart = ";
var_dump($customeraddress);

$shoppingcartproduct = $proxy->shoppingCartProductAdd($sessionId,    $cartId, array(array(
'product_id' => '917',
'sku' => 'cricketbat',
'qty' => '5',
'options' => null,
'bundle_option' => null,
'bundle_option_qty' => null,
'links' => null
)));   
echo "\nProduct has been added to cart = ";
var_dump($shoppingcartproduct);


$cartInfo = $proxy->shoppingCartInfo($sessionId, $cartId);
echo "\nCart Information for this Cart Id is ( ".$cartId." )";
var_dump($cartInfo);


$result = $proxy->shoppingCartShippingList($sessionId, $cartId);   
echo "\nAvailable Shipping methods = ";
var_dump($result);
?>

在此处输入图片说明


尝试将产品添加到购物车中
mkutyba 2015年

产品可以添加到购物车,但我正在尝试肥皂检查可用的运输方式,它给了我一个空数组
Sudhir Belagali 2015年

但是,如果您将某物添加到购物车中,这些方法是否可用或仍然为空?
mkutyba,2015年

您的购物车中没有任何物品,如果您通过购物车框架访问数据,则不会显示运输方式
Robbie Averill 2015年

我已经在购物车中添加了产品信息,客户信息和客户地址信息,但仍然无法将购物方式设置为购物车
Sudhir Belagali 2015年

Answers:


1

尝试从Magento管理面板中的默认“否”将“系统”>“配置”>“运输方式”>“如果不适用,则显示方法”设置为“是”。

在此处输入图片说明


先生,它为我们提供了可用的送货方式列表,但我仍然无法将送货方式设置为当前存在的购物车
Sudhir Belagali 15-10-27

请将该问题作为一个单独的问题发布。
IgnoranceIsBliss 2015年

1

是的,甚至我以前都曾遇到过这个问题...尝试执行此操作,在我的情况下有效:

SOAP参考-CART.CREATE 从创建购物车,将产品添加到购物车,将客户设置为购物车,将地址添加到购物车的所有内容,都包括一个名为“ store_id”的参数。 SOAP调用。。但是,您可以从SOAP v1引用,并在以下所有情况下添加此参数,如下所示:

首先要获取store-id:在代码顶部执行以下操作,我认为您可能是在magento环境之外使用此文件,并将其保存在magento的根目录中。

require_once(“ app / Mage.php”);

umask(0);

法师:: app();

$ url = Mage :: getBaseUrl(Mage_Core_Model_Store :: URL_TYPE_WEB);

session_start();

Mage :: getSingleton(“ core / session”,array(“ name” =>“ frontend”)));

$ storeid =法师:: app()-> getStore()-> getStoreId();

现在,在以下调用中使用此store-id:

$ result = $ proxy-> shoppingCartCreate($ sessionId,$ storeid);

$ result = $ proxy-> shoppingCartProductAdd($ sessionId,$ quote_id,array(array('product_id'=> $ product_id,'sku'=> $ sku,'qty'=> $ qty,'options'=> null, )),$ storeid);

$ resultCustomerSet = $ proxy-> shoppingCartCustomerSet($ sessionId,$ result,$ customerData,$ storeid);

$ result = $ client-> shoppingCartCustomerAddresses($ session,$ cart_id,$ address,$ storeid);

现在尝试拨打此电话:

$ result = $ client-> shoppingCartShippingList($ session,$ cart_id,$ storeid);

我确定它将退还您的收货地址。

另外,请确保在您的地址中指定了启用了送货方式的国家/地区。


0

尝试这个

// get list of shipping methods

$resultShippingMethods = $proxy->shoppingCartShippingList($sessionId, array($shoppingCartId))

// set shipping method

$randShippingMethodIndex = rand(0, count($resultShippingMethods)-1 );
$shippingMethod = $resultShippingMethods[$randShippingMethodIndex]["code"];

$resultShippingMethod = $proxy->shoppingCartShippingMethod($sessionId,  array($shoppingCartId), $shippingMethod);

小号先生,我想这一点,但没有为我工作
苏德赫Belagali

如果您正常结帐,是否显示运送方式?
圣地亚哥·博尔巴

它仅在网站上显示我,但不通过SOAP调用显示我
Sudhir Belagali 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.