Magento SOAP no puede crear orden
Frecuentes
Visto 2,111 veces
3
El problema
Tengo problemas para crear un pedido con la API SOAP de Magento. Tengo todas las necesidades básicas en su lugar (fragmento de código a continuación), pero cada vez que intento crear el pedido, falla con el código de estado 1008 (consulte Documentos de Magento).
Sin embargo, no hay ningún mensaje de falla, así que solo sé que la creación del pedido falló.
$cart_id = $magi->execute("cart.create");
$customerEntity = $magi->execute("customer.info",5);
$customerEntity["mode"] = "customer";
$customerAddressEntity = $magi->execute("customer_address.info",$customerEntity["default_billing"]);
$customerAddressEntity["mode"] = "billing";
$magi->execute("cart_customer.set", array($cart_id,$customerEntity));
$magi->execute("cart_customer.addresses", array($cart_id,array($customerAddressEntity)));
$productEntity = array("product_id" => 48,"qty" => 1);
$magi->execute("cart_product.add",array($cart_id,array($productEntity)));
$magi->execute("cart_payment.method",array($cart_id,array("method" => "banktransfer")));
$orderId = $magi->execute("cart.order", array($cart_id));
En el registro de magento se registran los siguientes mensajes después de esta operación.
Desplazamiento indefinido: 0/var/www/cloud2u.nl/mccloud_n/app/code/core/Mage/Checkout/Model/Cart/Payment/Api.php
Variable no definida: websiteId/var/www/cloud2u.nl/mccloud_n/app/code/core/Mage/Catalog/Model/Resource/Product/Collection.php.
(esta entrada se repite 3 veces después de esta, cada una con medio segundo de diferencia).
Estoy perdido aquí, estaba en condiciones de trabajo hace un par de semanas y no ha cambiado mucho desde entonces.
Más información
La $magos La variable contiene un objeto que es una abstracción para usar la API de Magento Soap. También detecta y registra todos los errores, por lo tanto, no hay bloques de prueba/captura en este código.
- Versión de Magento: 1.7.0.0
- PHP versión 5.4.6
- Sistema operativo del servidor: Ubuntu 11.10 (servidor de desarrollo)
3 Respuestas
1
Creo que su $productEntity está mal.
$productEntity = array(
array("product_id" => 48,"qty" => 1);
);
y hace que el carrito esté vacío.
^^
Respondido 05 ago 12, 12:08
1
Desplazamiento indefinido: 0/var/www/cloud2u.nl/mccloud_n/app/code/core/Mage/Checkout/Model/Cart/Payment/Api.php
el error significa que hay una matriz que no tiene valor para [ '0' ]
Respondido 14 ago 12, 09:08
1
El primer error:
Desplazamiento indefinido: 0/var/www/cloud2u.nl/mccloud_n/app/code/core/Mage/Checkout/Model/Cart/Payment/Api.php
Se debe a un error en Api.php en este método:
protected function _preparePaymentData($data)
{
if (!(is_array($data) && is_null($data[0]))) {
return array();
}
return $data;
}
Pude deshacerme de este problema reemplazando
if (!(is_array($data) && is_null($data[0])))
con
if (!(is_array($data) && !isset($data[0])))
Durante la prueba, funciona de la misma manera y elimina el error.
respondido 31 mar '15, 23:03
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas api magento soap or haz tu propia pregunta.
Este es un error en Magento, pero no la causa del problema. Esta advertencia se puede eliminar agregando un valor a [0] en la matriz del método de pago. - i.amniels