Tôi gặp phải một lỗi khá lạ khi cố gắng tạo đơn đặt hàng mới thông qua API Magento V1.0. Đây là quy trình cơ bản của mã của tôi:Tạo đơn đặt hàng qua API không thành công trong Magento
- Tạo giỏ hàng bằng phương pháp
cart.create
. - Đặt khách hàng là 'khách' bằng phương pháp
cart_customer.set
. - Thêm sản phẩm vào giỏ hàng bằng phương pháp
cart_product.add
. - Tạo đơn hàng bằng phương thức
cart.order
.
Tại thời điểm này, các cart.order phương pháp ném một ngoại lệ với thông điệp SoapFault "Gọi đến một chức năng thành viên setFinalPrice() trên một tổ chức phi vật thể". Cùng một ngoại lệ được ném nếu tôi thay thế phương thức cart.order
bằng các phương pháp khác như cart.info
hoặc cart_product.list
.
Vì thông điệp của ngoại lệ không có vẻ rất mô tả, tôi đã tự hỏi liệu có ai khác đã từng gặp phải vấn đề này không.
Cảm ơn.
CẬP NHẬT: Vấn đề là do tôi đang thêm sản phẩm vào giỏ hàng bằng SKU của họ khi gọi phương thức cart_product.add
. Ngoại lệ không còn bị ném khi sử dụng ID sản phẩm thay vì SKU (tôi nghi ngờ đây có thể là lỗi). Tuy nhiên, tại thời điểm này, phương thức cart.order
trả về false, do đó đơn đặt hàng vẫn chưa được tạo.
Bạn có phiên bản Magento nào? Đã xảy ra lỗi với id/sku (khi sku là số, nếu tôi không nhầm) trong api. Nó phải được sửa trong CE 1.6/EE 1.11. Trước khi gọi 'cart.order', bạn phải thêm địa chỉ khách hàng, đặt phương thức thanh toán và giao hàng. Xem chính thức [ví dụ] (http://www.magentocommerce.com/wiki/doc/webservices-api/api/cart#example). – Zyava
@Zyava: Tôi có thể xác nhận lỗi vẫn xuất hiện trong Magento CE 1.6.0.0. Mọi thứ hoạt động tốt khi tôi sử dụng ID thay vì SKU. – Epicurus
Chờ đã, hãy làm rõ vấn đề. Khi bạn gọi thêm vào giỏ hàng với sku số: '$ proxy-> call ($ sessionId," cart_product.add ", mảng ($ shoppingCartId, array (" sku "=>" 111 "))); được thêm vào giỏ hàng? – Zyava