Warenkorb Versandmethoden sind nicht verfügbar


8

Ich muss eingestellt Methode Versand In den Warenkorb, und ich bin in der Lage , alle verfügbaren Versandarten angezeigt werden , und ich habe gültige Versandmethode als Eingabeparameter zu SOAP Web - Service - Methode gegeben „shoppingCartShippingMethod“ so dafür, Gibt es eine Notwendigkeit, Konfiguration im Magento Admin Panel ändern?

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

Geben Sie hier die Bildbeschreibung ein


Versuchen Sie, ein Produkt in den Warenkorb zu
legen

Produkt kann in den Warenkorb gelegt werden, aber ich versuche Seife, um die verfügbaren Versandmethoden zu überprüfen, es gibt mir ein leeres Array
Sudhir Belagali

Aber wenn Sie etwas in den Warenkorb legen, sind die Methoden verfügbar oder noch leer?
Mkutyba

Wenn sich nichts in Ihrem Warenkorb befindet, werden keine Versandmethoden angezeigt, wenn Sie über das Warenkorb-Framework auf die Daten zugreifen
Robbie Averill

Ich habe Produktinformationen, Kundeninformationen und Kundenadressinformationen in den Warenkorb gelegt, aber ich kann die Versandmethode immer noch nicht auf Warenkorb setzen
Sudhir Belagali

Antworten:


1

Versuchen Sie, das System> Konfiguration> Versandmethoden> "Methode anzeigen, wenn nicht zutreffend" vom Standard "Nein" im Magento Admin-Bereich auf "Ja" zu setzen.

Geben Sie hier die Bildbeschreibung ein


s Sir, es gibt uns die Liste der verfügbaren Versandmethoden und ich kann die Versandmethode immer noch nicht auf den aktuell vorhandenen Warenkorb
einstellen

Bitte posten Sie das als separate Frage.
IgnoranceIsBliss

1

Ja, sogar ich hatte dieses Problem ... Versuchen Sie es, es hat in meinem Fall funktioniert:

SOAP REFERENCE - CART.CREATE Vom Erstellen eines Warenkorbs zum Hinzufügen eines Produkts zum Warenkorb, zum Festlegen des Kunden zum Warenkorb, Hinzufügen einer Adresse zum Warenkorb alles, fügen Sie einen Parameter mit dem Namen "store_id" hinzu. Ich weiß, dass er für SOAP v2 für viele von ihnen nicht richtig angezeigt wird die SOAP-Aufrufe. Sie können jedoch eine Referenz aus SOAP v1 übernehmen und diesen Parameter für alle Fälle wie folgt hinzufügen:

Um die Store-ID zu erhalten, gehen Sie wie folgt vor: Führen Sie die folgenden Schritte oben in Ihrem Code aus. Ich denke, Sie verwenden diese Datei möglicherweise außerhalb der Magento-Umgebung und behalten sie im Stammverzeichnis von Magento.

require_once ("app / Mage.php");

umask (0);

Mage :: app ();

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

session_start ();

Mage :: getSingleton ("Kern / Sitzung", Array ("Name" => "Frontend"));

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

Verwenden Sie diese Store-ID nun für folgende Aufrufe:

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

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

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

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

Versuchen Sie nun, diesen Anruf zu tätigen:

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

Ich bin sicher, es wird Ihnen die Lieferadressen zurückgeben.

Stellen Sie außerdem sicher, dass Sie in Ihrer Adresse dasselbe Land angeben, für das Sie die Versandart aktiviert haben.


0

Versuche dies

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

Sir, ich habe es versucht, aber es hat nicht für mich funktioniert
Sudhir Belagali

Wenn Sie normal auschecken, wird die Versandart angezeigt?
Diego Borba

Es zeigt mich nur auf der Website, aber nicht durch SOAP-Anruf
Sudhir Belagali
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.