2015-06-26 2 views
3

Имея небольшую проблему с API Bigcommerce при попытке доступа к массиву объектов «Product» SKU продукта.Bigcommerce Product SKU's -> Options

я могу получить доступ всего остального в пределах объекта СКА, просто не Options - делает print_r на $sku->options не показывает все возвращенные данные и var_dump показывает '(bool)false'. Вот мой код:

$filter = array('sku' => '940801DB'); 
$skus = Bigcommerce::getSkus($filter); 

foreach ($skus as $sku){ 
    echo '<pre>'; 
    print_r($sku->options); 
    echo '</pre>'; 
} 

Любые идеи о доступе к этому массиву/объекту?

Дополнительная информация:

Если я print_r ($ ы) я получаю:

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 
      (
      ) 

    ) 
) 
+0

вы решили проблему? – miglio

+0

Нет, еще не решен ... – Matthew

ответ

1

Это похоже на баг Bigcommerce API. Я установил его с помощью композитора, если вы посмотрите на исходный код Bigcommerce API, внутри поставщика/BigCommerce/API/SRC/BigCommerce/Api/Ресурсы/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 нет ресурса. В продуктах, это так:

"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 
     } 
    ] 

кажется ошибка для меня.

1

Не знаю, почему вы не можете получить доступ к этой переменной. Это больше похоже на проблему с PHP, чем с Bigcommerce.

Тем не менее, обходным путем было бы получить данные о параметрах самостоятельно. Просто отправьте запрос GET по следующему конечной точке:

/products/{{product_id}}/options.json 
0

опции ниже полей

Попробуйте

print_r($sku->fields->options); 
Смежные вопросы