When I try to add a product to a cart in Magento through the soap API I get this error: SoapFault:Call to a member function setFinalPrice() on a non-object
I take the following steps:
- Creating a
cart($this->call($this->_session, 'cart.create', array($store));)
- Setting customer address and information(cart_customer.set, cart_customer.addresses)
This results in the following array when calling(cart.info)
:
Array
(
[store_id] => 0
[created_at] => 2013-01-15 09:19:49
[updated_at] => 2013-01-15 09:19:51
[converted_at] =>
[is_active] => 0
[is_virtual] => 0
[is_multi_shipping] => 0
[items_count] => 0
[items_qty] => 0.0000
[orig_order_id] => 0
[store_to_base_rate] => 1.0000
[store_to_quote_rate] => 1.0000
[base_currency_code] => EUR
[store_currency_code] => EUR
[quote_currency_code] => EUR
[grand_total] => 0.0000
[base_grand_total] => 0.0000
[checkout_method] => guest
[customer_id] =>
[customer_tax_class_id] => 3
[customer_group_id] => 1
[customer_email] => [email protected]
[customer_prefix] =>
[customer_firstname] => Test
[customer_middlename] =>
[customer_lastname] => TestLasname
[customer_suffix] =>
[customer_dob] =>
[customer_note] =>
[customer_note_notify] => 1
[customer_is_guest] => 0
[remote_ip] =>
[applied_rule_ids] =>
[reserved_order_id] =>
[password_hash] => GkV4mSKHqgQ=
[coupon_code] =>
[global_currency_code] => EUR
[base_to_global_rate] => 1.0000
[base_to_quote_rate] => 1.0000
[customer_taxvat] =>
[customer_gender] => 0
[subtotal] => 0.0000
[base_subtotal] => 0.0000
[subtotal_with_discount] => 0.0000
[base_subtotal_with_discount] => 0.0000
[is_changed] => 1
[trigger_recollect] => 0
[ext_shipping_info] =>
[gift_message_id] =>
[is_persistent] => 0
[quote_id] => 4506
[shipping_address] => Array
(
[address_id] =>
[quote_id] => 4506
[created_at] => 2013-01-15 09:19:51
[updated_at] => 2013-01-15 09:19:51
[customer_id] =>
[save_in_address_book] => 0
[customer_address_id] =>
[address_type] => shipping
[email] =>
[prefix] =>
[firstname] => Test
[middlename] =>
[lastname] => TestLastname
[suffix] =>
[company] =>
[street] => street 24
[city] => Amsterdam
[region] =>
[region_id] =>
[postcode] => 3454 BM
[country_id] => NL
[telephone] => 565765765765
[fax] =>
[same_as_billing] => 0
[free_shipping] => 0
[collect_shipping_rates] => 1
[shipping_method] =>
[shipping_description] =>
[weight] => 0.0000
[subtotal] => 0.0000
[base_subtotal] => 0.0000
[subtotal_with_discount] => 0.0000
[base_subtotal_with_discount] => 0.0000
[tax_amount] => 0.0000
[base_tax_amount] => 0.0000
[shipping_amount] => 0.0000
[base_shipping_amount] => 0.0000
[shipping_tax_amount] => 0.0000
[base_shipping_tax_amount] => 0.0000
[discount_amount] => 0.0000
[base_discount_amount] => 0.0000
[grand_total] => 0.0000
[base_grand_total] => 0.0000
[customer_notes] =>
[applied_taxes] => a:0:{}
[discount_description] =>
[shipping_discount_amount] =>
[base_shipping_discount_amount] =>
[subtotal_incl_tax] => 0.0000
[base_subtotal_total_incl_tax] =>
[gift_message_id] =>
[hidden_tax_amount] =>
[base_hidden_tax_amount] =>
[shipping_hidden_tax_amount] =>
[base_shipping_hidden_tax_amnt] =>
[shipping_incl_tax] => 0.0000
[base_shipping_incl_tax] => 0.0000
)
[billing_address] => Array
(
[address_id] =>
[quote_id] => 4506
[created_at] => 2013-01-15 09:19:51
[updated_at] => 2013-01-15 09:19:51
[customer_id] =>
[save_in_address_book] => 0
[customer_address_id] =>
[address_type] => billing
[email] =>
[prefix] =>
[firstname] => Test
[middlename] =>
[lastname] => TestLastname
[suffix] =>
[company] =>
[street] => street 24
[city] => Amsterdam
[region] =>
[region_id] =>
[postcode] => 3454 BM
[country_id] => NL
[telephone] => 565765765765
[fax] =>
[same_as_billing] => 0
[free_shipping] => 0
[collect_shipping_rates] => 0
[shipping_method] =>
[shipping_description] =>
[weight] => 0.0000
[subtotal] => 0.0000
[base_subtotal] => 0.0000
[subtotal_with_discount] => 0.0000
[base_subtotal_with_discount] => 0.0000
[tax_amount] => 0.0000
[base_tax_amount] => 0.0000
[shipping_amount] => 0.0000
[base_shipping_amount] => 0.0000
[shipping_tax_amount] => 0.0000
[base_shipping_tax_amount] => 0.0000
[discount_amount] => 0.0000
[base_discount_amount] => 0.0000
[grand_total] => 0.0000
[base_grand_total] => 0.0000
[customer_notes] =>
[applied_taxes] => a:0:{}
[discount_description] =>
[shipping_discount_amount] =>
[base_shipping_discount_amount] =>
[subtotal_incl_tax] => 0.0000
[base_subtotal_total_incl_tax] =>
[gift_message_id] =>
[hidden_tax_amount] =>
[base_hidden_tax_amount] =>
[shipping_hidden_tax_amount] =>
[base_shipping_hidden_tax_amnt] =>
[shipping_incl_tax] => 0.0000
[base_shipping_incl_tax] => 0.0000
)
[items] => Array
(
)
[payment] => Array
(
[quote_id] => 4506
[payment_id] =>
)
)
But when I try to execute(cart_product.add)
with the following array:
Array
(
'sku' => '44567788855',
'quantity' => 1
)
I get the error about the setFinalPrice
.
The problem is that, I do not have access to this Magento installation(only API account). I used the site(http://www.magentocommerce.com/api/soap/checkout/cartProduct/cart_product.add.html) for all the example code.
Using product_id instead of sku worked. Somehow this does not work but is documented in their API