Skip to Content

Odoo 19 Community․ ապրանքակոմպլեկտներն առաջարկում որպես բաժին՝ մեր բաց կոդով Sale Product Set Layout մոդուլը

2026 թվականի նոյեմբերի 2 | Odoo 19 Community | Սեփական մշակում
02 նոյեմբերի, 2026 թ. by
Odoo 19 Community․ ապրանքակոմպլեկտներն առաջարկում որպես բաժին՝ մեր բաց կոդով Sale Product Set Layout մոդուլը

Odoo 19-ի Sale Product Set Layout մոդուլ․ ապրանքակոմպլեկտները որպես բաժին առաջարկում՝ տպման ռեժիմով, թաքցված տողերով և ֆիքսված գնով

Ով Odoo-ում փաթեթներ է վաճառում, օրինակ՝ չափիչ սարք՝ պարագաներով և տեղադրմամբ, աշխատատեղ՝ սարքավորումներով և կարգավորմամբ, կամ մի քանի ծառայությունից բաղկացած սպասարկման փաթեթ, առաջարկում միաժամանակ երկու բան է պետք․ Բաղադրակազմը պետք է նշված լինի պատվերում, որպեսզի պահեստը, տեխնիկական բաժինը և հաշիվների կազմումը իմանան, թե ինչ է առաքվում։ Սակայն հաճախորդի համար տպվող օրինակում ամեն դեպքում չպետք է յուրաքանչյուր առանձին դիրք՝ իր առանձին գնով, երևա։

sale_product_set OCA մոդուլը թույլ է տալիս մեկ կտտոցով առաջարկում տեղադրել ապրանքակոմպլեկտներ (վաճառքի բաղադրակազմեր)։ Տպման տեսքը նա չի որոշում։ Դրա համար մենք մշակել ենք Sale Product Set Layout (sale_product_set_layout) մոդուլը։ Այն գրված է Odoo 19-ի համար և որպես ազատ ծրագրային ապահովում՝ AGPL-3 լիցենզիայով, անվճար հասանելի է GitHub-ում՝

github.com/Alex0176/odoo-sale-product-set-layout

Խնդիրը․ ապրանքակոմպլեկտներ՝ առանց ազդեցության տպման տեսքի վրա

Odoo-ում ապրանքակոմպլեկտը ապրանքների նախապես պատրաստված ցանկ է՝ քանակներով։ Տասը առարկա առանձին-առանձին որոնելու փոխարեն առաջարկում ընտրում եք Ավելացնել կոմպլեկտ, և բոլոր տողերը ստանում եք միանգամից։ Դա խնայում է ժամանակ և կանխում է մոռացված դիրքերը։ Հենց դա է անում sale_product_set մոդուլը այս պահոցից՝ OCA/sale-workflow իսկ կոմպլեկտներն իրենք ստացվում են product_set-ից այս պահոցում՝ OCA/product-attribute.

Գործնականում մնում են երեք բացթողումներ․

  • Տեսանելի խմբավորում չկա։ Կոմպլեկտի տողերը առաջարկում հայտնվում են որպես առանձին դիրքեր։ Տեղադրելուց հետո այլևս չի երևում, թե որ տողերն են իրար պատկանում, և կոմպլեկտի ընդհանուր գումարը ոչ մի տեղ չկա։
  • Ազդեցություն տպվող օրինակի վրա չկա։ Երբեմն հաճախորդը պետք է տեսնի յուրաքանչյուր դիրքը՝ գնով, երբեմն՝ միայն փաթեթի գինը, երբեմն՝ միայն մեկ տող։ Դա որոշում է յուրաքանչյուր կոմպլեկտի կամ հաճախորդի համար, այլ ոչ թե ամեն անգամ նոր առաջարկում ձեռքով։
  • Գնի ուղղումները անհարմար են։ Եթե փաթեթն ունենալու է ֆիքսված գին, որը տարբերվում է գնացուցակի գների գումարից, անհրաժեշտ է ուղղման տող։ Այն պետք է մասնակցի հաշվարկին, բայց անպայման չէ, որ երևա հաճախորդի թղթի վրա։

