[DOC] all: Reorganize and consolidate project documentation

- Create .github/copilot-instructions.md with global development guidelines
- Add comprehensive README.md at project root with quick start guide
- Create docs/ directory for technical documentation
- Move installation and linter docs to docs/
- Add docs/TRANSLATIONS.md with complete translation system guide
- Create README.md for OCA modified addons (product_origin, product_get_price_helper, product_main_seller)
- Document translation best practices (no _() in field definitions)
- Add references between all documentation files
- Clean up project root by moving technical docs to docs/

All documentation now properly references addon-specific READMEs for detailed architecture and implementation.
This commit is contained in:
snt 2026-02-12 16:25:49 +01:00
parent 2a480b74bb
commit b10ba1fc15
12 changed files with 1327 additions and 0 deletions

View file

@ -0,0 +1,119 @@
# Product Main Seller
## Summary
Adds a "Main Vendor" field to products that automatically tracks the primary supplier based on supplierinfo sequence.
## Features
- **Automatic Main Vendor**: Computed field showing the primary supplier
- **Based on Sequence**: Uses the supplierinfo with the lowest sequence number
- **Visible in Views**: Shows in product form and tree views
- **Searchable**: Can search and filter products by main vendor
- **Related Fields**: Access to vendor name and reference
## Technical Details
### Models Extended
- `product.template`: Main product template
- `product.product`: Product variants
### Fields Added
- `default_supplier_id` (Many2one → res.partner, computed, stored)
- The main vendor for this product
- Computed from `seller_ids` with lowest sequence
- Stored for performance
- Searchable
- `default_supplier_ref` (Char, related to `default_supplier_id.ref`)
- The supplier's reference code
- Readonly
### Computation Logic
The main vendor is determined by:
1. Looking at all supplierinfo records (`seller_ids`)
2. Filtering for valid suppliers (not companies)
3. Selecting the one with the **lowest sequence** number
4. If no sequence, uses the first one
### Migration Hook
Includes `pre_init_hook` that:
- Populates `default_supplier_id` on existing products during installation
- Ensures data consistency from the start
## Dependencies
- `purchase` (Odoo core)
## Installation
```bash
docker-compose exec odoo odoo -d odoo -u product_main_seller --stop-after-init
```
## Usage
### Viewing Main Vendor
1. Open a product form (Products > Products > [Product])
2. See "Main Vendor" field (usually in Purchase tab)
3. Field is automatically computed from vendor list
### Changing Main Vendor
To change the main vendor:
1. Go to product form > Purchase tab
2. Edit the vendor list (`seller_ids`)
3. Change the sequence numbers (lower = more priority)
4. Save - the "Main Vendor" will update automatically
### Searching by Vendor
```python
# Find all products from a specific vendor
products = self.env['product.template'].search([
('default_supplier_id', '=', vendor_id)
])
```
## OCA Source
- **Repository**: [purchase-workflow](https://github.com/OCA/purchase-workflow)
- **Original Author**: GRAP
- **Maintainers**: legalsylvain, quentinDupont
- **License**: AGPL-3
## Modifications for Kidekoop
None - Used as-is from OCA.
## Use Cases in Kidekoop
This module is critical for:
- `product_price_category_supplier`: Bulk updating products by main vendor
- Purchase order management
- Vendor performance analysis
- Inventory planning by supplier
## Views Modified
- Product Template Form View
- Product Template Tree View
- Product Variant Form View
## Translations
- ✅ Spanish (es)
- ✅ Euskera (eu)
Located in `i18n/` directory.
---
**Version**: 18.0.1.0.0
**Category**: Purchase
**License**: AGPL-3