Shopify
此页面包含Shopify的设置指南和参考信息。
前提条件
- 您的Shopify店铺名称
- Shopify登录信息或API密码
功能
| 功能 | 是否支持 |
|---|---|
| 完全刷新复制 | 支持 |
| 增量复制 - 追加同步 | 支持 |
| 命名空间 | 不支持 |
Shopify数 据源支持完全刷新复制和增量复制同步。每次运行同步时,您可以选择仅复制新数据或更新数据,或您为复制设置的表和列中的所有行。
Daspire可以为Shopify API 同步数据。
设置指南
使用API密码设置
-
前往https://admin.shopify.com/store/YOURSTORE ,点击侧边栏的**设置(Settings)**按钮。

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

-
点击**创建应用(Create an app)**创建私有应用。

-
填写应用名称*(App name)并选择应用开发者(App developer).

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

-
在管理API访问权限(Admin API access scopes)中,选择您要允许访问的资源。Daspire只需要读取级别的访问权限。选择完成后,点击保存(Save)。
注意: 用户界面将显示所有可能的数据源,如果它没有访问资源的权限,则会在同步时显示错误。

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

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

-
您已准备好在Daspire中设置Shopify!
在Daspire中设置Shopify
-
从数据源列表中选择 Shopify。
-
输入一个数据源名称。
-
输入您的Shopify店铺名称。
-
使用OAuth 2.0,验证您的Shopify帐户,或使用API密码,输入您的API密码。
-
输入复制开始日期 - 您希望复制数据的开始日期。
-
点击保存并测试。
支持的数据流
数据源保留现有核心数据流,并新增可选的 GraphQL 扩展。发现数据流时会根据 Shopify 实际授权范围过滤;缺少某项权限只会隐藏对应数据流。如果已经选中的扩展流后来失去授权或不可用,同步会明确失败,不会静默漏掉该流。Daspire 还会先探测店铺能力,再展示 B2B、目录、价目表和礼品卡数据流。
| 领域 | 数据流 |
|---|---|
| 店铺与销售 | shop、products、customers、orders、transactions、tender_transactions、order_refunds、order_risks、draft_orders、abandoned_checkouts |
| 配送 | fulfillments、fulfillment_orders、fulfillment_events |
| 折扣与内容 | price_rules、discount_codes、pages |
| 系列 | custom_collections、collects、collections、collection_products |
| 商品与库存 | product_variants、product_media、inventory_items、inventory_levels |
| 自定义数据 | metafields(店铺)、product_metafields、variant_metafields、order_metafields、customer_metafields、collection_metafields、metaobjects |
| Shopify Payments | balance_transactions、payouts、disputes |
| 退货 | returns、return_line_items、reverse_fulfillments |
| 市场与目录 | markets、catalogs、publications、price_lists |
| 礼品卡 | gift_cards、gift_card_transactions |
| B2B | companies、company_locations |
扩展数据流使用 GraphQL Admin API 和 Bulk Operations。批量结果按 JSONL 流式处理,并通过保存的操作 ID 和记录偏移量续跑。生产读取会按有界批次排空所有已选数据流; 批次大小只限制内存占用,不限制一次作业复制的总记录数或数据流数量。
可直接按同一时间字段过滤的扩展流支持增量同步:inventory_items、product_variants、collections、balance_transactions、companies、company_locations。嵌套、分区、能力型或生命周期会变化的数据流使用全量刷新,避免用子记录时间、单个分区或不变的创建时间静默漏掉后续变化:inventory_levels、product_media、collection_products、五个所有者元字段流、metaobjects、payouts、disputes、returns、return_line_items、reverse_fulfillments、fulfillment_events、markets、catalogs、publications、price_lists、gift_cards、gift_card_transactions。
生产路由已在 0.1.0 连接器中识别全部 46 个数据流。现有数据源仍保持兼容,因为 GraphQL 发现仍需逐数据源显式开启;请仅在令牌具备所需权限、已选目录准备好使用新增数据流后开启扩展。
扩展数据流权限
| 数据流 | 所需读取权限 |
|---|---|
| 库存 | read_inventory |
| 商品、媒体、系列、目录和价目表 | read_products;变体还会使用 read_inventory;目录流包含发布关联,因此还需 read_publications |
| 所有者元字段 | 对应资源的 read_products、read_orders 或 read_customers |
| Metaobjects | read_metaobjects;还需配置要复制的 metaobject 类型 |
| Shopify Payments | 根据所选数据流使用 read_shopify_payments_accounts、read_shopify_payments_payouts 和/或 read_shopify_payments_disputes;争议记录的订单关联还会使用 read_orders |
| 退货 | read_orders 和 read_returns |
| 配送事件 | read_orders 加标准应用可用的三类配送订单权限:read_assigned_fulfillment_orders、read_merchant_managed_fulfillment_orders 和 read_third_party_fulfillment_orders。未全部授权时该流会隐藏或明确失败。仅 Marketplace Channel 应用可用的配送订单不在本流覆盖范围内,因为其独立权限需要专门的渠道应用审批。 |
| 市场与发布 | read_markets 和 read_publications;发布流的目录关联还需 read_products 或 read_product_listings |
| 礼品卡 | read_gift_cards;卡片的客户/订单关联使用 read_customers 和 read_orders,交易明细还需 read_gift_card_transactions(可能需要 Shopify 审批) |
| B2B | read_companies 或 read_customers;店铺本身必须具备 B2B 权限,发现阶段会通过能力探测验证 |
现有 OAuth 连接不会自动获得新增权限。发起 OAuth 前请先开启“GraphQL 和 Bulk 数据流”,Daspire 才会申请标准扩展权限;然后在选择扩展流前重新授权。扩展关闭时,原有 OAuth 仍只申请原始权限。如需礼品卡或独立公司权限,请在发起 OAuth 前先从“可选受限读取权限”中选择已经获批的项目。使用 API 密码或自定义应用的连接,需要增加相应读取 权限,并重新安装应用或更新令牌。
对于原有 REST 增量子数据流,建议同时选择其父数据流:退款、风险和交易应与 orders 一起同步;折扣码应与 price_rules 一起同步。
数据类型映射
| 集成类型 | Daspire类型 |
|---|---|
string | string |
number | number |
array | array |
object | object |
boolean | boolean |
性能考虑
Shopify有一些速率限制。通常情况下,不应该存在节流或超过速率限制的问题,但在某些极端情况下,用户会收到如下警告消息:
Caught retryable error '<some_error> or null' after <some_number> tries. Waiting <some_number> seconds then retrying..."
当数据源命中429 - 超出速率限制HTTP错误时,这是预期中的。对于给定的错误消息,同步操作仍在继续,但需要更多时间才能完成。
故障排除
单次可同步的最大表数为6千张。如果由于达到最大表数而无法获取数据架构,我们建议您调整数据源设置。