Odoo 19-ը պարունակում է այն հիմնական բաղադրիչները, որոնք թույլ են տալիս սա մաքուր լուծել․ առաջարկի տողերում բաժիններ և ենթաբաժիններ՝ Թաքցնել գները և Թաքցնել բաղադրակազմը տարբերակներով (collapse_prices և collapse_composition դաշտեր)։ Մոդուլը կապում է ապրանքակոմպլեկտը այս ստանդարտ տարբերակների հետ՝ սեփական տպման ձևաչափ հորինելու փոխարեն։

Ինչ է անում մոդուլը

  1. Կոմպլեկտը տեղադրել որպես բաժին։ Ավելացնել կոմպլեկտ օգնականը ստեղծում է բաժնի տող՝ կոմպլեկտի անվանմամբ, օրինակ՝ 2 × Messkit Standard, և դրա տակ դնում է կոմպլեկտի տողերը։ Կոմպլեկտի ներսի բաժինները դառնում են ենթաբաժիններ։
  2. Տպման ռեժիմ յուրաքանչյուր կոմպլեկտի համար։ Կոմպլեկտում մեկ անգամ սահմանվում է, թե ինչպես այն տպվի։ Տեղադրելիս օգնականում ռեժիմը կարելի է փոխել այդ մեկ դեպքի համար։
  3. Տողերի թաքցում։ Առանձին տողեր կարելի է նշել որպես Չտպել (կոմպլեկտում՝ Թաքցված)։ Դրանք հաշվվում են գումարում, բայց ո՛չ տպվում են, ո՛չ էլ ցուցադրվում հաճախորդի պորտալում։ Այս նշանը առաջարկից փոխանցվում է հաշիվ-ապրանքագրին։
  4. Ֆիքսված գին կոմպլեկտի տողի համար։ Կոմպլեկտի տողը կարող է ունենալ ֆիքսված միավորի գին, որը փոխարինում է գնացուցակի գինը, օրինակ՝ թաքցված գնի ուղղման համար։
Առանց մոդուլի (միայն sale_product_set)sale_product_set_layout-ով
Կոմպլեկտի տողերը՝ որպես առանձին դիրքերԲաժնի տող՝ կոմպլեկտի անվանմամբ, քանակը՝ անվանման մեջ, տողերը՝ դրա տակ
Կոմպլեկտի ներսի բաժինները մնում են բաժիններ և խախտում են կառուցվածքըԿոմպլեկտի ներսի բաժինները դառնում են ենթաբաժիններ (line_subsection)
Տպման տեսքը միշտ նույնն էՏպման ռեժիմ յուրաքանչյուր կոմպլեկտի համար՝ տեղադրելիս փոփոխելի
Գնի ուղղումը տեսանելի է առաջարկի և հաշիվ-ապրանքագրի վրաՏողը կարելի է թաքցնել, բայց այն հաշվվում է գումարում
Գինը՝ միայն գնացուցակիցԸստ ցանկության՝ ֆիքսված գին կոմպլեկտի տողի համար
Տեսքը ավարտվում է առաջարկովՏեսքը և թաքցումը գործում են առաջարկի, պատվերի, հաշիվ-ապրանքագրի և հաճախորդի պորտալի համար

Երեք տպման ռեժիմները մանրամասն

Տպման ռեժիմը print_mode ընտրության դաշտն է ապրանքակոմպլեկտում։ Տեղադրելիս այն թարգմանվում է բաժնի տողի երկու ստանդարտ անջատիչներին։ Դրա համար մոդուլում կա մեկ, հեշտ ընթերցվող համապատասխանեցում․

# Տպման ռեժիմ -> (collapse_prices, collapse_composition) բաժնի տողի համար
PRINT_MODE_FLAGS = {
    "detailed":   (False, False),
    "total_only": (True,  False),
    "summary":    (False, True),
}

