Batch Shipping

作者 goshippocf8e96532f24无许可证3 个星标收录于 2026年10月8日更新于 2026年10月8日仓库2周前更新

Process bulk shipments from CSV files, create and purchase batch labels, and generate end-of-day manifests via the Shippo API

仅含说明Business & Finance
AI 生成的概览

通过 Shippo API 处理 CSV 批量货件,购买批量标签并生成日终清单。

功能
该技能指导代理使用 Shippo API 完成批量发货操作:解析货件 CSV、校验行、为国际行创建海关申报,并构建货件批次。它涵盖轮询批次状态、修复无效批次、在购买真实标签前获取用户明确确认,以及报告追踪号和标签链接。它还说明如何根据指定交易对象 ID 创建日终清单,并返回清单 PDF 链接和货件数量。
适用场景
当需要从 CSV 文件批量发货并通过 Shippo 批量购买标签时使用。它也适用于为已购买交易生成承运商日终清单。
运行要求
需要访问 Shippo API,以及可为真实标签购买扣款的已授权 Shippo 账户。它引用 Shippo 的 CSV 格式和海关指南参考文档。它不附带脚本,仅为操作说明。
<!-- ⚠️ DO NOT EDIT. Auto-generated from skills/batch-shipping/SKILL.md by scripts/sync.js Edits here will be overwritten on the next sync. To change this content, edit the canonical source and re-run the sync script. -->

Batch Shipping

Purchases Are Live

Batch purchases charge the authorized Shippo account for real. Before PurchaseBatch, show the shipment count, carrier/service, and estimated total cost, and require explicit user confirmation.


Purchase Confirmation Gate

Before every call to PurchaseBatch, summarize the following and ask the user for explicit confirmation:

  • Total number of shipments to be purchased
  • Carrier and service level (or selection rule if varied)
  • Estimated total cost
  • Number of domestic vs international shipments

Do not proceed without explicit user confirmation.


CSV Batch Processing

See shippo/references/csv-format.md for the column specification.

  1. Read and parse the CSV. Validate required columns are present. Report row count.
  2. Validate each row for non-empty required fields. Report invalid rows with reasons.
  3. Detect international rows (sender_country != recipient_country). Create customs declarations for those rows. See shippo/references/customs-guide.md. Use correct customs enum values: RETURN_MERCHANDISE (not RETURN) for returned goods, HUMANITARIAN_DONATION (not HUMANITARIAN) for charitable donations.
  4. Build the batch_shipments array with inline address and parcel objects per row.
  5. Call CreateBatch with the array.
  6. Poll GetBatch until status is VALID or INVALID. See Polling Intervals below.
  7. If the status is INVALID, some batch shipments failed validation: see "Fixing an INVALID batch" below, fix them, and re-poll until VALID. Report per-shipment failures either way before proceeding.
  8. Confirm purchase (see Purchase Confirmation Gate above).
  9. Call PurchaseBatch to buy labels for all valid shipments.
  10. Poll GetBatch until status changes from PURCHASING to PURCHASED. See Polling Intervals below.
  11. Report: total attempted, succeeded, failed. For successes: tracking_number and label_url (complete URL). For failures: error messages.

Retrieving batch labels

A purchased batch does not put each label URL inline on the batch object. Each entry in batch_shipments[] carries a transaction field, which is a Transaction object_id. Call GetTransaction on it to get that shipment's label_url and tracking_number. The batch-level label_url is a merged multi-label PDF (up to 100 labels per file) and cannot be split per order.

Batch Size Guidance

For batches over 500 shipments, consider splitting into multiple batches. Large batches take longer to validate and purchase, and a single failure can be harder to diagnose.


Polling Intervals

  • For batches under 100 shipments: poll every 3-5 seconds.
  • For batches with 100+ shipments: poll every 5-10 seconds.
  • Report progress to the user every 30 seconds.
  • Stop after 60 retries and suggest the user check back later using GetBatch with the batch object_id.

