Viene visualizzato un errore piuttosto strano quando si tenta di creare un nuovo ordine tramite l'API Magento V1.0. Ecco il flusso di lavoro di base del mio codice:La creazione dell'ordine tramite API non riesce in Magento
- Creare il carrello acquisti utilizzando il metodo
cart.create
. - Impostare un cliente come "ospite" utilizzando il metodo
cart_customer.set
. - Aggiungi prodotti al carrello utilizzando il metodo
cart_product.add
. - Creare l'ordine utilizzando il metodo
cart.order
.
A questo punto, il metodo cart.order genera un'eccezione SoapFault con il messaggio "Chiamata a un setFinalPrice funzione membro() su un non-oggetto". La stessa eccezione viene generata se si sostituisce il metodo cart.order
con altri metodi come cart.info
o cart_product.list
.
Dal momento che il messaggio dell'eccezione non sembra molto descrittivo, mi chiedevo se qualcun altro si fosse mai imbattuto in questo.
Grazie.
UPDATE: Il problema è dovuto al fatto che sto aggiungendo prodotti al carrello utilizzando gli SKU quando si chiama il metodo cart_product.add
. L'eccezione non viene più generata quando si utilizzano gli ID prodotto anziché gli SKU (ho il sospetto che questo potrebbe essere un bug). Tuttavia, a questo punto il metodo cart.order
restituisce false, pertanto l'ordine non viene ancora creato.
Quale versione di magento avete? C'è stato un errore con ids/sku (quando sku è numerico, se non sbaglio) in api. Dovrebbe essere stato fissato in CE 1.6/EE 1.11. Prima di chiamare 'cart.order' devi aggiungere gli indirizzi dei clienti, impostare i metodi di pagamento e spedizione. Vedi ufficiale [esempio] (http://www.magentocommerce.com/wiki/doc/webservices-api/api/cart#example). – Zyava
@Zyava: Posso confermare che l'errore è ancora presente in Magento CE 1.6.0.0. Tutto funziona correttamente quando utilizzo ID anziché SKU. – Epicurus
Aspetta, chiariamo il problema. Quando si chiama aggiungi al carrello con sku numerico: '$ proxy-> call ($ sessionId," cart_product.add ", array ($ shoppingCartId, array (" sku "=>" 111 ")));' il prodotto non è aggiunto al carrello? – Zyava