From 8709a0351704f37bd1b0375ead61ccc098204887 Mon Sep 17 00:00:00 2001 From: Shahed Nasser Date: Tue, 20 Sep 2022 10:34:53 +0300 Subject: [PATCH] docs for tax-inclusive pricing (#2159) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * docs for tax-inclusive pricing * changes based on feedback * changes based on feedback * fix link * fix: make prices optional param when updating a variant (#2155) **Why** - It should be possible to update variant props without having to send the prices array with every update * feat(medusa): Tax-inclusive pricing (#2131) * add feature flag for tax inclusive pricing * update db model for TIP * add migration * set featureflag column decorators * remove unused prop * update tests to reflect feature_flags as any array * fix types * reference key from featureFlag file * use feature flag key in models * fix copy paste mistake * unify spelling * Create gorgeous-experts-guess.md * feat(medusa): create/update endpoints of currency/region/price-lists/shipping-options should allow to pass includes_tax * test(integration): continue to add some integration test * test(integration): continue to add some integration test * test(unit): Fix region service tests * fix(medusa): API unit tests flags management * feat(medusa): Minor cleanup * style(medusa): Fix typo * fix(medusa): rebase * feat(medusa): Replace old tag with the new one * feat(medusa): revert flag * feat(medusa): Cleanup * feat(medusa): feedback * feat(medusa): Rename currency retrieve method * test(medudsa): fix unit tests * chore(medusa): fix oas * feat(medusa): ShippingMethod should include tax setting from parent option (#2021) * feat(medusa): Shipping method should includes tax from parent options * feat(medusa): Condition the includes tax flag to the availability of the feature and add some other tests * test(integration): Move cart/order ff test in separate files * fix: snapshots folder * fix(integration): snapshots * Create calm-baboons-sit.md * test(integration): file naming Co-authored-by: Carlos R. L. Rodrigues * Feat/tax inclusive pricing extend price selection strategy (#2087) * initial changes to price selection strategy including unit tests * typing for tax calculation * update types and remove region and currency from prices results * fix casing * include tax calculation in priceselectionstrategy * integration tests for tax inclusive pricing price calculations * fix build * include tax inclusive considerations when calculating tax fields for variants * include only "includes_tax" fields from currency and region joins * test to see errors in pipelines * conditionally join featureflagged fields * add "includes_tax" to price list factory * add tests for tax inclusive price list prices and currency prices * fix unit tests * refactor pricing array checks to expect arraycontaining * undo error handler * Feat/tax inclusive pricing flag on generated lineitems (#2108) * include tax inclusive pricing flag on generated lineitems * initial addition of tax inclusivity for lineitem service * add generate test to ensure that includes_tax is set when returned from price selection strategy * add integration test for generating lineitem including tax * add test for negative tax inclusion * add tests for mixed pricing * add negative test for setting tax exclusivity * restructure the setting of includes_tax on lineitems * fix: update cwd to be correct in cart test * feat(medusa): Line item totals calculations (#2123) * feat(medusa): Update totals and tax calculation way to calculate the totals * feat(medusa): remove region feetching from decorate total * feat(medusa): cleanup * test(medusa): fix tax calculation tests * comment * test(integration): cleanup * test(integration): cleanup * fix(medusa): return service missing await * feat(medusa): cleanup * feat(medusa): cleanup * test(integration): fix data * feat(medusa): improve tax calculation readability * test(medusa): improve tax calculation structure case Co-authored-by: Sebastian Rindom * Feat(medusa): tax inclusive pricing in shipping method tax (#2125) * initial implementation and test * include tax inclusive calculations for getting shipping options * remove inaccurate comment * remove console log * refactor how prices and taxes are set for shipping methods * fix integration tests * remove verbose flag * fix integration tests * remove console log * format util * use util in price service and tax strategy * fix faulty integration test * undo tax calculation strategy changes in favor or Carlos' pr * undo changes to tax calculation strategy tests * round tax amount * feat(medusa): cleanup calculate tax amount utils and its usage (#2136) * feat(medusa): Refund line totals calculation (#2139) Rely on the update of the following pr https://github.com/medusajs/medusa/pull/2136 **WIP Missing integration tests** **What** Update the totals calculation on the refund line to include the notion of tax inclusive **Test** - Update and add new tests around the refund Fixes CORE-482 * feat(medusa): Tax inclusive discounts calculations (#2137) **What** - Calculate line adjustments correctly taking into account the tax inclusivity - fix totals getLineItemTotals by adjusting the sub total with the original tax amount instead of the tax amount when the unit price includes the taxes **Tests** - The tests create a cart with a percentage discount of 15%, the cart includes 2 items mixing the tax inclusive and validate the items on the result cart as well as the totals on each item. I ve based my calculation validation based on what we have done + some articles around discount apply on price without taxes to validate the output., FIXES CORE-477 * Chore: shipping methods tax inclusive total (#2130) * chore: calculate tax inclusive shipping methods * chore: additional tests and check undefined tax_rate (#2157) * chore: additional tests and check undefined tax_rate * fix: naming + correct price type check * fix: remove price_includes_tax from type * fix: remove price_includes_tax from type Co-authored-by: Philip Korsholm Co-authored-by: adrien2p Co-authored-by: Carlos R. L. Rodrigues Co-authored-by: Philip Korsholm <88927411+pKorsholm@users.noreply.github.com> Co-authored-by: Sebastian Rindom Co-authored-by: Carlos R. L. Rodrigues <37986729+carlos-r-l-rodrigues@users.noreply.github.com> * Remove unused QueryBuilderService (#2104) **Issue number:** #2068 **What:** - removed unused query-builder service files - medusa/src/services/query-builder.js - medusa/src/services/__mocks__/query-builder.js - deleted export from medusa/src/services/index.ts - (extra) deleted documentation files related to QueryBuilderService (QueryBuilderService.md) * docs for tax-inclusive pricing * changes based on feedback * changes based on feedback * feat(medusa-fulfillment-webshipper): Support personal customs no in orders (#2167) * feat(webshipper): support personal customs no in orders * docs: update readme with personal customs number info * fix(medusa-file-spaces): return `fileKey` for Spaces upload (#2171) **What** - return `fileKey` in the response after the file is uploaded to Spaces Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com> * fix(medusa): Export/import fixes including export fields that contains new line char (#2150) * feat(medusa-js,medusa-react,medusa): Add missing Currency endpoints (#2185) * fix(medusa): Resent notification replaces parent notification * chore: Bump medusa-file-minio * fix(medusa): allow address updates on carts w/o existing address (#2176) * chore: Bump minor version of plugins * chore: Centralise ESLint rules (#2162) * chore: centrilize eslint rules * feat: order editing data model (#2184) **What** - add order editing entities - add repositories - add a feature flag for the order editing feature - add the migrations file RESOLVES CORE-490 * fix link * fix(medusa): Check for Sales Channel on product import (#2202) * docs: change title in Create a Service documentation (#2201) Change title in Create a Service documentation * chore(release): Publish * added links to sidebar Co-authored-by: Sebastian Rindom Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com> Co-authored-by: Philip Korsholm Co-authored-by: adrien2p Co-authored-by: Carlos R. L. Rodrigues Co-authored-by: Philip Korsholm <88927411+pKorsholm@users.noreply.github.com> Co-authored-by: Carlos R. L. Rodrigues <37986729+carlos-r-l-rodrigues@users.noreply.github.com> Co-authored-by: Dorian <46839236+DorianMazur@users.noreply.github.com> Co-authored-by: Frane Polić <16856471+fPolic@users.noreply.github.com> Co-authored-by: Kasper Fabricius Kristensen <45367945+kasperkristensen@users.noreply.github.com> Co-authored-by: Bhargava Prabu Reddy Co-authored-by: olivermrbl Co-authored-by: sabakhilji <52318459+sabakhilji@users.noreply.github.com> --- .../backend/taxes/inclusive-pricing.md | 19 +++++++++++++------ .../backend/taxes/manual-calculation.md | 2 +- www/docs/sidebars.js | 16 ++++++++++++++-- 3 files changed, 28 insertions(+), 9 deletions(-) diff --git a/docs/content/advanced/backend/taxes/inclusive-pricing.md b/docs/content/advanced/backend/taxes/inclusive-pricing.md index 4dea71bb7..7d1c3f21d 100644 --- a/docs/content/advanced/backend/taxes/inclusive-pricing.md +++ b/docs/content/advanced/backend/taxes/inclusive-pricing.md @@ -4,12 +4,7 @@ In this document, you’ll learn how tax-inclusive pricing works in Medusa. :::note -Tax Inclusive Pricing is currently in beta mode and guarded by a feature flag. To use Tax-Inclusive Pricing either: - -1. Enable the `MEDUSA_FF_TAX_INCLUSIVE_PRICING` environment variable; -2. Or enable the `tax_inclusive_pricing` key in the Medusa server's settings. - -You can learn more about enabling it in the [feature flags](../feature-flags/toggle.md) documentation. +Tax Inclusive Pricing is currently in beta mode and guarded by a feature flag. To enable it, set the environment variable `MEDUSA_FF_TAX_INCLUSIVE_PRICING` to `true`, and [run migrations](../migrations/index.md#run-migration). ::: @@ -21,6 +16,7 @@ This can be useful when some countries have the same currency but have different Then, Medusa handles calculating the tax amount using the tax rate and the tax-inclusive price. This is managed in the backend and relayed to accounting and analytics tools. +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD ## How is Tax Inclusivity Defined @@ -30,6 +26,9 @@ Then, Medusa handles calculating the tax amount using the tax rate and the tax-i ======= ## How is Tax Inclusivity Defined >>>>>>> 59a785c80 (docs: integrate Vale for documentation linting (#2242)) +======= +## How is Tax Inclusivity Defined? +>>>>>>> 853259989 (docs for tax-inclusive pricing (#2159)) Tax inclusivity can be toggled for regions, currencies, price lists, and shipping options either during creation or while editing. This is represented by the boolean attribute `includes_tax` available in the entities `Region`, `Currency`, `PriceList`, and `ShippingOption`. By default, this attribute is set to `false`. @@ -37,6 +36,7 @@ If you want to enable or disable this attribute for any of these entities, you c The value set for these entities can affect whether line items and shipping methods are tax inclusive or not. +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD ### How is Tax Inclusivity Defined for Line Items @@ -46,6 +46,9 @@ The value set for these entities can affect whether line items and shipping meth ======= ### How is Tax Inclusivity Defined for Line Items >>>>>>> 59a785c80 (docs: integrate Vale for documentation linting (#2242)) +======= +### How is Tax Inclusivity Defined for Line Items? +>>>>>>> 853259989 (docs for tax-inclusive pricing (#2159)) :::info @@ -60,6 +63,7 @@ The `LineItem` entity also has the `includes_tax` attribute. The value of this f - Or a price list that includes the product variant associated with the line item has the `includes_tax` attribute set to `true`, and the tax-inclusive amount of one of the variant’s prices in the price list is less than the original price of the variant; - Or one of the variant’s prices in the price list uses a currency or region that has the `includes_tax` attribute set to `true`, and the tax-inclusive amount of the price is less than the original price of the variant. +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD ### How is Tax Inclusivity Defined for Shipping Methods @@ -69,6 +73,9 @@ The `LineItem` entity also has the `includes_tax` attribute. The value of this f ======= ### How is Tax Inclusivity Defined for Shipping Methods >>>>>>> 59a785c80 (docs: integrate Vale for documentation linting (#2242)) +======= +### How is Tax Inclusivity Defined for Shipping Methods? +>>>>>>> 853259989 (docs for tax-inclusive pricing (#2159)) :::info diff --git a/docs/content/advanced/backend/taxes/manual-calculation.md b/docs/content/advanced/backend/taxes/manual-calculation.md index 1c9c26f1b..027218df8 100644 --- a/docs/content/advanced/backend/taxes/manual-calculation.md +++ b/docs/content/advanced/backend/taxes/manual-calculation.md @@ -8,7 +8,7 @@ By default, taxes are automatically calculated by Medusa during checkout. This b If you disable this behavior, you must manually trigger taxes calculation. When taxes are calculated, this means that requests will be sent to the tax provider to retrieve the tax rates. -## How to Manually Calculate Taxes in Checkout +## How to Manually Calculate Taxes in Checkout? This section explores different ways you can calculate taxes based on your purpose. diff --git a/www/docs/sidebars.js b/www/docs/sidebars.js index d19a20cf3..6954014c9 100644 --- a/www/docs/sidebars.js +++ b/www/docs/sidebars.js @@ -296,8 +296,20 @@ module.exports = { label: "Create Batch Job Strategy", }, { - type: "doc", - id: "advanced/backend/batch-jobs/customize-import", + type: "category", + label: "Admin", + items: [ + { + type: "doc", + id: "advanced/admin/import-products", + label: "Import Products" + }, + { + type: "doc", + id: "advanced/backend/taxes/manual-calculation", + label: "Calculate Taxes Manually" + }, + ] }, { type: "doc",