Má dhíolann tú pacáistí in Odoo, mar shampla gléas tomhais le gabhálais agus suiteáil, stáisiún oibre le crua-earraí agus cumrú, nó pacáiste cothabhála ina bhfuil roinnt seirbhísí, teastaíonn dhá rud ón tairiscint ag an am céanna: Ní mór an comhdhéanamh a bheith san ordú, ionas go mbeidh a fhios ag an stóras, ag an bhfoireann theicniúil agus ag an sonrascú cad a seachadfar. Ach ní mian linn i ngach cás go mbeadh gach mír aonair lena praghas aonair le feiceáil ar an gcóip chlóite don chustaiméir.
Ligeann an modúl OCA sale_product_set duit tacair táirgí (liostaí páirteanna le haghaidh díola) a chur isteach i dtairiscint le cliceáil amháin. Ní chinneann sé an chuma phriontála. Chuige sin d'fhorbraíomar an modúl Sale Product Set Layout (sale_product_set_layout). Tá sé scríofa d'Odoo 19 agus tá sé ar fáil saor in aisce ar GitHub mar bhogearra saor faoin gceadúnas AGPL-3:
github.com/Alex0176/odoo-sale-product-set-layout
Ábhar an ailt seo
- An fhadhb: tacair táirgí gan tionchar ar an gcuma phriontála
- Cad a dhéanann an modúl
- Na trí mhód priontála go mion
- Línte folaithe agus praghas seasta
- Cur i bhfeidhm teicniúil
- Suiteáil gan fo-iarmhairtí gan iarraidh
- Úsáid céim ar chéim
- Tástálacha
- Teorainneacha agus nóta dlíthiúil
- Ceisteanna Coitianta
- Tacaíocht ó Biricon IT Services
An fhadhb: tacair táirgí gan tionchar ar an gcuma phriontála
Is liosta ullmhaithe táirgí le cainníochtaí é tacar táirgí in Odoo. In ionad deich n-earra a chuardach ceann ar cheann, roghnaíonn tú sa tairiscint Cuir tacar leis agus faigheann tú na línte uile ag an am céanna. Sábhálann sé sin am agus cuireann sé cosc ar mhíreanna dearmadta. Déanann an modúl sale_product_set ón stórlann OCA/sale-workflow an rud sin go díreach; tagann na tacair féin ó product_set sa stórlann OCA/product-attribute.
Sa chleachtas, fágtar trí bhearna:
- Gan grúpáil inaitheanta. Tuirlingíonn na línte tacair sa tairiscint mar mhíreanna scaoilte. Tar éis iad a chur isteach, ní fheictear a thuilleadh cé na línte a bhaineann le chéile, agus níl iomlán an tacair le feiceáil in áit ar bith.
- Gan tionchar ar an gcóip chlóite. Uaireanta ba cheart don chustaiméir gach mír a fheiceáil lena praghas, uaireanta praghas an phacáiste amháin, uaireanta líne amháin. Is cinneadh é sin in aghaidh gach tacair nó gach custaiméara, ní rud é atá le déanamh de láimh arís i ngach tairiscint nua.
- Is míshásúil iad ceartúcháin praghais. Más mian praghas seasta a bheith ag pacáiste atá difriúil ó shuim na bpraghsanna liosta, tá líne cheartúcháin ag teastáil. Baineann sí leis an ríomh, ach ní gá go mbeadh sí ar pháipéar an chustaiméara.
Tá na bloic thógála ag Odoo 19 chun é seo a réiteach go néata: Rannáin agus fo-rannáin i línte tairisceana leis na roghanna Folaigh praghsanna agus Folaigh comhdhéanamh (réimsí collapse_prices agus collapse_composition). Ceanglaíonn an modúl an tacar táirgí leis na roghanna caighdeánacha seo in ionad formáid phriontála dá chuid féin a cheapadh.
Cad a dhéanann an modúl
- Tacar a chur isteach mar rannán. Cruthaíonn an cúntóir Cuir tacar leis líne rannáin le hainm an tacair, mar shampla 2 × Messkit Standard, agus cuireann sé línte an tacair faoina bhun. Éiríonn rannáin laistigh den tacar ina bhfo-rannáin.
- Mód priontála in aghaidh an tacair. Socraítear sa tacar uair amháin conas a phriontálfar é. Nuair a chuirtear isteach é, is féidir an mód a athrú sa chúntóir don chás amháin sin.
- Línte a fholú. Is féidir línte aonair a mharcáil mar Ná priontáil (ar an tacar: Folaithe). Áirítear iad sa suim, ach ní phriontáiltear iad ná ní thaispeántar iad sa tairseach custaiméirí. Aistrítear an marc ón tairiscint go dtí an sonrasc.
- Praghas seasta in aghaidh gach líne tacair. Féadfaidh praghas aonair seasta a bheith ag líne tacair a chuireann ionad phraghas an liosta praghsanna, mar shampla le haghaidh ceartúchán praghais folaithe.
Gan an modúl (sale_product_set amháin) | Le sale_product_set_layout |
|---|---|
| Línte tacair mar mhíreanna scaoilte | Líne rannáin le hainm an tacair, an chainníocht san ainm, línte faoina bhun |
| Fanann rannáin sa tacar ina rannáin agus bristear an struchtúr leo | Éiríonn rannáin sa tacar ina bhfo-rannáin (line_subsection) |
| An chuma phriontála mar an gcéanna i gcónaí | Mód priontála in aghaidh an tacair, inathraithe agus é á chur isteach |
| Ceartúchán praghais le feiceáil ar an tairiscint agus ar an sonrasc | Is féidir an líne a fholú, ach áirítear í sa suim fós |
| Praghas ón liosta praghsanna amháin | Praghas seasta roghnach in aghaidh gach líne tacair |
| Críochnaíonn an leagan amach ag an tairiscint | Baineann an leagan amach agus an folú leis an tairiscint, an t-ordú, an sonrasc agus an tairseach custaiméirí |
Na trí mhód priontála go mion
Is réimse roghnúcháin print_mode é an mód priontála ar an tacar táirgí. Aistrítear é nuair a chuirtear isteach é go dtí an dá scoránaigh chaighdeánacha ar líne an rannáin. Chuige sin tá sa mhodúl aon mhapáil amháin atá éasca le léamh:
# Mód priontála -> (collapse_prices, collapse_composition) de líne an rannáin
PRINT_MODE_FLAGS = {
"detailed": (False, False),
"total_only": (True, False),
"summary": (False, True),
}
Mód (print_mode) | Taispeáint sa tacar | Rogha chaighdeánach in Odoo | Cuma phriontála |
|---|---|---|---|
detailed | Gach líne le praghas | aon cheann | Rannán, gach líne le méid |
total_only | Línte gan praghsanna, suim an tacair amháin | collapse_prices (Folaigh praghsanna) | Rannán le suim, línte le hainm agus cainníocht amháin |
summary | Líne amháin le suim an tacair | collapse_composition (Folaigh comhdhéanamh) | An líne rannáin amháin leis an suim |
Toisc go n-úsáideann an modúl roghanna caighdeánacha Odoo 19 agus gan formáid phriontála dá chuid féin, oibríonn an tairiscint, deimhniú an ordaithe, an sonrasc agus an tairseach custaiméirí gan teimpléid tuarascála chustamaithe. Faigheann an té a bhfuil teimpléid tuarascála dá chuid féin aige a chuireann roghanna na rannán san áireamh an t-iompar céanna freisin.
Línte folaithe agus praghas seasta
Cás coitianta: tá praghas pacáiste ag pacáiste atá faoi bhun shuim na bpraghsanna aonair. In ionad na praghsanna aonair a shaobhadh, úsáideann tú líne cheartúcháin le praghas seasta (mar shampla −50,00 € in aghaidh an tacair) agus folaíonn tú í. Sa chúlchlár tá an sonrasc intuigthe, ar an gcóip chlóite tá praghas an phacáiste.
Tábhachtach le tuiscint: Ní athraíonn an marc hide_in_report rud ar bith den ríomh. Cruthaítear cainníocht, praghas, lascaine, cáin, suimeanna agus iontrálacha leabhair gan athrú ag Odoo caighdeánach. Níl an líne ar iarraidh ach ón gcóip chlóite agus ón tairseach.
- Ar an tacar táirgí: Líne tacair le Folaithe agus le Praghas seasta roghnach mar aon le Praghas aonair.
- Ar línte tairisceana agus sonraisc: Colún Ná priontáil (
hide_in_report), fiú do ghnáthlínte gan tacar. - Tarchur: Nuair a chruthaítear an sonrasc ón ordú, aistrítear an marc chuig líne an tsonraisc. Nuair a chóipeáiltear tairiscint, coinnítear é.
Cur i bhfeidhm teicniúil
Tá an modúl beag d'aon turas: Leathnaíonn sé samhlacha atá ann cheana agus ní scríobhann sé thar ach na háiteanna ina gcinneann Odoo cé na línte a phriontálfar agus conas a chuirfear tacar isteach. Níl aon teimpléid tuarascála nua, aon samhlacha nua ná aon idirghabhálacha SQL ann.
Samhlacha agus réimsí leathnaithe
| Samhail | Breisiú |
|---|---|
product.set | Réimsí insert_as_section (Boole, ar siúl de réir réamhshocraithe) agus print_mode (roghnúchán, éigeantach, réamhshocrú detailed) |
product.set.line | Réimsí hide_in_report, fixed_price, price_unit; tarchuireann prepare_sale_order_line_values() iad chuig líne na tairisceana |
sale.product.set.wizard | Réimsí insert_as_section, section_name, print_mode; tógann _prepare_order_lines() líne an rannáin |
sale.order / sale.order.line | Réimse hide_in_report (le copy=True); scipeann _get_order_lines_to_report() línte folaithe; tarchuireann _prepare_invoice_line() an marc ar aghaidh |
account.move / account.move.line | Réimse hide_in_report; scagann _get_move_lines_to_report(), _get_detailed_lines() agus _get_subsection_lines() línte folaithe; iompraíonn _get_aml_vals() an marc isteach i sonraí na tuarascála |
Folú sa tairiscint
Faigheann Odoo 19 amach na línte tairisceana atá le priontáil in _get_order_lines_to_report(). Cuireann an modúl scagaire leis ansin. Níl gá le hidirghabháil sa teimpléad tuarascála: Glaonn teimpléad tuarascála na tairisceana (sale/report/ir_actions_report_templates.xml) agus an teimpléad tairsí (sale/views/sale_portal_templates.xml) araon ar an modh seo:
class SaleOrder(models.Model):
_inherit = "sale.order"
def _get_order_lines_to_report(self):
return super()._get_order_lines_to_report().filtered(
lambda line: not line.hide_in_report
)
Tarchur chuig an sonrasc
Nuair a chruthaítear líne an tsonraisc ó líne na tairisceana (_prepare_invoice_line()), cóipeáiltear an marc. Ar thaobh an tsonraisc tá roinnt bealaí in Odoo 19 trína sroicheann línte an tuarascáil: an príomhliosta, línte rannáin agus línte fo-rannáin. Mar sin scagann an modúl in áiteanna éagsúla (_get_move_lines_to_report() ar an doiciméad, _get_detailed_lines() agus _get_subsection_lines() ar an líne), nó d'fhéadfadh líne fholaithe teacht chun solais arís trí cheann de na bealaí eile:
class AccountMoveLine(models.Model):
_inherit = "account.move.line"
hide_in_report = fields.Boolean(string="Hidden in report")
def _get_aml_vals(self, hide_taxes):
res = super()._get_aml_vals(hide_taxes)
res["hide_in_report"] = self.hide_in_report
return res
def _get_detailed_lines(self, children_lines, direct_children_lines, subsection_lines):
res = super()._get_detailed_lines(children_lines, direct_children_lines, subsection_lines)
return [vals for vals in res if not vals.get("hide_in_report")]
def _get_subsection_lines(self, subsection_line, children_lines):
res = super()._get_subsection_lines(subsection_line, children_lines)
return [vals for vals in res if not vals.get("hide_in_report")]
An cúntóir: rannán in ionad línte scaoilte
Cruthaíonn an cúntóir sale.product.set.wizard ó sale_product_set na línte tairisceana in _prepare_order_lines(). Scríobhann an modúl thar an modh seo. Mura bhfuil Cuir isteach mar rannán ar siúl, glaonn sé ar an modh bunaidh gan a thuilleadh, agus fanann an t-iompar mar atá sa mhodúl OCA. Seachas sin cruthaítear líne an rannáin leis an dá scoránaigh chaighdeánacha ar dtús, agus ina dhiaidh sin leanann línte an tacair. Éiríonn rannáin laistigh den tacar ina bhfo-rannáin ionas nach mbrisfidh siad an príomhstruchtúr:
def _prepare_order_lines(self):
if not self.insert_as_section:
return super()._prepare_order_lines()
sequence = self._get_max_sequence() + 1
collapse_prices, collapse_composition = PRINT_MODE_FLAGS[self.print_mode or "detailed"]
order_lines = [Command.create({
"display_type": "line_section",
"name": self.section_name or self.product_set_id.name,
"sequence": sequence,
"collapse_prices": collapse_prices,
"collapse_composition": collapse_composition,
})]
for set_line in self._get_lines():
sequence += 1
values = set_line.prepare_sale_order_line_values(self.order_id, self.quantity, sequence)
if values.get("display_type") == "line_section":
values["display_type"] = "line_subsection"
order_lines.append(Command.create(values))
return order_lines
Cinntí nach bhfeictear
- Modhanna ríomha ar leith sa chúntóir. Tá ag ainm an rannáin, ag an mód priontála agus ag Cuir isteach mar rannán modh
computear leith an ceann (store=True,readonly=False). Dá mbeadh an modh céanna ag an triúr acu, athshocródh luach a ritheadh go sainiúil do réimse amháin na cinn eile. Tugtar faoi deara é sin go háirithe nuair a chruthaítear an cúntóir ó chód nó ó thástálacha le luachanna. - Ainm an rannáin le cainníocht. Nuair nach 1 an chainníocht, tá sí san ainm (2 × Messkit Standard, le coma mar dheighilteoir deachúlach), ionas go n-aithneofar sa chóip chlóite gur dhá thacar atá ann agus ní tacar amháin le cainníocht dhúbailte.
- Praghas seasta ar línte táirgí amháin. Socraíonn
prepare_sale_order_line_values()hide_in_reportagusprice_unitach amháin mura líne rannáin nó nótaí í líne an tacair. - Odoo caighdeánach in ionad réitigh shaincheaptha. Úsáideann an mód priontála agus an folú crúcaí agus réimsí atá ann cheana in Odoo 19. Déanann sé sin nuashonruithe inláimhsithe: Má athraíonn Odoo an teimpléad tuarascála, fanann an modúl bailí fad is atá na modhanna ann.
Suiteáil gan fo-iarmhairtí gan iarraidh
Réamhriachtanais: Odoo 19.0, sale_product_set (OCA/sale-workflow, brainse 19.0) agus product_set (OCA/product-attribute, brainse 19.0). Braitheann an modúl féin ar sale_management, sale_product_set agus account.
Gaiste auto_install i modúil OCA. Bíonn modúil le auto_install i go leor stórlanna OCA. Chomh luath agus a bhíonn a spleáchais ar fáil, suiteálann Odoo iad gan iarraidh an chéad uair eile a shuiteálfar nó a nuashonrófar. Dá bhrí sin, an té a chuireann an stórlann OCA iomlán isteach in addons_path i dtimpeallacht tháirgthe, d'fhéadfadh sé modúil a fháil nár theastaigh ó dhuine ar bith. I gcás OCA/product-attribute baineann sé sin, mar shampla, le purchase_product_template_tags. Ár gcur chuige:
- Clónáil an dá stórlann OCA go héadomhain (
git clone --depth 1 --branch 19.0). - I gcomhadlann ar leith, nasc an dá mhodúl riachtanacha amháin le naisc shiombalacha agus cuir an chomhadlann sin in
addons_path, ní na stórlanna iomlána. - Suiteáil ar bhunachar sonraí tástála agus seiceáil cé na modúil a fhaigheann stádas suiteáilte ina dhiaidh.
- Ansin amháin, suiteáil i dtáirgeadh, le
--workers=0, ionas nach mbeidh an glao in iomaíocht leis an tseirbhís atá ag rith ar phort HTTP.
odoo-bin -c /etc/odoo/odoo.conf -d <datenbank> -i sale_product_set_layout --stop-after-init
Tá réimsí agus radhairc nua sa bhunachar sonraí tar éis suiteála. Má ritheann an tseirbhís i mód il-phróisis, athluchtaíonn na hoibrithe an Registry athraithe tríd an gcomhartha bunachair sonraí. Ní thagann athruithe ar chomhaid Python an mhodúil i bhfeidhm ach tar éis an tseirbhís a atosú.
Úsáid céim ar chéim
- Tacar a chruthú: Díolacháin → Táirgí → Tacair táirgí. Ainmnigh an tacar, roghnaigh Cuir isteach mar rannán agus Mód priontála, cuir isteach na táirgí le cainníochtaí. Cuir Folaithe agus Praghas seasta ar línte ceartúcháin.
- Sa tairiscint: Cliceáil ar Cuir tacar leis, roghnaigh tacar agus cainníocht. Is féidir ainm an rannáin agus an mód priontála a athrú sula gcuirtear isteach é.
- Línte aonair a fholú: Gníomhachtaigh an colún Ná priontáil sa tairiscint nó sa sonrasc.
- Seiceáil: Oscail réamhamharc nó PDF. Feiceann custaiméirí an léiriú céanna sa tairseach.
Tástálacha
Tá sé thástáil uathoibrithe sa mhodúl, a ritheann muid i gcoinne bunachair sonraí tástála sular théann aon rud i dtáirgeadh:
- Cur isteach mar rannán lena n-áirítear mód priontála agus fo-rannán
- Tá líne fholaithe ar iarraidh ó na línte atá le priontáil
- Mód Líne amháin (
summary) - Cur isteach gan rannán, an t-iompar bunaidh
- Glacann an sonrasc leis an marc
hide_in_report, tá an líne ar iarraidh in_get_move_lines_to_report(), agus áirítear í fós i suim an rannáin - Sa mhód Praghas iomlán amháin ní thaispeánann an sonrasc an líne fholaithe i línte an rannáin, tá suim an rannáin iomlán fós
odoo-bin -d <testdatenbank> -i sale_product_set_layout \
--test-enable --test-tags=/sale_product_set_layout --stop-after-init
Tá an t-aistriúchán Gearmáinise le fáil in i18n/de.po.
Teorainneacha agus nóta dlíthiúil
- Leagan amach amháin. Ní athraíonn an modúl conas a ríomhann Odoo praghsanna, lascainí nó cánacha. Ní athraíonn sé ach cad a phriontáiltear agus a thaispeántar sa tairseach.
- Tá línte folaithe le feiceáil sa chúlchlár. Baineann an marc leis an gcóip chlóite agus leis an tairseach, ní le radharc scáileáin na bhfostaithe.
- Seiceáil sonraí an tsonraisc. Áirítear línte folaithe sa suim, ach ní bhíonn siad ar an doiciméad. Más mian leat a fháil amach an bhfuil sé sin comhoiriúnach leis na ceanglais atá ar shonraisc i do thír, mar shampla leis an tuairisc éigeantach ar na hearraí a seachadadh nó ar na seirbhísí a cuireadh ar fáil, ba cheart duit é a shoiléiriú le do chomhairleoir cánach sula n-úsáideann tú ar shonraisc é. Is lú fadhb an folú ar thairiscintí. Ní comhairle dlí é an t-alt.
- Tástáilte d'Odoo 19. D'fhorbraíomar agus thástálamar an modúl d'Odoo 19.0 Community. Úsáideann sé roghanna rannáin atá ann sa fhoirm seo in Odoo 19. Ní dhearnamar tástáil air do leaganacha eile.
Ceisteanna Coitianta
Cén fáth a dteastaíonn an modúl uaim má tá rannáin ag Odoo 19 cheana?
Tá na roghanna rannáin in Odoo féin. Bhí an nasc leis an tacar táirgí ar iarraidh: Ba cheart tacar a chur isteach go huathoibríoch mar rannán, leis an mód priontála atá stóráilte sa tacar. Gan an modúl, ní mór an líne rannáin a chruthú agus a chumrú de láimh tar éis gach cur isteach.
Cad é an difríocht idir “Folaigh praghsanna” agus “Folaigh comhdhéanamh”?
Fágann “Folaigh praghsanna” (collapse_prices) na línte ar taispeáint, ach ní thaispeánann sé méideanna, ach suim an rannáin amháin. Folaíonn “Folaigh comhdhéanamh” (collapse_composition) na línte go hiomlán; ní fheiceann an custaiméir ach an rannán leis an suim.
An n-áirítear líne fholaithe i suim an tsonraisc?
Áirítear. Fanann línte folaithe sa suim, sa cháin agus sa chuntasaíocht. Baineann an marc leis an léiriú ar an gcóip chlóite agus sa tairseach custaiméirí amháin.
An féidir liom an mód priontála a athrú fós nuair a chuirim isteach é?
Is féidir. Tagann an mód mar réamhshocrú ón tacar, agus sa chúntóir is féidir é a athrú don chur isteach áirithe sin. Fanann an tacar féin gan athrú.
Cad a tharlaíonn má chuirim Cuir isteach mar rannán as?
Ansin iompraíonn an cúntóir mar a dhéanann sé sa mhodúl OCA sale_product_set: Cuirtear línte an tacair isteach gan rannán.
An suiteálann an modúl modúil eile gan choinne?
Ní dhéanann an modúl féin. Ach i stórlanna OCA, d'fhéadfadh modúil auto_install a bheith ann má chuireann tú stórlanna iomlána isteach in addons_path. Mar sin ná nasc ach an dá mhodúl riachtanacha (féach an chuid Suiteáil).
An ritheann an modúl le Odoo Enterprise?
Braitheann an modúl ar mhodúil Community amháin (sale_management, account) agus ar an dá mhodúl OCA. Úsáidimid é ar Odoo 19 Community. Níor thástálamar é ar Enterprise.
Faoi cén cheadúnas atá an modúl?
Faoi AGPL-3. Is féidir leat é a úsáid, a oiriúnú agus a scaipeadh, fad is a fhanann athruithe faoin gceadúnas céanna. Is mór linn earráidí agus moltaí feabhsúcháin mar issue sa stórlann GitHub a fháil.
Tacaíocht ó Biricon IT Services
Cothaímid suiteálacha Odoo do ghnólachtaí beaga agus meánmhéide: ón tabhairt isteach trí oiriúnuithe agus aistrithe go dtí an oibríocht leanúnach. Más mian leat tacair táirgí, teimpléid tairisceana nó tuarascálacha in Odoo 19 a oiriúnú do do phróisis, nó más mian leat modúl mar seo a sheiceáil agus a thabhairt go sábháilte isteach i do thimpeallacht tháirgthe, is fearr linn tacú leat. Gheobhaidh tú tuilleadh forbairtí dár gcuid féin inár mblag, mar shampla Dréachtshonraisc a chumasc agus Íocaíochtaí bainc a mheaitseáil go huathoibríoch le sonraisc.
Staid ar an 2 Samhain 2026. Leagan modúil 19.0.1.0.0. Tá na sonraí samplacha sna léaráidí roghnaithe go saor, méideanna glan.