Batch with Rate Shopping

  1. Call CreateShipment per shipment to get rate quotes (see Rate Shopping).
  2. Present rates. User picks a service level rule (e.g., "cheapest for each" or a specific carrier/service).
  3. Build batch_shipments with servicelevel_token per item.
  4. Create, validate, confirm purchase, purchase, report as above.

Managing an Existing Batch

  • Add shipments: AddShipmentsToBatch (before purchase only). Note: adding an invalid shipment will change the entire batch status to INVALID. Check per-shipment statuses after adding.
  • Remove shipments: RemoveShipmentsFromBatch (before purchase only).

Fixing an INVALID batch

If GetBatch returns status INVALID, one or more batch shipments failed validation and the batch cannot be purchased until they are fixed.

  1. Find the failures. Call GetBatch with object_results=creation_failed to return only the failed shipments (paginate with ?page= if there are many), or read each batch_shipments[].status (VALID / INVALID / INCOMPLETE / TRANSACTION_FAILED) and its messages for the reason. The batch-level errors array collects the same per-shipment failures in one place.
  2. Fix them, either:
    • Remove: RemoveShipmentsFromBatch with the failed batch-shipment object_ids (from batch_shipments[].object_id, not the shipment object_id) to drop them, or
    • Correct and re-add: AddShipmentsToBatch with corrected shipment objects (fixed address, parcel, or servicelevel).
  3. Re-poll GetBatch until status is VALID.
  4. Then confirm purchase (see Purchase Confirmation Gate) and PurchaseBatch.

End-of-Day Manifest

  1. Collect: carrier_account (object_id), shipment_date (YYYY-MM-DD, default today), address_from (pickup address).
  2. Optionally collect specific transaction object_ids to scope the manifest. You must pass specific transaction object_ids -- there is no auto-include for a date range.
  3. Call CreateManifest.
  4. Poll GetManifest until status is SUCCESS or ERROR.
  5. Return the manifest PDF URL(s) and shipment count.

Quick Reference

CSV batch: Parse CSV -> CreateCustomsDeclaration (international rows) -> CreateBatch -> poll GetBatch -> confirm -> PurchaseBatch -> poll GetBatch

Manifest: CreateManifest (with transaction object_ids) -> poll GetManifest

来源与署名

来源:goshippo/ai位于providers/claude/plugin/skills/batch-shipping提交cf8e965

许可证: 无许可证

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架

更多来自 goshippo/ai 的技能

Upgrade Shippo

goshippo

指导 Shippo API 版本变更、Webhook 负载版本管理,以及托管 Shippo MCP 服务器的故障排查。

Software Development32周前更新

Tracking

goshippo

通过 Shippo API 跨承运商追踪包裹,包括物流轨迹和追踪 webhook。

Productivity & Workflow32周前更新

Shippo Support Ticket

goshippo

Generate a complete, auto-classified, ready-to-paste Shippo support ticket for a single shipment or label. Use when a support agent or customer needs to escalate a shipping issue (lost/delayed package, unused-label refund, billing/rate adjustment, address exception, customs hold, carrier-account, or tracking-webhook problem). Given a tracking number + carrier, a transaction (label) ID, or a shipment ID, it classifies the issue, runs the right read-only Shippo MCP lookups, computes the triage timeline, and emits both a copy-paste support message and a routing-tagged JSON block so the ticket lands in the right pipeline first time.

待分类32周前更新

Shippo Best Practices

goshippo

Guides Shippo integration decisions, choosing between Rates at Checkout vs. full Shipments+Transactions vs. Batch processing, address validation strategy (v1 vs v2 fields), domestic vs international workflows (customs declarations, incoterms), label format selection, and webhook setup. Use when planning, building, or reviewing any Shippo integration, including building checkout flows, bulk fulfillment pipelines, address validation, label generation, package tracking, customs handling, or webhook subscriptions.

待分类32周前更新

Shipping Analysis

goshippo

通过 Shippo API 分析运费、比较承运商、优化包裹尺寸并审查历史运费支出。

Business & Finance32周前更新

Rate Shopping

goshippo

通过 Shippo API 比较多家承运商的运费,并推荐最便宜、最快或最具性价比的方案。

Business & Finance32周前更新