Նույն ապրանքակոմպլեկտի երեք տպման տեսք՝ յուրաքանչյուր տող՝ գնով, միայն ընդհանուր գինը, մեկ միակ տող

Ռեժիմ (print_mode)Ցուցադրումը կոմպլեկտումOdoo-ի ստանդարտ տարբերակՏպման տեսք
detailedՅուրաքանչյուր տող՝ գնովչկաԲաժին, բոլոր տողերը՝ գումարով
total_onlyՏողերը՝ առանց գների, միայն կոմպլեկտի գումարըcollapse_prices (Թաքցնել գները)Բաժին՝ գումարով, տողերը՝ միայն անվանմամբ և քանակով
summaryՄիայն մեկ տող՝ կոմպլեկտի գումարովcollapse_composition (Թաքցնել բաղադրակազմը)Միայն բաժնի տողը՝ գումարով

Քանի որ մոդուլն օգտագործում է Odoo 19-ի ստանդարտ տարբերակները, այլ ոչ թե սեփական տպման ձևաչափ, առաջարկը, պատվերի հաստատումը, հաշիվ-ապրանքագիրը և հաճախորդի պորտալը աշխատում են առանց հարմարեցված հաշվետվության կաղապարների։ Եթե ունեք սեփական հաշվետվության կաղապարներ, որոնք հաշվի են առնում բաժնի տարբերակները, նույն վարքագիծը կստանաք նաև դրանցում։

Թաքցված տողեր և ֆիքսված գին

Հաճախակի դեպք․ փաթեթն ունի փաթեթի գին, որը ցածր է առանձին գների գումարից։ Առանձին գները աղավաղելու փոխարեն վերցնում են ֆիքսված գնով ուղղման տող (օրինակ՝ −50,00 € յուրաքանչյուր կոմպլեկտի համար) և թաքցնում են այն։ Բեքենդում հաշիվ-ապրանքագիրը հետագծելի է, իսկ տպված օրինակում երևում է փաթեթի գինը։

Գնի ուղղումը բեքենդում տեսանելի է և նշված, առաջարկի, PDF-ի, հաշիվ-ապրանքագրի և պորտալի տպված օրինակում՝ տեսանելի չէ, գումարը նույնն է

Հասկանալու համար կարևոր է․ hide_in_report նշանը ոչինչ չի փոխում հաշվարկում։ Քանակը, գինը, զեղչը, հարկը, գումարները և հաշվապահական գրանցումները ստեղծվում են անփոփոխ՝ ստանդարտ Odoo-ի կողմից։ Տողը բացակայում է միայն տպված օրինակից և պորտալից։

  • Ապրանքակոմպլեկտում՝ կոմպլեկտի տող՝ Թաքցված և ըստ ցանկության՝ Ֆիքսված գին՝ Միավորի գին-ի հետ միասին։
  • Առաջարկի և հաշիվ-ապրանքագրի տողերում՝ Չտպել սյունակ (hide_in_report), նաև սովորական տողերի համար՝ առանց կոմպլեկտի։
  • Փոխանցում։ Պատվերից հաշիվ-ապրանքագիր ստեղծելիս նշանը փոխանցվում է հաշիվ-ապրանքագրի տողին։ Առաջարկը պատճենելիս այն պահպանվում է։

Տեխնիկական իրականացում

Մոդուլը միտումնավոր փոքր է․ այն ընդլայնում է առկա մոդելները և վերասահմանում է միայն այն տեղերը, որտեղ Odoo-ն որոշում է՝ որ տողերը տպվեն և ինչպես տեղադրվի կոմպլեկտը։ Նոր հաշվետվության կաղապարներ, նոր մոդելներ և SQL միջամտություններ չկան։

Տվյալների հոսք․ ապրանքակոմպլեկտ, «Ավելացնել կոմպլեկտ» օգնական, առաջարկի տողեր, հաշիվ-ապրանքագրի տողեր, PDF և հաճախորդի պորտալ

