Workflow: Multi-Brand Import and Distribution
Modules involved: Purchase · Warehouse · Price Lists · Clients & Client Groups · Invoices & Sales Orders · eTransport · Finance · Marketing Campaigns · Leads
Who uses it: Purchasing · Warehouse · Sales · Finance · Marketing
Typical duration: 4–12 weeks (from vendor negotiation to stock rotation)
Overview
Import companies working with 5–30 international brands face a complex cycle: annual negotiation of conditions per brand, placing orders in foreign currency with deferred delivery, managing import costs (international shipping, customs duties, customs broker commissions), and subsequent distribution through a reseller network organized by segments and price groups.
This workflow covers the entire cycle — from the first negotiation with a new vendor/brand through to the complete rotation of imported stock through the distribution network. Each brand is managed as a distinct vendor, with its own product catalog, its own purchase price lists (in foreign currency), and its own sales price lists (differentiated by channel: retail, wholesale, key account).
A critical aspect of this flow is the correct calculation of the landed cost: the purchase price in foreign currency, converted at the BNR exchange rate, plus international freight, insurance, customs duties, and customs broker commissions. Only with this complete cost can you calculate the true margin per brand and per product.
Flow Diagram
[EXTERNAL VENDOR — Brand]
│ price + terms + INCOTERMS negotiation
│ annual master agreement per brand
↓
[VENDOR CREATED IN CRM]
│ vendor record with currency, payment terms, brand manager contact
↓
[PURCHASE ORDER — in foreign currency (EUR/USD/GBP)]
│ status: Draft → Approved → In Progress → Completed
│ products + quantities + currency price + INCOTERMS + estimated ETA
│
├── [IMPORT DOCUMENTS — attached to PO]
│ vendor proforma invoice
│ vendor packing list
│ Bill of Lading (BL) or international AWB
│ certificate of origin / conformity (if required)
│
↓
[CUSTOMS — if non-EU import]
│ customs declaration, duties, broker commission
│ → customs cost noted manually and added to landed cost
│
↓ (or directly, if intra-EU import / no customs)
↓
[eTRANSPORT — if applicable]
│ declaration before goods movement on RO territory
│ status: Declared → Confirmed by ANAF
│
↓
[GOODS RECEIPT — Goods Receipt Note]
│ stock entered in warehouse per lot
│ LANDED COST calculated and recorded:
│ purchase price in currency × BNR exchange rate
│ + international shipping
│ + customs duties + broker commission
│ + transport insurance
│ = LANDED COST per unit
│
↓
[CATALOG UPDATED]
│ new Items added or stock replenished
│ cost price updated (landed cost per unit)
│
↓
[PRICE LISTS UPDATED — per brand / per channel]
│ Retail List (brand X)
│ Wholesale List (brand X)
│ Key Account List (brand X)
│ Promo / Season List
│
↓
[RESELLER COMMUNICATION]
│ Marketing Campaign or Announcement
│ content: stock availability, new prices, promotional terms
│
↓
[RESELLER ORDERS]
│ Sales Order → confirmed → Invoice → Payment
│ reseller sees prices from the list allocated to their group
│
↓
[STOCK ROTATION ✓ · MARGIN PER BRAND ✓ · COMMISSIONS PAID ✓]
Step by Step
1. Vendor/Brand Negotiation and Contracting
Where: /admin/purchase/vendors + /admin/purchase/purchase_contracts (if the contracts module is active)
Each international brand is created as a distinct Vendor in CRMConnect, even if the same physical distributor supplies multiple brands. Separating by vendor allows:
- Independent tracking of orders and invoices per brand
- Different payment terms (Net 30 for Brand A, advance payment for Brand B)
- Purchase reporting per brand without complex filters
Essential fields when creating the vendor:
| Field | Value / Note |
|---|---|
| Vendor Name | Brand name or name of the official distributor |
| Currency | EUR / USD / GBP — contract currency |
| Payment Terms | Net 30 / Net 60 / Advance Payment |
| Contact | Brand manager + orders email + finance email |
| VAT/Tax Number | External vendor's tax number |
| Country | Vendor's country — relevant for intra-Community VAT |
| Internal Note | Agreed INCOTERMS (EXW, FOB, CIF, DDP, etc.) |
Purchase Contract (optional, if module active):
The annual master agreement documents the negotiated conditions: minimum volumes, tiered discounts, territory exclusivity, return policy. The PDF document is attached directly to the vendor record or contract.
Best practice: Create a recurring annual Task for contract renegotiation, 60 days before expiry. Assign it to the responsible Brand Manager.
2. Placing the Import Order (Purchase Order in Foreign Currency)
Where: /admin/purchase/purchase_order → New Purchase Order
The Purchase Order is the central document of the import. It is created in the vendor's currency (EUR/USD) and remains in that currency throughout the purchasing process.
Purchase Order statuses:
| Field | Code | Status | Description |
|---|---|---|---|
status |
1 | Draft | Draft — unconfirmed |
status |
2 | Approved | Confirmed to vendor — no further changes |
status |
3 | Rejected | Declined / cancelled |
status |
4 | Canceled | Cancelled after approval |
order_status |
1 | Not Started | PO approved, goods not yet dispatched |
order_status |
2 | In Progress | Goods in production or in transit |
order_status |
3 | Completed | Goods fully received |
delivery_status |
0 | Not Delivered | No partial receipt yet |
delivery_status |
1 | Delivered | Goods arrived and received |
Critical fields to fill in at creation:
| Field | Description | Required |
|---|---|---|
| Vendor | The vendor/brand | Yes |
| Currency | EUR / USD — order currency | Yes |
| Exchange Rate | BNR rate at order date (informational) | Recommended |
| Expected Delivery Date (ETA) | Estimated arrival date | Yes |
| INCOTERMS | EXW / FOB / CIF / DDP — in Notes or custom field | Yes |
| Reference Number | Order number from vendor's system | Recommended |
| Shipping Address | Destination warehouse | Yes |
| Products / Items | Products, quantities, price in foreign currency | Yes |
| Notes | Special packaging, marking instructions, required documents | Optional |
Sending to vendor:
- Send to Vendor button → PDF generated + email with vendor portal link
- Vendor can view and confirm the order through the portal (if portal access is enabled)
3. ETA Tracking and Import Documents
Where: Tasks on PO + /admin/tasks + attachments on PO
Between placing the order and goods arrival there is a 2–10 week window (depending on brand, season, INCOTERMS). During this period the following must be tracked:
Import documents — attached directly to the Purchase Order:
| Document | Who provides it | When it arrives |
|---|---|---|
| Proforma Invoice | Vendor | At PO confirmation |
| Final Commercial Invoice | Vendor | At shipment |
| Vendor Packing List | Vendor | At shipment |
| Bill of Lading / AWB | Carrier | At shipment |
| Certificate of Origin | Vendor / Chamber of Commerce | At shipment |
| Certificate of Conformity / Test Report | Vendor | Per product (e.g. electrical, toys) |
| Customs Declaration (DAU/MRN) | Customs broker | At customs clearance |
ETA tracking workflow with Tasks:
At PO creation → create Task "ETA Tracking Brand X — PO #[number]"
- Assigned to: Logistics Manager
- Due date: ETA − 7 days
- Subtasks: Confirm vendor shipment / Confirm BL received / Confirm customs clearance complete
On receipt of shipping documents → Task "Customs Clearance PO #[number]"
- Assigned to: Customs Broker or internal responsible
- Attach customs declaration to PO after completion
On confirmation of goods arrival at warehouse → Task "Goods Receipt PO #[number]"
- Assigned to: Warehouse Manager
Updating
order_status: Manually change PO status toIn Progresswhen the vendor confirms shipment, and toCompletedafter full receipt.
4. Goods Receipt and Landed Cost Calculation
Where: /admin/warehouse/manage_purchase → Goods Receipt Note (GRN)
Receipt is the most important step from a cost perspective: this is where the real purchase price per unit is established, which will be the basis for the commercial margin.
Creating a GRN:
- If
auto_create_goods_received = 1: GRN created automatically when the PO is approved - Otherwise: manually from
/admin/warehouse/manage_purchase→ New Receipt → select the PO
GRN fields:
| Field | Description |
|---|---|
| Purchase Order | Reference PO |
| Warehouse | Destination warehouse (can be separate per brand) |
| Received Date | Physical goods entry date |
| Items / Qty | Quantities actually received (may differ from PO — partial receipt) |
| Lot Number | Lot identifier — basis for FIFO |
| Date Manufacture | Manufacturing date (if relevant) |
| Expiry Date | Expiry date — mandatory for perishable products |
| Unit Cost | Price per unit — landed cost is recorded here |
Landed cost calculation — methodology:
Vendor unit price (in currency): EUR 12.50
× BNR exchange rate at customs date: × 4.97
= Purchase price in RON: = RON 62.13
+ International freight allocation/unit: + RON 3.40
(total freight ÷ number of units)
+ Customs duties allocation/unit: + RON 2.10
(total duties ÷ number of units)
+ Customs broker commission/unit: + RON 0.45
+ Transport insurance/unit: + RON 0.28
────────────
= LANDED COST per unit: = RON 68.36
Where it is recorded: The
Unit Costfield in the GRN = calculated landed cost. This feeds margin reports and the stock value on the balance sheet.
Partial vs. full receipt:
| Situation | Action |
|---|---|
| Full quantity arrived | GRN covers entire PO → delivery_status = 1 |
| Partial quantity arrived | Partial GRN → delivery_status = 0 → remains open for second GRN |
| Quantity shortfall vs. PO | Note discrepancy in GRN → claim to vendor |
| Damaged goods | Return affected quantity → create return on GRN |
Upon GRN approval (approval = 1):
- Stock increases:
inventory_manage.inventory_number += quantity_received - Transaction recorded with
status = 1(Receipt) ingoods_transaction_detail - Lot becomes available for sale with active FIFO
5. Updating the Catalog and Price Lists
Where: /admin/warehouse/commodities (Items) + /admin/sales/price_lists
5a. Catalog Update (Items)
New products from the import must be created or updated in the catalog before they are available for sale.
Recommended structure for multi-brand import:
| Item Field | Convention |
|---|---|
| Item Name | [Brand] — Product Name — Reference |
| Category | Product category (not the brand — brand is vendor) |
| Unit | Unit of measure (pcs, set, kg, m) |
| Commodity Code | Internal SKU — unique per product |
| Barcode | Vendor EAN (if available) |
| Description | Commercial description |
| Custom Field: Brand | The brand — for filtering and reporting |
| Purchase Price | Landed cost calculated at last receipt |
| Tax Rate | Applicable VAT (19% standard / 9% food-pharma / 5% etc.) |
Products with variants (color, size, model): Each variant is a distinct Item with its own SKU and its own stock. If the system allows grouping (product families), associate variants under the same parent product.
5b. Price List Updates
Where: /admin/sales/price_lists
Recommended model for multi-brand import with a reseller network:
| Price List | Application | Typical margin over landed cost |
|---|---|---|
Brand X — Retail |
End clients, direct sales | 60–100% |
Brand X — Wholesale Standard |
Small resellers (< 10k EUR/year) | 30–45% |
Brand X — Wholesale Key Account |
Large partners (> 10k EUR/year) | 20–35% |
Brand X — Internal / Cost |
Internal transfer between warehouses | 0% (landed cost) |
Brand X — Promo Season [Year] |
Limited seasonal campaign | variable |
Updating prices at each import:
- Open the price list for the relevant brand
- Filter the brand's products
- Recalculate prices starting from the new landed cost
- Activate the new list with the effective date
- Archive the previous list (do not delete — needed for historical reports)
Assigning price lists to Client Groups:
| Client Group | Automatically assigned Price List |
|---|---|
| Standard Resellers | Brand X — Wholesale Standard |
| Key Accounts | Brand X — Wholesale Key Account |
| Direct / Retail | Brand X — Retail |
Assignment is done from
/admin/clients/client_groups→ edit group → Default Price List field.
6. Communicating Availability to the Reseller Network
Where: /admin/marketing/campaigns or Announcements
At each new import or season launch, resellers must be notified with: what products are available, at what prices, what quantities, and what the promotional terms are.
Option 1 — Marketing Campaign (Email):
/admin/marketing/campaigns→ New Campaign- Audience: select the relevant Client Groups (all active resellers of the brand)
- Email template:
- Subject:
[Brand X] — [Season Year] Collection available | Updated Prices - Body: featured products + images + wholesale prices + PDF catalog link
- CTA:
Place your order→ direct link to client portal
- Subject:
- Attachment: Updated PDF catalog or Excel Price List
Option 2 — Announcement (client portal notification):
Banner or notification visible at login in the client portal. Useful for urgent announcements (limited stock, flash promo).
Prospecting new resellers (Leads):
If opening distribution in a new region or adding a premium brand, the campaign can include a prospecting component:
/admin/leads→ New Lead or Import from Excel (list of targeted prospects)- Assign commercial agent per county / region
- Pipeline:
New → Contacted → Demo / Meeting → Offer Sent → Active Reseller - At conversion: Convert Lead to Client + assign Client Group + Price List
7. Processing Reseller Orders
Where: /admin/estimates (Sales Orders) + /admin/invoices
7a. Reseller Order (Sales Order)
Orders from resellers can arrive through multiple channels:
| Channel | How it enters the CRM |
|---|---|
| Client portal | Directly as Sales Order — initial status: Draft |
| Agent manually creates Sales Order | |
| Phone / WhatsApp | Agent manually creates Sales Order |
| EDI / API | Automatic import (if integration configured) |
| WooCommerce | Automatic import from /admin/integrations/woocommerce |
When creating the Sales Order:
- The system automatically applies the Price List of the client's group
- Prices displayed are from the allocated list — the agent can see the margin too (if they have permission)
- The Warehouse field — select the warehouse from which delivery occurs (important if you have warehouses per brand or per region)
Stock check on confirmation:
CRMConnect does not reserve stock when the Sales Order is created. The check is performed when the delivery note is generated. If you work with limited import stock, verify availability manually before confirming the client's order.
Sales Order statuses:
| Code | Status | Action |
|---|---|---|
| 1 | Draft | Draft — not visible to client |
| 2 | Sent | Sent to client for confirmation |
| 4 | Accepted / Invoiced | Confirmed → converted to invoice |
| 3 | Declined | Declined |
| 5 | Expired | Expired — validity date exceeded |
7b. Conversion to Invoice and Delivery
The flow from Sales Order to invoice and delivery follows the same model as in Full Commercial Cycle:
- Sales Order confirmed → Convert to Invoice
- Invoice generated → Create Delivery Note
- Delivery note approved → stock decreases automatically
- Packing List → AWB generated (Innoship / other courier)
- Invoice sent to client + delivery note
eFactura (ANAF) — if active:
For B2B clients in Romania, the invoice is automatically transmitted to the ANAF e-Factura system upon issuance. Check the transmission status from the invoice record → eFactura tab.
8. Tracking Collections and Stock Rotation Per Brand
Where: /admin/reports + /admin/finance + /admin/warehouse/warehouse_history
8a. Performance Reports Per Brand
| Report | Where | What you track |
|---|---|---|
| Sales per vendor/brand | /admin/reports/sales_by_item filtered by category / vendor |
Revenue per brand |
| Gross margin per product | Profitability report (if active) | Landed cost vs. sale price |
| Current stock per brand | Commodities → category/brand filter | Rotation — how much stock remains |
| Dead stock (no movement) | Warehouse History → products with no outflows 60+ days | Promo / return decisions |
| Uncollected invoices per client | /admin/invoices?status=4 |
Cash flow from network |
| Pending orders | /admin/estimates?status=2 |
Sales pipeline |
8b. Exchange Rates and Financial Reconciliation
Where: /admin/finance/exchange_rates (or equivalent)
At each import there is a foreign exchange rate difference between:
- The rate at the order date (PO)
- The rate at the customs clearance / receipt date (GRN)
- The rate at the vendor invoice payment date
Best practice: Record the BNR rate from the customs clearance date in the GRN's Exchange Rate field. This is the correct basis for landed cost calculation and accounting reconciliation.
External vendor payment:
/admin/purchase/myinvoices→ select Vendor Invoice- Check the amount due in foreign currency + applied rate
- Record payment: type
wire transfer+ bank payment order reference payment_status:unpaid → partially_paid → paid
What Is Created Automatically
| Event | Created automatically | Condition |
|---|---|---|
| Purchase Order approved | Goods Receipt Note (draft) | auto_create_goods_received = 1 |
| GRN approved | Stock increased in inventory_manage |
Always |
| GRN approved | Transaction in goods_transaction_detail |
Always |
| Sales Order accepted by client | Invoice generated automatically | estimate_auto_convert_to_invoice_on_client_accept = 1 |
| Invoice created | Delivery note (draft) | auto_create_goods_delivery = 1 |
| Delivery note approved | Stock decreased + outbound transaction | Always |
| B2B invoice issued | eFactura transmission to ANAF | eFactura module active + client with VAT number |
| Non-EU goods in transit | eTransport declaration | eTransport module active + route configured |
Points Where the Flow Can Block
| Problem | Likely cause | Solution |
|---|---|---|
| PO approved but goods don't arrive at ETA | Vendor delays production / shipping | Follow-up task with escalation at 7 days; request updated BL |
| Incorrect landed cost in GRN | Customs costs or freight arrived after receipt | Adjust Unit Cost in GRN (if not fully processed) or create separate stock adjustment with the cost difference |
| Exchange rate differs from PO rate | BNR variation between PO and GRN | Record the actual rate at customs clearance date in GRN — exchange difference is a currency loss/gain, reflected in accounting |
| Stock blocked — delivery note cannot be approved | Insufficient stock vs. reseller order | Check if import GRN has been approved; if yes, check if product is in the same warehouse |
| Prices from Price List not applied to client | Client not in the correct group or list not allocated to group | /admin/clients → edit client → check Client Group → /admin/clients/client_groups → check assigned Price List |
| Reseller orders products from brand X but has no access to that price list | Brand X Price List not allocated to client's group | Add price list in group settings or create a separate group per brand |
| eFactura rejected by ANAF | Incorrect fiscal data (client VAT number, address, VAT type) | Correct data in client record and resubmit from invoice's eFactura tab |
| Invalid eTransport declaration | Incomplete vehicle or route data | Complete all mandatory fields in /admin/etransport before goods movement |
| Negative margin per product | Landed cost higher than sale price (increased exchange rate) | Recalculate Price List based on new landed cost; notify resellers of price changes |
Relevant Reports
- Sales by Item / Category —
/admin/reports/sales_by_item— sales per product/brand, volume and value - Purchase Orders —
/admin/purchase/purchase_order— open orders, ETA, delivery status - Current Stock —
/admin/warehouse/warehouse_history— current balance per product, per warehouse, per lot - Vendor Invoices Unpaid —
/admin/purchase/myinvoices?payment_status=unpaid— external vendor payables - Client Invoices Overdue —
/admin/invoices?status=4— overdue receivables from reseller network - Sales Order Pipeline —
/admin/estimates?status=2— reseller orders awaiting confirmation - Dead Stock — Warehouse History filtered: products with no outflows in last 60 days — dead stock per brand
- DataPulse —
/admin/datapulse— executive dashboard: revenue per brand, margin, rotation, forecast
Modules Involved — Detailed Documentation
Purchasing: Vendors · Purchase Orders · Received Quotations · Vendor Invoices
Warehouse: Goods Receipt Note · Delivery Notes · Inventory History · Loss & Adjustments
Sales & Pricing: Price Lists · Sales Orders · Invoices · Client Groups
Finance & Integrations: Finance / Exchange Rates · eFactura ANAF · eTransport
Marketing & Sales: Marketing Campaigns · Leads
Related Workflows: Purchase to Pay · Warehouse Inbound → Outbound · Full Commercial Cycle · Marketing to Lead