Les méthodes d'expédition du panier ne sont pas disponibles

8

Je dois définir la méthode d'expédition sur le panier, et je peux afficher toutes les méthodes d'expédition disponibles, et j'ai donné une méthode d'expédition valide comme paramètre d'entrée à la méthode de service Web SOAP "shoppingCartShippingMethod", donc pour cela, y a-t-il besoin de changer la configuration dans le panneau d'administration 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);
?>

entrez la description de l'image ici

Sudhir Belagali
la source
Essayez d'ajouter un produit au panier
mkutyba
Le produit peut être ajouté au panier, mais j'essaie du savon pour vérifier les méthodes d'expédition disponibles, cela me donne un tableau vide
Sudhir Belagali
Mais si vous ajoutez quelque chose au panier, les méthodes sont-elles disponibles ou encore vides?
mkutyba
Sans rien dans votre panier, aucune méthode d'expédition ne sera affichée si vous accédez aux données via le cadre du panier
Robbie Averill
J'ai ajouté des informations sur les produits, les informations sur les clients et les adresses des clients dans le panier, mais je ne
parviens

Réponses:

1

Essayez de définir le système> Configuration> Méthodes d'expédition> "Afficher la méthode si non applicable" sur Oui à partir du "Non" par défaut dans le panneau d'administration Magento.

entrez la description de l'image ici

L'ignorance est le bonheur
la source
s monsieur, il nous donne la liste des modes de livraison disponibles et je n'arrive toujours pas à définir le mode de livraison sur le panier existant
Sudhir Belagali
Veuillez poster cela comme une question distincte.
IgnoranceIsBliss
1

Oui même j'avais l'habitude de faire face à ce problème ... Essayez de faire ça, ça a marché dans mon cas:

RÉFÉRENCE DU SAVON - CART.CREATE De créer un panier, ajouter un produit au panier, mettre le client au panier, ajouter l'adresse au panier tout, inclure un paramètre nommé "store_id" .. Je sais qu'il n'est pas correctement affiché pour SOAP v2 pour beaucoup de les appels SOAP .. Mais vous pouvez prendre la référence de SOAP v1 et ajouter ce paramètre comme ceci ci-dessous pour tous les cas:

Tout d'abord pour obtenir le store-id: procédez comme suit en haut de votre code, je pense que vous utilisez peut-être ce fichier hors de l'environnement magento en le conservant dans le répertoire racine de magento ..

require_once ("app / Mage.php");

umask (0);

Mage :: app ();

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

session_start ();

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

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

Utilisez maintenant cet identifiant de magasin dans les appels suivants comme celui-ci:

$ 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);

Essayez maintenant de faire cet appel:

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

Je suis sûr qu'il vous renverra les adresses de livraison.

Assurez-vous également d'indiquer le même pays dans votre adresse pour laquelle vous avez activé le mode d'expédition.

Helly
la source
0

Essaye ça

// 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);
Diego Borba
la source
S monsieur, j'ai essayé cela, mais
n'a
Si vous effectuez un paiement normalement, la méthode d'expédition s'affiche?
Diego Borba du
Il me montre uniquement sur le site Web, mais ne me montre pas via un appel SOAP
Sudhir Belagali