【发布时间】:2021-11-10 19:02:49
【问题描述】:
请帮我解决以下问题: 我从第三方供应商处获得了以下格式的 JSON 文件:
[{
"SKU": "427515"
"name": "Frame",
"description": "18*23",
"barcode": "6907000061885",
"price": 356,
"category": "Frame",
"full_category": "souvenirs and gifts"
"box_length": 23,
"box_width": 19,
"box_height": 2,
}]
其中 - full_category 是父类别,而 category - 是子类别。 然后我通过PHP脚本将此JSON导入woocomerce,问题是我不明白如何为没有categoryID的父添加子类别? 前商店管理员给我留下了以下脚本:
function createProducts()
{
$woocommerce = getWoocommerceConfig();
$products = getJsonFromFile();
$imgCounter = 0;
foreach ($products as $product) {
/*Chec sku before create the product */
$productExist = checkProductBySku($product['sku']);
$categories = $product['categorias'];
$categoriesIds = array();
foreach ($categories as $category) {
$categoriesIds[] = ['id' => getCategoryIdByName($category)];
}
$finalProduct = [
'categories' => $categoriesIds,
];
}
}
function createCategories()
{
$categoryValues = getCategories();
$woocommerce = getWoocommerceConfig();
foreach ($categoryValues as $value) {
if (!checkCategoryByname($value)) {
$data = [
'name' => $value
];
$woocommerce->post('products/categories', $data);
}
}
}
function checkCategoryByName($categoryName)
{
$woocommerce = getWoocommerceConfig();
$categories = $woocommerce->get('products/categories');
foreach ($categories as $category) {
if ($category['name'] === $categoryName) {
return true;
}
}
return false;
}
function getCategories()
{
$products = getJsonFromFile();
$categories = array_column($products, 'categorias');
foreach ($categories as $categoryItems) {
foreach ($categoryItems as $categoryValue) {
$categoryPlainValues[] = $categoryValue;
}
}
$categoryList = array_unique($categoryPlainValues);
return $categoryList;
}
function getCategoryIdByName($categoryName)
{
$woocommerce = getWoocommerceConfig();
$categories = $woocommerce->get('products/categories');
foreach ($categories as $category) {
if ($category['name'] == $categoryName) {
return $category['id'];
}
}
}
我不太擅长 PHP,谁能告诉我如何更改它以从上面的 json 中获取父子类别。
【问题讨论】:
标签: php json rest woocommerce