Bigcommerce 产品 SKU -> 选项
Bigcommerce Product SKU's -> Options
在尝试访问产品 SKU 'Options' array_object.
时遇到 Bigcommerce API 的小问题
我可以访问 SKU 对象中的所有其他内容,但不能访问 Options
- 在 $sku->options
上执行 print_r
不会显示任何返回数据,并且 var_dump 显示 '(bool)false'
。这是我的代码:
$filter = array('sku' => '940801DB');
$skus = Bigcommerce::getSkus($filter);
foreach ( $skus as $sku ){
echo '<pre>';
print_r( $sku->options );
echo '</pre>';
}
知道如何访问这个 array/object 吗?
更多信息:
如果我 print_r($sku) 我得到:
Array
(
[0] => Bigcommerce\Api\Resources\Sku Object
(
[ignoreOnCreate:protected] => Array
(
[0] => product_id
)
[ignoreOnUpdate:protected] => Array
(
[0] => id
[1] => product_id
)
[fields:protected] => stdClass Object
(
[id] => 1
[product_id] => 225
[sku] => 940801DB
[cost_price] => 0.0000
[upc] =>
[inventory_level] => 0
[inventory_warning_level] => 0
[bin_picking_number] =>
[options] => Array
(
[0] => stdClass Object
(
[product_option_id] => 1
[option_value_id] => 834
)
[1] => stdClass Object
(
[product_option_id] => 2
[option_value_id] => 829
)
[2] => stdClass Object
(
[product_option_id] => 3
[option_value_id] => 827
)
)
)
[id:protected] => 1
[ignoreIfZero:protected] => Array
(
)
[fieldMap:protected] => Array
(
)
)
)
不确定为什么您无法访问该变量。 PHP 比 Bigcommerce 更像是一个问题。
不过,解决方法是自己获取选项数据。
只需向以下端点发送 GET 请求:
/products/{{product_id}}/options.json
这似乎是 Bigcommerce 的一个错误 API。我使用 composer 安装它,如果你看一下 Bigcommerce API 的源代码,在 vendor/bigcommerce/api/src/Bigcommerce/Api/Resources/Sku.php:
public function options()
{
$options = Client::getCollection($this->fields->options->resource, 'SkuOption');
foreach ($options as $option) {
$option->product_id = $this->product_id;
}
return $options;
}
看到它得到了$this->fields->options->resource,但是options数组里面没有resource。在产品中是这样的:
"options": {
"url": "https://store-et7xe3pz.mybigcommerce.com/api/v2/products/32/options.json",
"resource": "/products/32/options"
},
但在 sku 中是这样的:
"options": [
{
"product_option_id": 15,
"option_value_id": 18
},
{
"product_option_id": 16,
"option_value_id": 26
}
]
对我来说似乎是个错误。
选项在字段下方
尝试
print_r($sku->fields->options);
在尝试访问产品 SKU 'Options' array_object.
时遇到 Bigcommerce API 的小问题我可以访问 SKU 对象中的所有其他内容,但不能访问 Options
- 在 $sku->options
上执行 print_r
不会显示任何返回数据,并且 var_dump 显示 '(bool)false'
。这是我的代码:
$filter = array('sku' => '940801DB');
$skus = Bigcommerce::getSkus($filter);
foreach ( $skus as $sku ){
echo '<pre>';
print_r( $sku->options );
echo '</pre>';
}
知道如何访问这个 array/object 吗?
更多信息:
如果我 print_r($sku) 我得到:
Array
(
[0] => Bigcommerce\Api\Resources\Sku Object
(
[ignoreOnCreate:protected] => Array
(
[0] => product_id
)
[ignoreOnUpdate:protected] => Array
(
[0] => id
[1] => product_id
)
[fields:protected] => stdClass Object
(
[id] => 1
[product_id] => 225
[sku] => 940801DB
[cost_price] => 0.0000
[upc] =>
[inventory_level] => 0
[inventory_warning_level] => 0
[bin_picking_number] =>
[options] => Array
(
[0] => stdClass Object
(
[product_option_id] => 1
[option_value_id] => 834
)
[1] => stdClass Object
(
[product_option_id] => 2
[option_value_id] => 829
)
[2] => stdClass Object
(
[product_option_id] => 3
[option_value_id] => 827
)
)
)
[id:protected] => 1
[ignoreIfZero:protected] => Array
(
)
[fieldMap:protected] => Array
(
)
)
)
不确定为什么您无法访问该变量。 PHP 比 Bigcommerce 更像是一个问题。
不过,解决方法是自己获取选项数据。 只需向以下端点发送 GET 请求:
/products/{{product_id}}/options.json
这似乎是 Bigcommerce 的一个错误 API。我使用 composer 安装它,如果你看一下 Bigcommerce API 的源代码,在 vendor/bigcommerce/api/src/Bigcommerce/Api/Resources/Sku.php:
public function options()
{
$options = Client::getCollection($this->fields->options->resource, 'SkuOption');
foreach ($options as $option) {
$option->product_id = $this->product_id;
}
return $options;
}
看到它得到了$this->fields->options->resource,但是options数组里面没有resource。在产品中是这样的:
"options": {
"url": "https://store-et7xe3pz.mybigcommerce.com/api/v2/products/32/options.json",
"resource": "/products/32/options"
},
但在 sku 中是这样的:
"options": [
{
"product_option_id": 15,
"option_value_id": 18
},
{
"product_option_id": 16,
"option_value_id": 26
}
]
对我来说似乎是个错误。
选项在字段下方
尝试
print_r($sku->fields->options);