Ընդլայնված մոդելներ և դաշտեր

ՄոդելԼրացում
product.setinsert_as_section (Boolean, լռելյայն միացված) և print_mode (ընտրություն, պարտադիր դաշտ, լռելյայն detailed) դաշտեր
product.set.linehide_in_report, fixed_price, price_unit դաշտեր․ prepare_sale_order_line_values()-ը դրանք փոխանցում է առաջարկի տողին
sale.product.set.wizardinsert_as_section, section_name, print_mode դաշտեր․ _prepare_order_lines()-ը կառուցում է բաժնի տողը
sale.order / sale.order.linehide_in_report դաշտ (copy=True-ով)․ _get_order_lines_to_report()-ը բաց է թողնում թաքցված տողերը․ _prepare_invoice_line()-ը փոխանցում է նշանը
account.move / account.move.linehide_in_report դաշտ․ _get_move_lines_to_report(), _get_detailed_lines() և _get_subsection_lines() զտում են թաքցված տողերը․ _get_aml_vals()-ը նշանը տեղափոխում է հաշվետվության տվյալների մեջ

Թաքցում առաջարկում

Odoo 19-ը տպվող առաջարկի տողերը որոշում է _get_order_lines_to_report()-ում։ Մոդուլն այնտեղ ավելացնում է զտիչ։ Հաշվետվության կաղապարին միջամտել պետք չէ․ և՛ առաջարկի հաշվետվության կաղապարը (sale/report/ir_actions_report_templates.xml), և՛ պորտալի կաղապարը (sale/views/sale_portal_templates.xml) կանչում են այս մեթոդը՝

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
        )

Փոխանցում հաշիվ-ապրանքագրին

Առաջարկի տողից հաշիվ-ապրանքագրի տող ստեղծելիս (_prepare_invoice_line()) նշանը պատճենվում է։ Հաշիվ-ապրանքագրի կողմում Odoo 19-ում տողերը հաշվետվություն են հասնում մի քանի ճանապարհով՝ հիմնական ցանկ, բաժնի տողեր և ենթաբաժնի տողեր։ Այդ պատճառով մոդուլը զտում է մի քանի տեղում (_get_move_lines_to_report() փաստաթղթում, _get_detailed_lines() և _get_subsection_lines() տողում), հակառակ դեպքում թաքցված տողը կարող էր մյուս ճանապարհներով նորից հայտնվել՝

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")]

Օգնականը․ բաժին՝ առանձին տողերի փոխարեն

sale_product_set-ի sale.product.set.wizard օգնականը ստեղծում է առաջարկի տողերը _prepare_order_lines()-ում։ Մոդուլը վերասահմանում է այս մեթոդը։ Եթե Տեղադրել որպես բաժին տարբերակը անջատված է, այն պարզապես կանչում է սկզբնական մեթոդը, և վարքագիծը մնում է այնպես, ինչպես OCA մոդուլում։ Հակառակ դեպքում սկզբում ստեղծվում է բաժնի տողը՝ երկու ստանդարտ անջատիչներով, ապա հետևում են կոմպլեկտի տողերը։ Կոմպլեկտի ներսի բաժինները դառնում են ենթաբաժիններ, որպեսզի չխախտեն հիմնական կառուցվածքը՝

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

