php - BigCommerce api循环中的多个商店

标签 php api foreach bigcommerce

我目前正在创建一个网络应用程序,需要循环访问多个 BigCommerce 商店。不幸的是,使用 BigCommerce API 时我无法让它循环。

我正在使用 GitHub 上最新版本的 BC API PHP 库(使用命名空间的库),请参阅下面的代码:

require_once( 'autoload.php' );

use Bigcommerce\Api\Client as Bigcommerce;

$stores[1]['url'] = 'https://www.store1.co.uk';
$stores[1]['api_key'] = 'e01e16e6b51d70f6de213fd7445dc0f4';
$stores[1]['user'] = 'admin';
$stores[2]['url'] = 'https://www.store2.co.uk';
$stores[2]['api_key'] = '7b8b934e157eac734b7f7b4311b7cd81';
$stores[2]['user'] = 'admin';


foreach ( $stores as $store ){

    echo $store['url'] . ' - ';

    Bigcommerce::configure(array(
        'store_url' => $store['url'],
        'username'  => $store['user'],
        'api_key'   => $store['api_key'],
    ));

    Bigcommerce::setCipher('RC4-SHA');
    Bigcommerce::verifyPeer( false );

    $products = Bigcommerce::getProductsCount();

    echo $products . ' products<br />;

}

预期输出应该是:

https://www.store1.co.uk - 301 products
https://www.store2.co.uk - 235 products

我实际得到的是:

https://www.store1.co.uk - 301 products
https://www.store2.co.uk -

我之前曾使用过该 API 几次,但每次/每个项目只连接到一个商店。在连接到 foreach 循环中的下一个商店之前,是否需要关闭连接或其他操作?

非常感谢所有帮助!

最佳答案

查看 Bigcommerce PHP 库中的以下代码段。

/**
     * Get an instance of the HTTP connection object. Initializes
     * the connection if it is not already active.
     *
     * @return Connection
     */
    private static function connection()
    {
        if (!self::$connection) {
            self::$connection = new Connection();
            self::$connection->authenticate(self::$username, self::$api_key);
        }

        return self::$connection;
    }

这来自 Client.php - https://github.com/bigcommerce/bigcommerce-api-php/blob/master/src/Bigcommerce/Api/Client.php

如果你看看你正在做什么,它不会工作,因为现有的连接将迫使库忽略新值。仅当您第一次设置时才会形成新的商店连接。

针对您的特殊用例的一个简单修复方法是覆盖上述函数以重新连接到新商店,而不管现有连接如何。

希望这能成功!

关于php - BigCommerce api循环中的多个商店,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15507655/

相关文章:

php - 如何使用 SELECT 查询在准备好的语句中设置两个值?

php - 您不是此客户端的沙盒用户。错误代码点火器-Instagram api

php - fatal error : Uncaught SoapFault exception: [ns1:Client. AUTH_1] 身份验证失败

javascript - 使用 Javascript 在 Youtube 网站内检测 Youtube 视频的结尾

api - 使用 OpenSearch Python bulk api 将数据插入多个索引

javascript - JavaScript 中的 For..In 循环 - 键值对

php - 如何从CodeIgniter中的数据库中获取下拉列表中的数据

java - 使用或不使用targetsdkVersion 23

PHP Mysql PDO 查询从 foreach 存储的多个值输出

c++ - 这个foreach宏实现有没有问题