跳到主要内容

Shopify

此页面包含Shopify的设置指南和参考信息。

前提条件

  • 您的Shopify店铺名称
  • Shopify登录信息或API密码

功能

功能是否支持
完全刷新复制支持
增量复制 - 追加同步支持
命名空间不支持

Shopify数据源支持完全刷新复制增量复制同步。每次运行同步时,您可以选择仅复制新数据或更新数据,或您为复制设置的表和列中的所有行。

Daspire可以为Shopify API 同步数据。

设置指南

使用API密码设置

  1. 前往https://admin.shopify.com/store/YOURSTORE ,点击侧边栏的**设置(Settings)**按钮。 Shopify Store Settings

  2. 点击侧边栏的应用程序和销售渠道(Apps and sales channels),然后点击开发应用程序(Develop apps)Shopify Develop Apps

  3. 点击**创建应用(Create an app)**创建私有应用。 Shopify Create an App

  4. 填写应用名称*(App name)并选择应用开发者(App developer). Shopify Create an App

  5. 打开您刚刚创建的应用,点击配置*(Configuration),然后点击管理API集成(Admin API integration)中的配置(Configure)Shopify Config

  6. 管理API访问权限(Admin API access scopes)中,选择您要允许访问的资源。Daspire只需要读取级别的访问权限。选择完成后,点击保存(Save)

注意: 用户界面将显示所有可能的数据源,如果它没有访问资源的权限,则会在同步时显示错误。

Shopify Access Scopes

  1. 在为应用程序分配相关访问范围后,点击API凭据(API credentials),然后点击安装应用(Install app). Shopify API Credentials

  2. 安装应用程序后,您的**管理API访问令牌(Admin API access token)**将会显示,复制它。您的API访问令牌以 shpat_开头。您将用作集成的api_password的密码。 Shopify API Access Token

  3. 您已准备好在Daspire中设置Shopify!

在Daspire中设置Shopify

  1. 从数据源列表中选择 Shopify

  2. 输入一个数据源名称

  3. 输入您的Shopify店铺名称

  4. 使用OAuth 2.0,验证您的Shopify帐户,或使用API密码,输入您的API密码

  5. 输入复制开始日期 - 您希望复制数据的开始日期。

  6. 点击保存并测试

支持的数据流

数据源保留现有核心数据流,并新增可选的 GraphQL 扩展。发现数据流时会根据 Shopify 实际授权范围过滤;缺少某项权限只会隐藏对应数据流。如果已经选中的扩展流后来失去授权或不可用,同步会明确失败,不会静默漏掉该流。Daspire 还会先探测店铺能力,再展示 B2B、目录、价目表和礼品卡数据流。

领域数据流
店铺与销售shopproductscustomersorderstransactionstender_transactionsorder_refundsorder_risksdraft_ordersabandoned_checkouts
配送fulfillmentsfulfillment_ordersfulfillment_events
折扣与内容price_rulesdiscount_codespages
系列custom_collectionscollectscollectionscollection_products
商品与库存product_variantsproduct_mediainventory_itemsinventory_levels
自定义数据metafields(店铺)、product_metafieldsvariant_metafieldsorder_metafieldscustomer_metafieldscollection_metafieldsmetaobjects
Shopify Paymentsbalance_transactionspayoutsdisputes
退货returnsreturn_line_itemsreverse_fulfillments
市场与目录marketscatalogspublicationsprice_lists
礼品卡gift_cardsgift_card_transactions
B2Bcompaniescompany_locations

扩展数据流使用 GraphQL Admin APIBulk Operations。批量结果按 JSONL 流式处理,并通过保存的操作 ID 和记录偏移量续跑。生产读取会按有界批次排空所有已选数据流;批次大小只限制内存占用,不限制一次作业复制的总记录数或数据流数量。

可直接按同一时间字段过滤的扩展流支持增量同步:inventory_itemsproduct_variantscollectionsbalance_transactionscompaniescompany_locations。嵌套、分区、能力型或生命周期会变化的数据流使用全量刷新,避免用子记录时间、单个分区或不变的创建时间静默漏掉后续变化:inventory_levelsproduct_mediacollection_products、五个所有者元字段流、metaobjectspayoutsdisputesreturnsreturn_line_itemsreverse_fulfillmentsfulfillment_eventsmarketscatalogspublicationsprice_listsgift_cardsgift_card_transactions

生产路由已在 0.1.0 连接器中识别全部 46 个数据流。现有数据源仍保持兼容,因为 GraphQL 发现仍需逐数据源显式开启;请仅在令牌具备所需权限、已选目录准备好使用新增数据流后开启扩展。

扩展数据流权限

数据流所需读取权限
库存read_inventory
商品、媒体、系列、目录和价目表read_products;变体还会使用 read_inventory;目录流包含发布关联,因此还需 read_publications
所有者元字段对应资源的 read_productsread_ordersread_customers
Metaobjectsread_metaobjects;还需配置要复制的 metaobject 类型
Shopify Payments根据所选数据流使用 read_shopify_payments_accountsread_shopify_payments_payouts 和/或 read_shopify_payments_disputes;争议记录的订单关联还会使用 read_orders
退货read_ordersread_returns
配送事件read_orders 加标准应用可用的三类配送订单权限:read_assigned_fulfillment_ordersread_merchant_managed_fulfillment_ordersread_third_party_fulfillment_orders。未全部授权时该流会隐藏或明确失败。仅 Marketplace Channel 应用可用的配送订单不在本流覆盖范围内,因为其独立权限需要专门的渠道应用审批。
市场与发布read_marketsread_publications;发布流的目录关联还需 read_productsread_product_listings
礼品卡read_gift_cards;卡片的客户/订单关联使用 read_customersread_orders,交易明细还需 read_gift_card_transactions(可能需要 Shopify 审批)
B2Bread_companiesread_customers;店铺本身必须具备 B2B 权限,发现阶段会通过能力探测验证

现有 OAuth 连接不会自动获得新增权限。发起 OAuth 前请先开启“GraphQL 和 Bulk 数据流”,Daspire 才会申请标准扩展权限;然后在选择扩展流前重新授权。扩展关闭时,原有 OAuth 仍只申请原始权限。如需礼品卡或独立公司权限,请在发起 OAuth 前先从“可选受限读取权限”中选择已经获批的项目。使用 API 密码或自定义应用的连接,需要增加相应读取权限,并重新安装应用或更新令牌。

对于原有 REST 增量子数据流,建议同时选择其父数据流:退款、风险和交易应与 orders 一起同步;折扣码应与 price_rules 一起同步。

数据类型映射

集成类型Daspire类型
stringstring
numbernumber
arrayarray
objectobject
booleanboolean

性能考虑

Shopify有一些速率限制。通常情况下,不应该存在节流或超过速率限制的问题,但在某些极端情况下,用户会收到如下警告消息:

Caught retryable error '<some_error> or null' after <some_number> tries. Waiting <some_number> seconds then retrying..."

当数据源命中429 - 超出速率限制HTTP错误时,这是预期中的。对于给定的错误消息,同步操作仍在继续,但需要更多时间才能完成。

故障排除

单次可同步的最大表数为6千张。如果由于达到最大表数而无法获取数据架构,我们建议您调整数据源设置。