Որոշումներ, որոնք չեն երևում

  • Առանձին հաշվարկման մեթոդներ օգնականում։ Բաժնի անվանումը, տպման ռեժիմը և Տեղադրել որպես բաժին-ը յուրաքանչյուրն ունի սեփական compute մեթոդը (store=True, readonly=False)։ Եթե երեքն էլ ունենային նույն մեթոդը, մի դաշտի համար բացահայտ փոխանցված արժեքը կզրոյացներ մյուսները։ Դա հատկապես նկատելի է, երբ օգնականը ստեղծվում է կոդից կամ թեստերից՝ արժեքներով։
  • Բաժնի անվանումը՝ քանակով։ Երբ քանակը 1-ից տարբեր է, այն նշվում է անվանման մեջ (2 × Messkit Standard՝ ստորակետով որպես տասնորդական բաժանիչ), որպեսզի տպված օրինակում երևա, որ դրանք երկու կոմպլեկտ են, այլ ոչ թե մեկ կոմպլեկտ կրկնակի քանակով։
  • Ֆիքսված գինը՝ միայն ապրանքային տողերում։ prepare_sale_order_line_values()-ը սահմանում է hide_in_report և price_unit-ը միայն այն դեպքում, երբ կոմպլեկտի տողը բաժնի կամ նշումի տող չէ։
  • Ստանդարտ Odoo՝ սեփական մշակման փոխարեն։ Տպման ռեժիմը և թաքցումը օգտագործում են Odoo 19-ի առկա hook-երն ու դաշտերը։ Դա թարմացումները դարձնում է կառավարելի․ եթե Odoo-ն փոխի հաշվետվության կաղապարը, մոդուլը մնում է ուժի մեջ, քանի դեռ մեթոդները գոյություն ունեն։

Տեղադրում՝ առանց անցանկալի կողմնակի ազդեցությունների

Նախապայմաններ․ Odoo 19.0, sale_product_set (OCA/sale-workflow, 19.0 ճյուղ) և product_set (OCA/product-attribute, 19.0 ճյուղ)։ Մոդուլն ինքը կախված է sale_management, sale_product_set և account-ից։

auto_install-ի թակարդը OCA մոդուլներում։ Շատ OCA պահոցներ պարունակում են auto_install ունեցող մոդուլներ։ Հենց որ դրանց կախվածությունները առկա են, Odoo-ն հաջորդ տեղադրման կամ թարմացման ժամանակ դրանք տեղադրում է առանց հարցնելու։ Եթե ամբողջ OCA պահոցը դնեք արտադրական օրինակի addons_path-ի մեջ, հնարավոր է՝ ստանաք մոդուլներ, որոնք ոչ ոք չէր ուզում։ OCA/product-attribute-ի դեպքում դա վերաբերում է, օրինակ, purchase_product_template_tags-ին։ Մեր մոտեցումը՝

  1. Երկու OCA պահոցները կլոնավորել մակերեսային եղանակով (git clone --depth 1 --branch 19.0)։
  2. Առանձին գրացուցակում symlink-ով կապել միայն երկու անհրաժեշտ մոդուլները և այդ գրացուցակը ավելացնել addons_path-ում, այլ ոչ թե ամբողջ պահոցները։
  3. Տեղադրել թեստային տվյալների բազայում և ստուգել, թե որ մոդուլները ստացան տեղադրված կարգավիճակ։
  4. Միայն դրանից հետո տեղադրել արտադրական միջավայրում՝ --workers=0-ով, որպեսզի հրամանը HTTP պորտի համար չմրցակցի աշխատող ծառայության հետ։
odoo-bin -c /etc/odoo/odoo.conf -d <datenbank> -i sale_product_set_layout --stop-after-init

Նոր դաշտերն ու դիտարկումները տեղադրումից հետո արդեն տվյալների բազայում են։ Եթե ծառայությունը աշխատում է բազմապրոցես ռեժիմով, worker-ները փոփոխված registry-ն նորից բեռնում են տվյալների բազայի ազդանշանի միջոցով։ Մոդուլի Python ֆայլերի փոփոխությունները ուժի մեջ են մտնում միայն ծառայության վերագործարկումից հետո։

