I metodi di spedizione del carrello non sono disponibili


8

Devo impostare il metodo di spedizione sul carrello e sono in grado di visualizzare tutti i metodi di spedizione disponibili e ho fornito un metodo di spedizione valido come parametro di input al metodo del servizio web SOAP "shoppingCartShippingMethod", quindi per questo è necessario cambiare la configurazione nel pannello di amministrazione di 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);
?>

inserisci qui la descrizione dell'immagine


Prova ad aggiungere un prodotto al carrello
— mkutyba

Il prodotto può essere aggiunto al carrello, ma sto provando il sapone per controllare i metodi di spedizione disponibili, mi sta dando un array vuoto
— Sudhir Belagali,

Ma se aggiungi qualcosa al carrello, i metodi sono disponibili o sono ancora vuoti?
— mkutyba,

Se non ci sono articoli nel carrello, non verranno visualizzati metodi di spedizione se accedi ai dati tramite il framework del carrello
— Robbie Averill,

ho aggiunto nel carrello le informazioni sul prodotto, le informazioni sul cliente e l'indirizzo del cliente, ma non riesco ancora a impostare il metodo di spedizione nel carrello
— Sudhir Belagali,

Risposte:


1

Prova a impostare Sistema> Configurazione> Metodi di spedizione> "Mostra metodo se non applicabile" su Sì dall'impostazione predefinita "No" nel pannello di amministrazione di Magento.

inserisci qui la descrizione dell'immagine


s signore, ci dà la lista dei metodi di spedizione disponibili e non riesco ancora a impostare il metodo di spedizione sul carrello attualmente esistente
— Sudhir Belagali,

Si prega di pubblicarlo come domanda separata.
— IgnoranceIsBliss,

1

Sì, anche io ho affrontato questo problema ... Prova a farlo, ha funzionato nel mio caso:

RIFERIMENTO SOAP - CART.CREATE Da creare carrello, aggiungere prodotto al carrello, impostare cliente al carrello, aggiungere l'indirizzo al carrello tutto, includere un parametro chiamato "store_id" .. So che non è mostrato correttamente per SOAP v2 per molti di il SOAP chiama .. Ma puoi prendere riferimento da SOAP v1 e aggiungere questo parametro come questo sotto per tutti i casi:

Prima di tutto per ottenere lo store-id: fai quanto segue nella parte superiore del codice, penso che potresti usare questo file fuori dall'ambiente magento mantenendolo nella directory principale di 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 ();

Ora usa questo ID negozio per le seguenti chiamate in questo modo:

$ risultato = $ 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, $ risultato, $ customerData, $ storeid);

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

Ora prova a fare questa chiamata:

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

Sono sicuro che ti restituirà gli indirizzi di spedizione.

Inoltre, assicurati di indicare lo stesso Paese nel tuo indirizzo per il quale hai attivato il metodo di spedizione.


0

Prova questo

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

S signore, ci ho provato, ma non ha funzionato per me
— Sudhir Belagali,

Se effettui un checkout normalmente, viene mostrato il metodo di spedizione?
— Diego Borba,

Mi sta mostrando solo nel sito Web, ma non mi mostra tramite la chiamata SOAP
— Sudhir Belagali,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.