Php Magento SOAP订单失败,显示消息“0”;生日是必需的;
我使用此代码通过Php Magento SOAP订单失败,显示消息“0”;生日是必需的;,php,magento,Php,Magento,我使用此代码通过magento(1.9)soapapiv2创建订单 问题是,我必须为一个站点这样做,其中dob(出生日期)是必填字段。因此,我确实收到了一条错误消息——在那个网站上——“生日是必需的” 是否有人知道如何解决该问题(在不按要求禁用dob字段的情况下) $storeId='1'; $quoteId=$client->shoppingCartCreate($session,$storeId); 回显“引号ID:”$quoteId; /*设置购物车客户*/ $guest=true; 如果
magento
(1.9)soapapi
v2创建订单
问题是,我必须为一个站点这样做,其中dob(出生日期)是必填字段。因此,我确实收到了一条错误消息——在那个网站上——“生日是必需的”
是否有人知道如何解决该问题(在不按要求禁用dob字段的情况下)
$storeId='1';
$quoteId=$client->shoppingCartCreate($session,$storeId);
回显“
引号ID:”$quoteId;
/*设置购物车客户*/
$guest=true;
如果($guest)
{
$customerData=array(
“firstname”=>“testFirstname”,
“lastname”=>“testLastName”,
“电子邮件”=>”testEmail@mail.com",
“模式”=>“来宾”,
“网站id”=>“1”
);
}
其他的
{
$customer=array(
“客户id”=>“69301”,
“网站id”=>“1”,
“组id”=>“1”,
“门店标识”=>“1”,
“模式”=>“客户”,
);
}
//设置购物车客户(将客户指定给报价)
$resultCustomerSet=$client->shoppingCartCustomerSet($session、$quoteId、$customerData、$storeId);
回显“
设置客户:”;
变量转储($resultCustomerSet)//设定客户
/*设置客户地址发货和计费*/
$addresses=数组(
排列(
“模式”=>“配送”,
“firstname”=>“Ahsan”,
“lastname”=>“testLastname”,
“公司”=>“测试公司”,
“street”=>“testStreet”,
“城市”=>“卡拉奇”,
“地区”=>“信德省”,
“邮政编码”=>“7502”,
“国家/地区id=>”主键“,
“电话”=>“0123456789”,
“传真”=>“0123456789”,
“是否默认配送”=>0,
“是否为默认账单”=>0
),
排列(
“模式”=>“计费”,
“firstname”=>“Ahsan”,
“lastname”=>“testLastname”,
“公司”=>“测试公司”,
“street”=>“testStreet”,
“城市”=>“卡拉奇”,
“地区”=>“信德省”,
“邮政编码”=>“7502”,
“国家/地区id=>”主键“,
“电话”=>“0123456789”,
“传真”=>“0123456789”,
“是否默认配送”=>0,
“是否为默认账单”=>0
)
);
//设置购物车客户地址
$resultCustomerAddress=$client->shoppingCartCustomerAddresses($session,$quoteId,$addresses,$storeId);
echo“
设置客户地址:”;
变量转储($resultCustomerAddress)//设置客户地址
/*将产品添加到购物车*/
$product=数组(
“产品标识”=>“905”,
//“sku”=>“简单产品”,
“数量”=>“1”,
“选项”=>null,
“bundle_option”=>null,
“捆绑选项数量”=>null,
“链接”=>null);
$product2=数组(
“产品标识”=>“904”,
//“sku”=>“简单产品”,
“数量”=>“2”,
“选项”=>null,
“bundle_option”=>null,
“捆绑选项数量”=>null,
“链接”=>null);
$addToCart=$client->shoppingCartProductAdd($session,$quoteId,array($product,$product2),$storeId);
echo“
添加到购物车:”;
var_dump($addToCart);
/*设定付款方式*/
$responsePayment=$client->shoppingCartPaymentMethod($session,$quoteId,数组)(
'方法'=>'现金交付',
),$storeId);
echo“
设置付款方式:”;
var_dump($responsePayment);
/*设定运输方式*/
$setShipping=$client->shoppingCartShippingMethod($session,$quoteId,'flatrate\u flatrate',$storeId);
echo“
设置发货方式:”;
var_转储($setShipping);
/*设置折扣代码*/
尝试
{
$result=$client->shoppingcartcuponadd($session,$quoteId,'test123',$storeId);
回显“
应用折扣代码:”;
var_dump($结果);
}
捕获(例外$ex)
{
echo“
折扣代码失败:”..ex->getMessage();
模具();
}
$orderId=$client->shoppingCartOrder($session,$quoteId,$storeId,null);
echo“
下订单:”;
var_dump($orderId);
您到底有什么问题?您说您收到一条错误消息“生日是必需的”,因为系统环境需要一个生日来运行订单。尝试下订单时,您的代码未定义任何生日。因此,系统不会下订单,但会向您发送错误消息。从给定的角度来看,您的系统工作正常。问题是,我不知道如何将bod添加到api请求中。。。如果我在$customerData中添加'bod',则没有任何效果。尽管指出,shoppingCartCustomerEntity没有bod字段。CartCustomer确实包含一个customer_id,该id指向一个customer(),该customer()包含一个名为“bod”的字段。也许这是您缺少的字段?但它应该作为“来宾”订单工作。有人知道怎么做吗?如果bod是疯狂的,我想你不会。你到底有什么问题?您说您收到一条错误消息“生日是必需的”,因为系统环境需要一个生日来运行订单。尝试下订单时,您的代码未定义任何生日。因此,系统不会下订单,但会向您发送错误消息。从给定的角度来看,您的系统工作正常。问题是,我不知道如何将bod添加到api请求中。。。如果我在$customerData中添加'bod',则没有任何效果。尽管指出,shoppingCartCustomerEntity没有bod字段。CartCustomer确实包含一个customer_id,该id指向一个customer(),该customer()包含一个名为“bod”的字段。也许这是您缺少的字段?但它应该作为“来宾”订单工作。有人知道怎么做吗?我想如果bod很疯狂的话,你就不会。
$storeId = '1';
$quoteId = $client->shoppingCartCreate($session,$storeId);
echo "<br>Quote ID : " . $quoteId;
/* Set cart customer */
$guest = true;
if ($guest)
{
$customerData = array(
"firstname" => "testFirstname",
"lastname" => "testLastName",
"email" => "testEmail@mail.com",
"mode" => "guest",
"website_id" => "1"
);
}
else
{
$customer = array(
"customer_id" => '69301',
"website_id" => "1",
"group_id" => "1",
"store_id" => "1",
"mode" => "customer",
);
}
//Set cart customer (assign customer to quote)
$resultCustomerSet = $client->shoppingCartCustomerSet($session, $quoteId, $customerData,$storeId);
echo "<br>Set Customer: ";
var_dump($resultCustomerSet); //Set customer
/* Set customer addresses Shipping and Billing */
$addresses = array(
array(
"mode" => "shipping",
"firstname" => "Ahsan",
"lastname" => "testLastname",
"company" => "testCompany",
"street" => "testStreet",
"city" => "Karachi",
"region" => "Sindh",
"postcode" => "7502",
"country_id" => "PK",
"telephone" => "0123456789",
"fax" => "0123456789",
"is_default_shipping" => 0,
"is_default_billing" => 0
),
array(
"mode" => "billing",
"firstname" => "Ahsan",
"lastname" => "testLastname",
"company" => "testCompany",
"street" => "testStreet",
"city" => "Karachi",
"region" => "Sindh",
"postcode" => "7502",
"country_id" => "PK",
"telephone" => "0123456789",
"fax" => "0123456789",
"is_default_shipping" => 0,
"is_default_billing" => 0
)
);
//Set cart customer address
$resultCustomerAddress = $client->shoppingCartCustomerAddresses($session, $quoteId, $addresses,$storeId);
echo "<br>Set Customer Address: ";
var_dump($resultCustomerAddress); //Set customer addresses
/* Add products to cart */
$product = array(
'product_id' => '905',
// 'sku' => 'simple_product',
'qty' => '1',
'options' => null,
'bundle_option' => null,
'bundle_option_qty' => null,
'links' => null);
$product2 = array(
'product_id' => '904',
// 'sku' => 'simple_product',
'qty' => '2',
'options' => null,
'bundle_option' => null,
'bundle_option_qty' => null,
'links' => null);
$addToCart = $client->shoppingCartProductAdd($session, $quoteId, array($product,$product2),$storeId);
echo "<br>Add to Cart: ";
var_dump($addToCart);
/* Set payment method */
$responsePayment = $client->shoppingCartPaymentMethod($session, $quoteId, array(
'method' => 'cashondelivery',
),$storeId);
echo "<br>Set Payment method: ";
var_dump($responsePayment);
/* Set shipping method */
$setShipping = $client->shoppingCartShippingMethod($session, $quoteId, 'flatrate_flatrate',$storeId);
echo "<br>Set Shipping method: ";
var_dump($setShipping);
/* Set Discount Code */
try
{
$result = $client->shoppingCartCouponAdd($session, $quoteId, 'test123',$storeId);
echo "<br>Apply discount code: ";
var_dump($result);
}
catch(Exception $ex)
{
echo "<br>Discount code Failed: " . $ex->getMessage();
die();
}
$orderId = $client->shoppingCartOrder($session, $quoteId, $storeId, null);
echo "<br>Placed Order: ";
var_dump($orderId);