Opencart 模块错误: 警告:opencart/admin/model/catalog/product 中'model'非法字符串偏移量.php



我正在尝试创建一个模块来自动从外部数据库导入产品到Opencart的数据库。

我遵循了所有可用的文档来构建模块。创建控制器,视图,语言文件。我没有创建模型文件,因为我使用的是opencarts模型。

在我的控制器opencart/admin/controller/extension/module/auto_product_import.php

我正在开始连接我的外部数据库。

然后执行查询来检索所有产品及其数据(价格、描述等)。

之后,我创建了一个数组来满足open - art模型的需要,并用我新检索到的数据填充它:

for ($i=0; $i < 1; $i++) { 
$products_data_array[] = array(
'product_description' => array(
'name' => strval($results['product_CODE'][$i]),
'meta_description' => strval($results['DESCR'][$i]),
'meta_keyword' => strval($results['product_CODE'][$i]),
'description' => strval($results['DESCR'][$i]),
'tag' => strval($results['CODCODE'][$i]),
),
'custom_id' => $results['custom_ID'][$i],
'model' => $results['product_CODE'][$i], 
'sku' => '', 
'upc' => '', 
'ean' => '', 
'jan' => '', 
'isbn' => '', 
'mpn' => '', 
'location' => '', 
'price' => $results['PRICE'][$i], 
'tax_class_id' => '',
'quantity' => '',
'minimum' => '',
'subtract' => '',
'stock_status_id' => '5',
'shipping' => '',
'keyword' => '', 
'image' => '',
'date_available' => '',
'length' => '',
'width' => '',
'height' => '',
'length_class_id' => '',
'weight' => strval($results['weight'][$i]),
'weight_class_id' => '',
'status' => '1',
'sort_order' => '',
'manufacturer' => $brand, 
'manufacturer_id' => '', 
'category' => strval($results['category'][$i]), 
'filter' => '', 
'product_store' => array(
'0' => 0
),
'download' => '',
'related' => '',
'product_attribute' => array(
'0' => array(
'name' => '',
'attribute_id' => '', 
'product_attribute_description' => array(
'1' => array(
'text' => "first language content"
)
)
)

),
'option' => '',
'points' => '',
'product_reward' => array(
'1' => array(
'points' => ''
)
),
'product_layout' => array(
'0' => array(
'layout_id' => '' 
)
)
);

注意:使用for循环进行测试

注意: openart数组的一些项是空的,因为我没有数据可以为它们导入

然后我加载openart的模型来添加产品:

$this->load->model('catalog/product');

然后我导入产品使用:

$this->model_catalog_product->addProduct($products_data_array);

当我加载模块时,我得到以下消息:

警告:第4行opencart/admin/model/catalog/product.php中的非法字符串偏移'model'
警告:第4行opencart/admin/model/catalog/product.php中的非法字符串偏移'custom_id'
警告:第4行opencart/admin/model/catalog/product.php中的非法字符串偏移'sku'
警告:第4行opencart/admin/model/catalog/product.php中的非法字符串偏移'upc'
警告:第4行opencart/admin/model/catalog/product.php中的非法字符串偏移'upc'
警告:第4行opencart/admin/model/catalog/product.php中的非法字符串偏移'upc'
警告:第4行opencart/admin/model/catalog/product.php中的非法字符串偏移'ean'
警告:第4行opencart/admin/model/catalog/product.php中的非法字符串偏移'isbn'
警告:第4行opencart/admin/model/catalog/product.php中的非法字符串偏移'mpn'
警告:第4行opencart/admin/model/catalog/product.php中的非法字符串偏移'location'
警告:第4行opencart/admin/model/catalog/product.php中的非法字符串偏移'location'
警告:第4行opencart/admin/model/catalog/product.php中的非法字符串偏移'location'
警告:第4行opencart/admin/model/catalog/product.php中的非法字符串偏移'location'
警告:非法字符串offset 'quantity'在opencart/admin/model/catalog/product.php第4行
警告:非法字符串offset 'minimum'在opencart/admin/model/catalog/product.php第4行
警告:非法字符串offset 'subtract'在opencart/admin/model/catalog/product.php第4行
警告:非法字符串offset 'stock_status_id'在opencart/admin/model/catalog/product.php第4行
警告:非法字符串offset 'stock_status_id'在opencart/admin/model/catalog/product.php
警告:非法字符串offset 'stock_status_id'在opencart/admin/model/catalog/product.php
警告:非法字符串偏移'date_available'在opencart/admin/model/catalog/product.php在第4行
警告:非法字符串偏移'manufacturer_id'在opencart/admin/model/catalog/product.php在第4行
警告:非法字符串偏移'shipping'在opencart/admin/model/catalog/product.php在第4行
警告:非法字符串偏移'price'在opencart/admin/model/catalog/product.php在第4行
警告:非法字符串偏移'price'在opencart/admin/model/catalog/product.php在第4行
警告:
警告:在opencart/admin/model/catalog/product.php中在第4行出现的非法字符串偏移'points'
警告:在opencart/admin/model/catalog/product.php中在第4行出现的非法字符串偏移'weight_class_id'
警告:在opencart/admin/model/catalog/product.php中在第4行出现的非法字符串偏移'length'
警告:在opencart/admin/model/catalog/product.php中出现的非法字符串偏移'length'
警告:在opencart/admin/model/catalog/product.php中出现的非法字符串偏移'points'
警告:在opencart/admin/model/catalog/product.php的第4行,非法字符串偏移'width'
警告:在opencart/admin/model/catalog/product.php的第4行,非法字符串偏移'length_class_id'
警告:在opencart/admin/model/catalog/product.php的第4行,非法字符串偏移'status'
警告:在opencart/admin/model/catalog/product.php,非法字符串偏移'status'
警告:
警告:第4行opencart/admin/model/catalog/product.php中的非法字符串偏移'tax_class_id'
警告:第12行opencart/admin/model/catalog/product.php中的非法字符串偏移'sort_order'

我试图修改product.php模型,但我没有运气。(

它还插入了一个包含新产品的行,但所有字段都是空的,它只得到和id。

为了以防万一,我甚至检查了我的新数组。但是我没有发现任何问题。

有谁知道什么是错的或我错过了什么?

看起来addProduct()每次只添加一个产品,而您发送的是整个产品数组。

试试这个:

foreach ($products_data_array as $product) {
$this->model_catalog_product->addProduct($product);
}

这个问题在我重组数组后得到了解决。子数组应该有一个子数组,其中language_id作为键。

函数数组的结构应该如下:

$products_data_array[] = array(
'product_description' => array(
'0' => array(
'name' => $name,
'meta_description' => $meta_description,
'meta_title' => $meta_title,
'meta_keyword' => $meta_keyword,
'description' => $description,
'tag' => $tag,
)
),
'mciid' => $mciid,
'model' => $model, 
'sku' => '', 
'upc' => '', 
'ean' => '', 
'jan' => '', 
'isbn' => '', 
'mpn' => '', 
'location' => '', 
'price' => $price, 
'tax_class_id' => '',
'quantity' => '',
'minimum' => '',
'subtract' => '',
'stock_status_id' => '5',
'shipping' => '',
'keyword' => '', 
'image' => '',
'date_available' => '',
'length' => '',
'width' => '',
'height' => '',
'length_class_id' => '',
'weight' => $weight,
'weight_class_id' => '',
'status' => '1',
'sort_order' => '',
'manufacturer' => $brand, 
'manufacturer_id' => '111', 
'category' => $category, 
'filter' => '', 
'product_store' => array(
'0' => 0
),
'download' => '',
'related' => '',
'product_attribute' => array(
'0' => array(
'name' => '',
'attribute_id' => '', 
'product_attribute_description' => array(
'1' => array(
'text' => "first language content"
)
)
)
),
'option' => '',
'points' => '',
'product_reward' => array(
'1' => array(
'points' => ''
)
),
'product_layout' => array(
'0' => array(
'layout_id' => '2' 
)
)
);

注意:这个数组在Opencart的3.0.3.8版本上是可用的。

相关内容

  • 没有找到相关文章

最新更新