承接 bold-commerce/bold-shopify-toolkit 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

bold-commerce/bold-shopify-toolkit

最新稳定版本:8.0.0-beta.2

Composer 安装命令:

composer require bold-commerce/bold-shopify-toolkit

包简介

README 文档

README

CircleCI

Purpose

Bold Shopify Toolkit is a Symfony-based Shopify wrapper that makes it easy to interact with Shopify. The intention is to integrate with the API offered by Shopify and maintain consistent data structures for the models and services that access these endpoints.

Getting Started

This package works best with a Dependency Injection Container since there are many dependencies that need to be resolved.

Prerequisites

To use this package, you will need to bind Models to the following interfaces.

An example API Sleeper has been included in this package.

Laravel: (see AppServiceProvider.php)

    $this->app->bind(\BoldApps\ShopifyToolkit\Contracts\ApiSleeper::class,
            \BoldApps\ShopifyToolkit\Support\ShopifyApiHandler::class);

Installing

Add to composer.json

$ composer require bold-commerce/bold-shopify-toolkit

Bind the appropriate models during your request lifecycle.

    $this->app->bind(\BoldApps\ShopifyToolkit\Contracts\ApiSleeper::class,
            \BoldApps\ShopifyToolkit\Support\ShopifyApiHandler::class);

    ...

Or for apps that use container system this will look like below

        $shopifyApiHandler = new ShopifyApiHandler();
        $this->getContainer()->addShared(RequestHookInterface::class, $shopifyApiHandler);
        $this->getContainer()->addShared(ApiSleeper::class, $shopifyApiHandler);

above code can be part of a service provider class

Bind the shop that will be using the toolkit before making calls to its services and/or models.

// $shop - Eloquent model containing at least the myshopify_domain ("example.myshopify.com")
app()->instance(BoldApps\ShopifyToolkit\Contracts\ShopBaseInfo::class, $shop);
 
// $accessToken - Contains the access token string created when the shop installed the app
app()->instance(BoldApps\ShopifyToolkit\Contracts\ShopAccessInfo::class, $accessToken);

Running the tests

$ vendor/bin/phpunit tests

There is a dockerfile provided for running the tests the same way it will run on Circle

$ ./runtests.sh

Examples

Create the service representing the API you would like to use:

$variantService = new BoldApps\ShopifyToolkit\Services\Variant();
//OR
$variantService = app()->make(BoldApps\ShopifyToolkit\Services\Variant::class);

Get a single variant model:

/** @var BoldApps\ShopifyToolkit\Models\Variant $variant */
$variant = $variantService->getById(2641814487051);
 
$variant->getPrice(); //99.0

Get a collection of variant models and filter it so that we only get their titles, using the product ID:

/** @var Illuminate\Support\Collection $variants */
$variants = $variantService->getAllByProductId(327661486091, ["fields" => "title"]);
 
/** @var BoldApps\ShopifyToolkit\Models\Variant $variant */
foreach ($variants as $variant) {
    $title = $variant->getTitle(); //"Default title"
}

Update a variant:

$variant->setOption1("Not pink");
 
$updatedVariant = $variantService->update($variant);
 
$updatedVariant->getOption1(); //"Not pink"

See tests/VariantTest.php for an example of how to serialize and deserialize a model.

TODO

  • Add more tests
  • Add example of advance usage of ShopifyApiHandler

Contributing

Pull requests and ideas are welcome! Open an issue and lets talk.

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

License

This project is licensed under the Apache 2 License - see the LICENSE.md file for details

Acknowledgments

  • Thanks to Shopify for making the best Developer Network!
  • Thanks to Bold Commerce Developers for making this amazing package

统计信息

  • 总下载量: 100.92k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 28
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 26
  • Watchers: 20
  • Forks: 47
  • 开发语言: PHP

其他信息

  • 授权协议: Apache-2.0
  • 更新时间: 2017-07-14