我想通过代码在 Prestashop 上添加 x 个客户,但有额外的字段

Posted

技术标签:

【中文标题】我想通过代码在 Prestashop 上添加 x 个客户,但有额外的字段【英文标题】:I want to add x customers on Prestashop via code but with extra fields 【发布时间】:2019-10-10 22:28:59 【问题描述】:

我正在尝试使用代码添加客户,但 PrestaShop 给了我一个错误。 我使用 php 和 XML

$XMLRQString = '<?xml version="1.0" encoding="utf-8"?>'.
    '<x:Winmax4GetEntitiesRQ xmlns:x="urn:Winmax4GetEntitiesRQ">'.
                    '</x:Winmax4GetEntitiesRQ >';
                    $Params=array(
                    'CompanyCode'=>'',
                    'UserLogin'=>'',
                    'UserPassword'=>'',
                    'Winmax4GetEntitiesRQXML'=> $XMLRQString
                    );
                    $return = $client->GetEntities($Params);
                    $XMLRSString = new SimpleXMLElement($return->GetEntitiesResult);

foreach ($XMLRSString->Entities->Entity as $entity)
   
    $default_lang= Configuration::get('PS_LANG_DEFAULT');

    $customer=new Customer();

    $customer->email= $entity->Email;

    $customer->lastname= $entity->EntityType;

    $customer->firstname= [$default_lang => $entity->Name];

    $customer->contribuinte= $entity->TaxPayerID;

    $customer->passwd= $entity->TaxPayerID;

    $customer->active = 1;

    $customer->add();

错误:(1/1) ContextErrorException 警告:preg_match() 预期 参数2为字符串,给定数组

在 Validate.php 第 172 行

在 ValidateCore::isCustomerName(array(object(SimpleXMLElement))) 中 ObjectModel.php 第 1149 行

在 ObjectModelCore->validateField('firstname', ObjectModel.php 第 981 行中的数组(对象(SimpleXMLElement)))

在 ObjectModelCore->validateFields() 中 ObjectModel.php 第 284 行

在 ObjectModelCore->getFields() 中 ObjectModel.php 第 551 行

在 ObjectModelCore->在 Customer.php 第 264 行添加(true, true)

在 CustomerCore->add() 在 create_clients.php 第 66 行

【问题讨论】:

你试过$customer-&gt;firstname= (string)$entity-&gt;Name; 大声笑,非常感谢 【参考方案1】:

当从 SimpleXML 存储值时,如果您只是通过标签名称引用元素本身 - 这将是 SimpleXMLElement 的一个实例。由于您想要元素的实际内容,最简单的方法是将其转换为字符串...

$customer->firstname= (string)$entity->Name;

【讨论】:

以上是关于我想通过代码在 Prestashop 上添加 x 个客户,但有额外的字段的主要内容,如果未能解决你的问题,请参考以下文章

Prestashop - 添加模块到钩子

使用 Python 向 API Prestashop 发送 POST 请求

如何通过Prestashop API使用python请求更新字段?在Prestashop 1.7

在结帐 prestashop 1.7 中添加字段

Prestashop 智能代码

prestashop用户登录集成