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
ShippingCalculatorStrategyregistered ascustomer_label(see Building Extensions for the strategy surface). It quotes a single method:Method code Method name Rate customer_labelCustomer-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¶
- Once installed (or dev-linked in development), the extension is discovered at startup. Per-channel enablement is managed under Settings > Extensions.
- Create a shipping provider with carrier code
customer_labelunder Settings > Shipping > Providers. - Assign the seeded method to a shipping zone under Settings > Shipping > Zones — only enabled methods on an enabled zone are quoted.
- 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.