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.