跳到主要内容

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、目录、价目表和礼品卡数据流。

领域数据流
店铺与销售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 Paymentsbalance_transactions、payouts、disputes
退货returns、return_line_items、reverse_fulfillments
市场与目录markets、catalogs、publications、price_lists
礼品卡gift_cards、gift_card_transactions
B2Bcompanies、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
Metaobjectsread_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 审批)
B2Bread_companies 或 read_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千张。如果由于达到最大表数而无法获取数据架构,我们建议您调整数据源设置。