Օգտագործումը քայլ առ քայլ

  1. Կոմպլեկտ ստեղծել․ Վաճառք → Ապրանքներ → Ապրանքակոմպլեկտներ։ Կոմպլեկտին անուն տալ, ընտրել Տեղադրել որպես բաժին և Տպման ռեժիմ, մուտքագրել ապրանքները՝ քանակներով։ Ուղղման տողերին տալ Թաքցված և Ֆիքսված գին։
  2. Առաջարկում․ Սեղմել Ավելացնել կոմպլեկտ, ընտրել կոմպլեկտը և քանակը։ Բաժնի անվանումը և տպման ռեժիմը կարելի է փոխել տեղադրելուց առաջ։
  3. Առանձին տողեր թաքցնել․ Առաջարկում կամ հաշիվ-ապրանքագրում ակտիվացնել Չտպել սյունակը։
  4. Ստուգել․ Բացել նախադիտումը կամ PDF-ը։ Նույն տեսքը տեսնում են հաճախորդները պորտալում։

Թեստեր

Մոդուլը ներառում է վեց ավտոմատացված թեստ, որոնք մենք գործարկում ենք թեստային տվյալների բազայի դեմ՝ նախքան որևէ բան արտադրական միջավայր անցնելը․

  • Տեղադրում որպես բաժին՝ ներառյալ տպման ռեժիմը և ենթաբաժինը
  • Թաքցված տողը բացակայում է տպվող տողերից
  • Մեկ տող ռեժիմ (summary)
  • Տեղադրում՝ առանց բաժնի, սկզբնական վարքագիծը
  • Հաշիվ-ապրանքագիրը ընդունում է hide_in_report նշանը, տողը բացակայում է _get_move_lines_to_report()-ից, բաժնի գումարը շարունակում է ներառել այն
  • Հաշիվ-ապրանքագիրը Միայն ընդհանուր գին ռեժիմով թաքցված տողը չի ցուցադրում բաժնի տողերում, բաժնի գումարը մնում է ամբողջական
odoo-bin -d <testdatenbank> -i sale_product_set_layout \
         --test-enable --test-tags=/sale_product_set_layout --stop-after-init

Գերմաներեն թարգմանությունը գտնվում է i18n/de.po-ում։

Սահմանափակումներ և իրավական նշում

  • Միայն տեսք։ Մոդուլը չի փոխում, թե ինչպես է Odoo-ն հաշվարկում գները, զեղչերը կամ հարկերը։ Այն փոխում է միայն այն, ինչ տպվում և ցուցադրվում է պորտալում։
  • Թաքցված տողերը բեքենդում տեսանելի են։ Նշանը վերաբերում է տպված օրինակին և պորտալին, այլ ոչ թե աշխատակիցների էկրանային դիտարկմանը։
  • Ստուգեք հաշիվ-ապրանքագրի տվյալները։ Թաքցված տողերը հաշվվում են գումարում, բայց չեն երևում փաստաթղթի վրա։ Արդյո՞ք դա համատեղելի է ձեր երկրում հաշիվ-ապրանքագրերին ներկայացվող պահանջների հետ, օրինակ՝ մատակարարված ապրանքների կամ մատուցված ծառայությունների՝ օրենքով պահանջվող նկարագրության հետ, դա պետք է հաշիվ-ապրանքագրերում կիրառելուց առաջ պարզեք ձեր հարկային խորհրդատուի հետ։ Առաջարկներում թաքցումը ավելի անվտանգ է։ Այս հոդվածը իրավական խորհրդատվություն չէ։
  • Փորձարկված է Odoo 19-ի համար։ Մոդուլը մշակել և փորձարկել ենք Odoo 19.0 Community-ի համար։ Այն օգտագործում է բաժնի տարբերակներ, որոնք այս տեսքով առկա են Odoo 19-ում։ Այլ տարբերակների համար մենք այն չենք ստուգել։

Հաճախ տրվող հարցեր

Ինչո՞ւ է ինձ մոդուլը պետք, եթե Odoo 19-ն արդեն գիտի բաժիններ։

Բաժնի տարբերակները Odoo-ում կան։ Բացակայում էր կապը ապրանքակոմպլեկտի հետ․ կոմպլեկտը պետք է ավտոմատ տեղադրվեր որպես բաժին՝ կոմպլեկտում նշված տպման ռեժիմով։ Առանց մոդուլի՝ յուրաքանչյուր տեղադրումից հետո բաժնի տողը պետք է ձեռքով ստեղծել և կարգավորել։

