我正在尝试将产品从 Prestashop 1.7 导出到 XML。一切正常,但脚本多次导出产品,具体取决于所属类别。例如 Product1 在 All products - Clothes - Men 中,在这种情况下将以 XML 导出 3 次。
我尝试使用基于产品 ID 的 array_unique,但它不起作用。有人可以给我指出正确的方向吗?
完整的代码可以在这里找到: https: //pastebin.com/MQxfYSj2
在这部分代码中,我尝试使用 array_unique 但没有结果:
private function getProductFromArray($arrProduct){
$objProduct = new Okazii_Connector_Product();
$objProduct->ID = $arrProduct['id_product'];
$objProduct->UniqueID = $arrProduct['id_product'];
$objProduct->Title = $arrProduct['name'];
if (mb_strlen($arrProduct['description']) > 3){
$objProduct->Description = $arrProduct['description'];
} else if (mb_strlen($arrProduct['description_short'])) {
$objProduct->Description = $arrProduct['description_short'];
} else {
$objProduct->Description = $arrProduct['name'];
}
$objProduct->Amount = $arrProduct['quantity'];
if ($objProduct->Amount == 0){
$objProduct->Amount = $this->getAmountFromStock($arrProduct['id_product']);
}
$objProduct->Category = $this->getCategoryString($arrProduct['id_category']);
$objProduct->Currency = $this->getCurrency();
$objProduct->Price = $arrProduct['price'];
if(!empty($arrProduct['available_now']) && $objProduct->Amount > 0)
{
$objProduct->InStock = $arrProduct['available_now'];
}
if(!empty($arrProduct['gtin']))
{
$objProduct->GTIN = $arrProduct['gtin'];
}
else if(!empty($arrProduct['ean13']))
{
$objProduct->GTIN = $arrProduct['ean13'];
}
else if(!empty($arrProduct['isbn']))
{
$objProduct->GTIN = $arrProduct['isbn'];
}
$this->setProductImages($objProduct);
$this->setProductBrand($objProduct, $arrProduct['id_manufacturer']);
return $objProduct;
}
我还尝试在脚本顶部仅获取基于产品 ID 的唯一产品,但效果不佳。
其他有用信息:PHP 7.2、Prestashop 1.7.6.5
宝慕林4294392