Soap API を使用して Magento のカートに製品を追加しようとすると、次のエラーが発生します: SoapFault:Call to a member function setFinalPrice() on a non-object
次の手順を実行します。
- の作成
cart($this->call($this->_session, 'cart.create', array($store));)
- 顧客の住所と情報の設定(cart_customer.set、cart_customer.addresses)
これは、次の場合に次の配列になり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] => test@test.nl
[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] =>
)
)
しかしexecute(cart_product.add)
、次の配列を使用しようとすると:
Array
(
'sku' => '44567788855',
'quantity' => 1
)
に関するエラーが表示されますsetFinalPrice
。
問題は、この Magento インストール (API アカウントのみ) にアクセスできないことです。すべてのサンプルコードにサイト (http://www.magentocommerce.com/api/soap/checkout/cartProduct/cart_product.add.html) を使用しました。
sku の代わりに product_id を使用するとうまくいきました。どういうわけかこれは機能しませんが、API に文書化されています