Ինչո՞վ են տարբերվում «Թաքցնել գները» և «Թաքցնել բաղադրակազմը»։

«Թաքցնել գները» (collapse_prices) թողնում է տողերը, բայց գումարներ չի ցուցադրում, միայն՝ բաժնի ընդհանուրը։ «Թաքցնել բաղադրակազմը» (collapse_composition) տողերը լիովին թաքցնում է, հաճախորդը տեսնում է միայն բաժինը՝ գումարով։

Թաքցված տողը հաշվվու՞մ է հաշիվ-ապրանքագրի գումարում։

Այո։ Թաքցված տողերը մնում են գումարում, հարկում և հաշվապահական գրանցման մեջ։ Նշանը վերաբերում է միայն տպված օրինակի և հաճախորդի պորտալի ցուցադրմանը։

Կարո՞ղ եմ տեղադրելիս դեռ փոխել տպման ռեժիմը։

Այո։ Ռեժիմը լռելյայն արժեք է գալիս կոմպլեկտից, օգնականում այն կարելի է փոխել տվյալ տեղադրման համար։ Կոմպլեկտն ինքը մնում է անփոփոխ։

Ի՞նչ կլինի, եթե անջատեմ Տեղադրել որպես բաժին-ը։

Այդ դեպքում օգնականը վարվում է այնպես, ինչպես sale_product_set OCA մոդուլում․ կոմպլեկտի տողերը տեղադրվում են առանց բաժնի։

Մոդուլը անսպասելիորեն այլ մոդուլներ տեղադրու՞մ է։

Մոդուլն ինքը՝ ոչ։ Սակայն OCA պահոցների դեպքում կարող են հայտնվել auto_install մոդուլներ, եթե ամբողջ պահոցները դնեք addons_path-ի մեջ։ Այդ պատճառով միացրեք միայն երկու անհրաժեշտ մոդուլները (տե՛ս «Տեղադրում» բաժինը)։

Մոդուլն աշխատու՞մ է Odoo Enterprise-ի հետ։

Մոդուլը կախված է միայն Community մոդուլներից (sale_management, account) և երկու OCA մոդուլներից։ Մենք այն կիրառում ենք Odoo 19 Community-ում։ Enterprise-ում մենք այն չենք փորձարկել։

Ի՞նչ լիցենզիայով է մոդուլը։

AGPL-3 լիցենզիայով։ Կարող եք այն օգտագործել, հարմարեցնել և փոխանցել, քանի դեռ փոփոխությունները մնում են նույն լիցենզիայի ներքո։ Սխալների և բարելավման առաջարկների համար ողջունվում են issue-ները՝ GitHub պահոցում ։

Biricon IT Services-ի աջակցությունը

Մենք սպասարկում ենք Odoo տեղադրումները փոքր և միջին ձեռնարկությունների համար՝ ներդրումից և հարմարեցումներից մինչև միգրացիաներ և ընթացիկ շահագործում։ Եթե ցանկանում եք Odoo 19-ում ապրանքակոմպլեկտները, առաջարկի կաղապարները կամ հաշվետվությունները հարմարեցնել ձեր աշխատանքային գործընթացներին, կամ եթե ուզում եք այսպիսի մոդուլ ստուգել և անվտանգ կերպով ներդնել ձեր արտադրական օրինակում, ուրախությամբ կօգնենք։ Մեր այլ սեփական մշակումները կգտնեք մեր բլոգում, օրինակ՝ Սևագիր հաշիվ-ապրանքագրերի միավորում և Բանկային վճարումների ավտոմատ համապատասխանեցում հաշիվ-ապրանքագրերի հետ.

Կապ հաստատել հիմա

Վիճակը՝ 2026 թվականի նոյեմբերի 2։ Մոդուլի տարբերակը՝ 19.0.1.0.0։ Պատկերների օրինակային տվյալները ազատ ընտրված են, գումարները՝ առանց հարկի։