Preciso definir o método de envio como carrinho de compras, e posso exibir todos os métodos de envio disponíveis e forneci o método de envio válido como o parâmetro de entrada para o método de serviço da web SOAP "shoppingCartShippingMethod". Portanto, para isso, é necessário alterar a configuração no painel de administração do 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
fonte
fonte
Respostas:
Tente definir Sistema> Configuração> Métodos de entrega> "Mostrar método se não aplicável" como Sim no padrão "Não" no painel de administração do Magento.
fonte
Sim, mesmo eu costumava enfrentar esse problema ... Tente fazer isso, funcionou no meu caso:
REFERÊNCIA DE SOAP - CART.CREATE De criar carrinho, adicionar produto ao carrinho, definir cliente ao carrinho, adicionar endereço ao carrinho, inclua um paramater chamado "store_id". Sei que não é mostrado corretamente para o SOAP v2 para muitos o SOAP chama .. Mas você pode obter referência do SOAP v1 e adicionar este parâmetro como este abaixo para todos os casos:
Primeiro de tudo, para obter o ID da loja: faça o seguinte na parte superior do seu código, acho que você pode estar usando esse arquivo fora do ambiente magento, mantendo-o no diretório raiz do magento.
Agora use esse ID da loja nas chamadas a seguir:
Agora tente fazer esta ligação:
Tenho certeza de que ele retornará os endereços de entrega.
Além disso, certifique-se de fornecer o mesmo país em seu endereço para o qual você manteve o método de envio ativado.
fonte
Tente isto
fonte