Skip to content

Customer-Provided Label

The ext_customer_label extension adds a zero-rate shipping option for wholesale customers who ship on their own negotiated carrier contracts: it registers a shipping strategy under the carrier code customer_label that always quotes $0.00 and attaches a warning reminding staff to collect the customer's label or carrier-account reference before fulfillment. Use it when a customer supplies their own shipping label and you do not want to charge them a shipping rate at checkout.

At a glance

Extension id customer_label
Category shipping
Version 0.1.0
Provides Shipping carrier strategy (customer_label)
External account None

What It Provides

  • A ShippingCalculatorStrategy registered as customer_label (see Building Extensions for the strategy surface). It quotes a single method:

    Method code Method name Rate
    customer_label Customer-Provided Label (or label_name) 0.00
  • Fulfillment warning — every quote carries the warning "Customer ships on their own carrier account — collect the label / account reference before fulfillment", so the reference gets captured on the order (via notes or custom fields) before it is shipped.

  • Opt-in by grant rule — this method is designed to be gated per account/customer/group with a grant rule; see Operational notes.

Setup

  1. Once installed (or dev-linked in development), the extension is discovered at startup. Per-channel enablement is managed under Settings > Extensions.
  2. Create a shipping provider with carrier code customer_label under Settings > Shipping > Providers.
  3. Assign the seeded method to a shipping zone under Settings > Shipping > Zones — only enabled methods on an enabled zone are quoted.
  4. Grant the method to the accounts that ship on their own labels with a grant rule (see below). Once any grant rule exists for customer_label, the method is hidden from everyone else.

See Shipping & Fulfillment for the provider / zone / method model.

Configuration Reference

The manifest declares no config_schema; there are no extension-level settings. The strategy reads one optional key from its own config (the ShippingProvider.config for the customer_label provider):

Key Type Default Description
label_name string "Customer-Provided Label" The method name shown at checkout

Operational Notes

  • Always zero-rated — the strategy returns a fixed Decimal("0") rate; it makes no external API call and needs no credentials.
  • Opt-in access — grant the method with a grant rule of the form subject_type=shipping_method, subject_key=customer_label, scope_type=account, scope_key=<account id>, effect=grant. The moment any such rule exists, the method becomes invisible to unassigned shoppers. The migration runbook seeds these grants from the source store's per-user override flags.
  • No prepaid-label purchase — the strategy does not implement purchase_label; the customer supplies the label out of band.

Source: ext_customer_label/extension.py — in the enterprise-extensions repo.