Tengo que establecer el método de envío en el carrito de compras, y puedo mostrar todos los métodos de envío disponibles, y he dado un método de envío válido como parámetro de entrada para el método de servicio web SOAP "shoppingCartShippingMethod", por lo que para esto, ¿hay alguna necesidad de cambiar la configuración en el panel de administración de 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" => "[email protected]",
"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);
?>
magento-1.9
soap
soap-api-v2
Sudhir Belagali
fuente
fuente
Respuestas:
Intente configurar el Sistema> Configuración> Métodos de envío> "Mostrar método si no corresponde" en Sí desde el "No" predeterminado en el Panel de administración de Magento.
fuente
Sí, incluso yo solía enfrentar este problema ... Intenta hacerlo, funcionó en mi caso:
REFERENCIA DE JABÓN - CART.CREATE Desde crear carrito, agregar producto al carrito, configurar el cliente al carrito, agregar la dirección al carrito todo, incluir un parámetro llamado "store_id". Sé que no se muestra correctamente para SOAP v2 para muchos de el SOAP llama ... Pero puede tomar la referencia de SOAP v1 y agregar este parámetro como este a continuación para todos los casos:
En primer lugar, para obtener la identificación de la tienda: haga lo siguiente en la parte superior de su código, creo que podría estar usando este archivo fuera del entorno de magento manteniéndolo en el directorio raíz de magento.
Ahora use esta tienda-id en las siguientes llamadas como esta:
Ahora intenta hacer esta llamada:
Estoy seguro de que le devolverá las direcciones de envío.
Además, asegúrese de proporcionar el mismo país en su dirección para el que ha mantenido habilitado el método de envío.
fuente
Prueba esto
fuente