Giỏ hàng Phương thức vận chuyển không có sẵn


8

Tôi phải đặt phương thức giao hàng cho giỏ hàng và tôi có thể hiển thị tất cả các phương thức giao hàng có sẵn và tôi đã cung cấp phương thức giao hàng hợp lệ làm tham số đầu vào cho phương thức dịch vụ web SOAP "shoppingCartShippingMethod", vì vậy, có cần phải thay đổi cấu hình tại Bảng điều khiển 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);
?>

nhập mô tả hình ảnh ở đây


Hãy thử thêm một sản phẩm vào giỏ hàng
mkutyba

Sản phẩm có thể được thêm vào giỏ hàng, nhưng tôi đang thử xà phòng để kiểm tra các phương thức vận chuyển có sẵn, nó mang lại cho tôi một mảng rỗng
Sudhir Belagali

Nhưng nếu bạn thêm đôi khi vào giỏ hàng, các phương thức có sẵn hay vẫn trống?
mkutyba

Không có gì trong giỏ hàng của bạn, sẽ không có phương thức giao hàng nào được hiển thị nếu bạn truy cập dữ liệu qua khung giỏ hàng
Robbie Averill

tôi đã thêm thông tin sản phẩm, thông tin khách hàng và thông tin địa chỉ khách hàng vào giỏ hàng, nhưng tôi vẫn không thể đặt phương thức vận chuyển vào giỏ hàng
Sudhir Belagali

Câu trả lời:


1

Hãy thử đặt Hệ thống> Cấu hình> Phương thức giao hàng> "Hiển thị phương thức nếu không áp dụng" thành Có từ "Không" mặc định trong Bảng quản trị Magento.

nhập mô tả hình ảnh ở đây


Thưa ông, nó cung cấp cho chúng tôi danh sách các phương thức giao hàng có sẵn và tôi vẫn không thể đặt phương thức vận chuyển thành giỏ hàng hiện có
Sudhir Belagali

Xin vui lòng gửi đó như là một câu hỏi riêng biệt.
Vô minhIsBliss

1

Có ngay cả tôi đã từng phải đối mặt với vấn đề này ... Hãy thử làm điều này, nó đã hoạt động trong trường hợp của tôi:

SOAP THAM KHẢO - CART.CREATE Từ tạo giỏ hàng, thêm sản phẩm vào giỏ hàng, để khách hàng đặt vào giỏ hàng, thêm địa chỉ vào giỏ hàng tất cả mọi thứ, bao gồm một paramater tên "store_id" .. Tôi biết nó không được hiển thị đúng cho SOAP v2 cho nhiều các cuộc gọi SOAP .. Nhưng bạn có thể lấy tham chiếu từ SOAP v1 và thêm tham số này như thế này bên dưới cho tất cả các trường hợp:

Trước hết để có được id cửa hàng: hãy làm như sau trên đầu mã của bạn, tôi nghĩ rằng bạn có thể đang sử dụng tệp này trong môi trường magento giữ nó trong thư mục gốc của magento ..

Yêu cầu ("ứng dụng / Mage.php");

ô (0);

Pháp sư :: ứng dụng ();

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

session_start ();

Mage :: getSingleton ("lõi / phiên", mảng ("tên" => "frontend"));

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

Bây giờ sử dụng id cửa hàng này để thực hiện các cuộc gọi như sau:

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

$ result = $ proxy-> shoppingCart ProducttAdd ($ sessionId, $ quote_id, mảng (mảng ('sản phẩm_id' => $ sản phẩm_id, 'sku' => $ sku, 'qty' => $ qty, 'tùy chọn' => null, )), $ storeid);

$ resultCustomerset = $ proxy-> shoppingCartCustomerset ($ sessionId, $ result, $ customerData, $ storeid);

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

Bây giờ hãy thử thực hiện cuộc gọi này:

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

Tôi chắc chắn rằng nó sẽ trả lại cho bạn các địa chỉ giao hàng.

Ngoài ra, hãy đảm bảo bạn cung cấp cho cùng một quốc gia trong địa chỉ mà bạn đã giữ phương thức giao hàng được bật.


0

Thử cái này

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

Thưa ngài, tôi đã thử cái này, nhưng không hiệu quả với tôi
Sudhir Belagali

Nếu bạn thực hiện kiểm tra bình thường, phương thức vận chuyển đang hiển thị?
Diego Borba

Nó chỉ hiển thị cho tôi trong trang web ,, Nhưng không hiển thị cho tôi qua cuộc gọi SOAP
Sudhir Belagali
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.