Adrian Pilarczyk
45ed9fb444
fix checkout calculate taxes ( #919 )
...
* fix: 🐛 value of customerCode in calculateTaxes
* build: 👷 add changeset
* fix: 🐛 tests
2023-08-25 11:19:53 +02:00
Adrian Pilarczyk
416c92fb6c
feat: change the flow from OrderCreated to OrderConfirmed ( #826 )
...
* refactor: ♻️ extract order-metadata-manager
* feat: 🚧 add basic boilerplate
* feat: ✨ add readExternalIdFromOrderMetadata
* Revert "feat: ✨ add readExternalIdFromOrderMetadata"
This reverts commit a78d9d4597672f8605cf998a9f784aebaab27de1.
* feat: ✨ add order-cancelled avatax adapter
* test: ✅ add tests for AvataxOrderCancelledPayloadTransformer
* refactor: avataxId instead of externalId
* refactor: ♻️ split up webhook response
* build: ⬆️ upgrade avatax
* refactor: ♻️ extend logging in webhook response errors
* fix: 🐛 split privateMetadata and publicMetadata
* fix: 🐛 use "DEFAULT" value of companyCode for commit to work
* fix: ⚗️ fix voidTransaction type
* refactor: 🚚 order_created -> order_confirmed
* fix: 🐛 change voidReason
* build: 👷 add changeset
* refactor: 🔥 order_fulfilled webhook
* feat: Avatax metadata tax calculation date (#843 )
* feat: ✨ add metadata tax calculation date
* build: 👷 add changeset
* feat: Avatax metadata document code (#844 )
* feat: ✨ provide document code through metadata field
* build: 👷 add changeset
* refactor: ♻️ fallback to default company code for migration
* refactor: ♻️ patch order-created files and add deprecation note
* Revert "refactor: 🔥 order_fulfilled webhook"
This reverts commit fd098642735ae9d62e3a876088226bd0f108afd6.
* refactor: ♻️ patch order-fulfilled files and add deprecation note
* fix: 🐛 bring back deprecated webhooks to manifest
* feat: ⚗️ add AppWebhookMigrator (#850 )
* refactor: 🚚 order_created -> order_confirmed
* refactor: 🔥 order_fulfilled webhook
* feat: ⚗️ add AppWebhookMigrator
* feat: ✨ add mode to migrator
* feat: ✨ add draft of run-report and migrateWebhook method
* refactor: ♻️ address feedback
* feat: ✨ add tests and new structure
* refactor: 🔥 util
* feat: ✨ add enable/disable webhook rollback flow
* refactor: ♻️ modify the taxes-migration flow
* refactor: ♻️ generalize document code & date resolver
* chore: 🗃️ add run-migration
* chore: 💡 update comments about migration flow
* fix: 🐛 slice document code
* refactor: ♻️ try/catch at the top level
* chore: 💡 add comments
* Update shiny-meals-wait.md
* Update soft-steaks-know.md
* Update soft-steaks-know.md
* fix: ✅ fix test
* feat: ✨ change createTransaction to createOrAdjustTransaction
this feature grants idempotency of the transaction flow
* feat: ✨ add number field to OrderConfirmed payload
* chore: 💡 add deprecation comment to metadata method
* docs: 📝 add todo comment to refactor sumPayloadLines
* feat: ✨ add resolveStringOrThrow and use it for email
* fix: 🐛 add missing number to mock
2023-08-10 13:08:20 +02:00
Adrian Pilarczyk
d42c79f366
fix: tax code matcher QA ( #680 )
...
* feat: ✨ bring back validateAddress in TaxJar
* feat: 💄 decrease marginLeft of AppToggle label
* refactor: 🚚 cancelButton -> leftButton
* feat: 🧱 add data-testid to all buttons and forms
* refactor: ♻️ refactor app-section to accept Box props
* feat: 🧱 add rest of data-testid
* feat: ✨ verify connections before displaying matcher pages
* feat: ✨ always display matcher-section
* refactor: ♻️ improve fetching tax codes by adding retry and redirect on error
* refactor: 🚚 active-connection -> get-active-connection-service && improve logs
* chore: 🔊 remove objects from logs
* docs: 📝 add TESTING.md with edge-cases
2023-06-28 15:03:24 +02:00
Adrian Pilarczyk
09e07995b5
feat: tax code matcher ( #564 )
...
* feat: ✨ add tax-classes-fetcher
* refactor: ♻️ add "byId" suffix to crud-settings & remove upsert
* feat: ✨ add updateMany method to CrudSettingsManager
* feat: ✨ add avatax & taxjar tax-code-map-repository
* refactor: 🚚 move to tax-code directory
* feat: ✨ add getTaxCodes methods to provider clients
* refactor: ♻️ extract taxClass and taxCode schema
* refactor: 🚚 tax-code-map -> tax-code-match
* feat: ✨ add taxjar-tax-code.service
* feat: ✨ add avatax-tax-code.service
* feat: ✨ add taxClass to graphql fragment
* feat: ✨ use tax codes in calculate taxes
* fix: 🐛 undefined tax code bug & add tests
* build: 👷 add changeset
* Update avatax-tax-code-mapper.ts
* feat: ✨ add routers & get rid of adapters & mappers
* refactor: ♻️ logger location -> name
* refactor: ♻️ clean up & rephrase logs
* refactor: ♻️ remove __typename from query
* docs: 💡 make comments about tax codes more informative
* refactor: ♻️ use resolveOptionalOrThrow on tax code description
* refactor: ♻️ rename tax-codes -> tax-classes, move and rename tax-code-schema
* refactor: 🚚 ctx -> authData
* refactor: 🚚 createUrqlClientFromCtx -> createUrqlClientFromAuthdata
* refactor: ♻️ dont spread ctx
* docs: 💡 add comment about fallback tax code
* refactor: ♻️ remove ..ctx
* fix: 🐛 use createGraphQLClient
* feat: tax code matcher ui (#658 )
* feat: ✨ use tax codes in calculate taxes
* feat: ✨ add getTaxCodes methods to provider clients
* feat: ✨ add matcher tables
* feat: ✨ add log errors middleware
* fix: 🔊 fix misleading logs
* fix: 🐛 ctx appToken bug
* feat: ✨ add Select override with wrapping label
* feat: ✨ pre-select match
* docs: 💡 add comments about first connection
* docs: 💡 add comment about redirect
* refactor: 🔥 duplicate file
* feat: ✨ add AppCard to tables
* feat: ✨ add _error to breadcrumbs exceptions
* fix: 🐛 value not set on data
* feat: 🥅 add error for no channels configured
* fix: 🐛 replace update with upsert
* refactor: 🚚 channel-configuration-settings to repository
* fix: 🐛 updating a channel configuration
* fix: 🧪 fix wrong mock
* fix: 🐛 duplicating configs
* Update cool-turtles-reflect.md
2023-06-20 17:53:27 +02:00
Adrian Pilarczyk
f96563fc2b
feat: redesign taxes app with macaw-ui ( #433 )
...
* refactor: ♻️ replace material-ui with macaw-ui; remove all views
* add apps-ui
* feat: add configuration screen (#514 )
* feat: ✨ add basic layout
* refactor: 🔥 enabled field
* refactor: ♻️ move part of config to credentials
* refactor: ♻️ move address from channel to provider
* feat: ✨ add all states for providers
* refactor: ♻️ merge redesign with refactor
* refactor: ♻️ replace material-ui with macaw-ui; remove all views
* fix: 🐛 text-decoration on breadcrumb link
* feat: ✨ add stripe icon
* feat: ✨ add AppCard
* feat: ✨ add AppBreadcrumbs and new provider pages
* refactor: ♻️ add gridRatio to support two app grids
* refactor: 🔥 theme-synchronizer test
* refactor: ♻️ make breadcrumbs bulletproof
* fix: 🐛 failing build
* feat: ✨ add app-layout
* build: ⬆️ upgrade macaw-ui
* feat: redesign provider forms (#533 )
* build: ➕ add @saleor/react-hook-form-macaw
* feat: add binding for Toggle in react-hook-form-macaw
* feat: ✨ add AppToggle component
* feat: ✨ add create-avatax-configuration and edit-avatax-configuration
* feat: ✨ add taxjar-validation-service with address validation
* feat: ✨ add AvataxValidationService
* feat: ✨ add edit/create taxjar config
* feat: ✨ add delete configuration
* refactor: ♻️ change invalid address error message
* refactor: ♻️ throw in validation services instead of authenticated: true/false
* docs: 💡 add todo comments
* refactor: ♻️ better variable naming in parse error
* fix: 🐛 disable button when loading
* refactor: ♻️ make defaultValues required
* refactor: 🔥 remove custom fontWeights
* fix: 🐛 toggle form submission bug
* feat: ✨ extract provider-label and use in forms
* feat: ✨ use new Section component and change copy
* refactor: ♻️ use ProviderLabel in ProvidersTable
* build: 💚 fix lockfile
* fix: 🐛 address feedback
* feat: channel provider table (#538 )
* refactor: 🔥 providers-config-input-schema
* refactor: ♻️ move providers
* feat: ✨ add basic channel-list
* refactor: 🚚 move around
* feat: ✨ add ChannelConfigurationService
* feat: ✨ add select provider in channel table
* refactor: 🔥 logger traces
* refactor: 🔊 refine logs
* feat: ✅ add avatax-config-mock-generator and use in webhooks mock generators
* refactor: ♻️ split up avatax-validation.service and add tests for response resolver
* feat: ✅ add avatax-validation-error-resolver tests
* refactor: 🚚 move taxjar-validation.service to separate folder
* feat: ✅ extract taxjar-validation-error-resolver and add tests
* feat: ✅ add channel-config-mock-generator
* feat: ✅ add ChannelFetcherMockGenerator
* test: ✅ add tests for channel-configuration-merge
* test: ✅ add tests for crud-settings.service
* fix: 💬 channel copy
* refactor: 🔊 remove data from logs
* refactor: 🚚 move configuration & validation to configuration folder
* fix: 🐛 imports
* fix: 🐛 showing loading & add at the same time
* refactor: ♻️ public configurations & obfuscation rework
* refactor: 🚚 extract repositories from services
* refactor: 🚚 instance -> connection (#544 )
* refactor: ♻️ move creating configuration service to procedure
* fix: 🐛 some paths & names while renaming
* Update apps/taxes/src/pages/api/webhooks/order-calculate-taxes.ts
* Update apps/taxes/src/pages/api/webhooks/checkout-calculate-taxes.ts
* feat: shipping tax code (#555 )
* fix: 💄 minor visual issues
* feat: ✨ add shipping tax code
* fix: 🐛 fix toggle
* refactor: ♻️ use common table in providers-table
* docs: 💡 add comment to obfuscator
* feat: ✨ sort countries by label not code
* Taxes 💸 : Add runtime migrations to schema v2 (#545 )
* build: ➕ add dotenv
* feat: 🚧 add draft of migration scripts
* refactor: ♻️ settingsManager to accept appId
* feat: ✨ tax-providers and channels transforms
* feat: ✨ add migration classes
* feat: 🚧 add migration to connection getAll
* feat: 🚧 add dummy data script
* feat: ✨ add runtime channel migration
* feat: ✨ add migration and report scripts
* fix: 🐛 name of dummy class method
* feat: ✅ add transform tests
* build: 💚 update lockfile
* fix: creating & updating a provider (#563 )
* refactor: ✅ improve the test for update
* docs: 💡 comment crud-settings
* refactor: 🔥 unused file
* fix: 🐛 appId bug
* refactor: 🚚 rename dummy-utils
* fix: 💄 padding in table
* refactor: 💬 change avatax texts
* build: 👷 add changeset
2023-06-15 09:01:50 +02:00
Adrian Pilarczyk
ca4306162f
refactor: refine taxjar ( #494 )
...
* feat: ✅ add first tests & use address-factory
* feat: ✨ add distributeDiscount
* refactor: taxjar maps to adapters (#495 )
* refactor: ♻️ taxjar-calculate-taxes-map with taxjar-calculate-taxes-adapter
* refactor: ♻️ taxjar-order-created-map -> taxjar-order-created-adapter
* refactor: ♻️ address 1st batch of feedback
* refactor: ♻️ split up taxjar-calculate-taxes-adapter
* refactor: 🚚 extract shipping transformer
* docs: 💡 add comment about refunds in distribute-discount
* refactor: 🚚 split up taxjar-order-created-adapter classes
* refactor: ♻️ mocks with taxjar-mock-factory
* refactor: ♻️ mocks with avatax-mock-factory
* refactor: avatax maps to adapters (#506 )
* refactor: ♻️ move around & refactor avatax-order-created-map -> adapter
* refactor: 🚚 move avatax-order-created- to its own folder
* refactor: ♻️ avatax-calculate-taxes-map -> adapter
* refactor: ♻️ avatax-order-fulfilled-maps -> adapter
* feat: ✨ add logger to adapters
* refactor: ♻️ mocks -> avatax-mock-transaction-factory & fix tests
* feat: add tests for taxjar (#509 )
* fix: 🚚 tax-provider-utils.test name
* feat: ✅ add nexus tests & other taxjar tests
* feat: 🥅 add ExpectedError and use it in webhook-response
* refactor: ✅ unify taxjar-calculate-taxes tests with mock-generator
* feat: ✅ add TaxJarOrderCreatedMockGenerator
* feat: ✅ add avatax-calculate-taxes-mock-generator
* feat: ✅ add AvataxOrderCreatedMockGenerator
* refactor: 🔥 tax-mock-factory
* fix: 🐛 housekeeping
* fix: 🐛 feedback
* feat: ✅ add taxBase with discounts test
* fix: 🐛 address feedback
* refactor: 🔥 unused avatax-mock-factory functions
* feat: ✨ use discount utils in all providers
* feat: ✨ differentiate between pricesEnteredWithTax in taxjar
2023-05-29 10:35:34 +02:00
Adrian Pilarczyk
dd799e6993
refactor: use resolveOptionalOrThrow ( #480 )
...
* refactor: 🚚 move tax-line-resolver to taxjar-calculate-taxes-map
* feat: ✨ add resolveOptionalOrThrow util
* build: 👷 add changeset
* fix: 🐛 fix shipping line bug & add handleWebhookError
* build: 👷 update changeset
* refactor: ♻️ add optional error argument
2023-05-19 10:57:17 +02:00
Adrian Pilarczyk
72adeb3b13
replace failureRetry/failureNoRetry webhook response with failure ( #462 )
...
* refactor: ♻️ replace failureRetry/failureNoRetry webhook response with failure
* build: 👷 add changeset
* refactor: ♻️ address feedback
2023-05-15 11:52:14 +02:00
Adrian Pilarczyk
9eacc88b53
feat: align avatax with plugin ( #414 )
...
* refactor: 🚚 OrderLineFragmentFragment -> OrderLineFragment
* refactor: 🚚 getLine... to getTaxBaseLine...
* refactor: ♻️ temporarily remove usage of getTaxBaseLineTaxCode
* feat: ✨ add shipping as line to avatax-order-created
* feat: ✨ add description to order-created lines
* feat: ✨ add itemCode to avatax-order-created line
* feat: ✅ add tests for avatax maps
* feat: ✨ add basic discounts logic
* docs: 🔥 remove comment
* build: 👷 add changeset
* fix: 🐛 shipping amount
2023-04-26 13:40:51 +02:00
Adrian Pilarczyk
453baf78a1
feat: finalize order process ( #355 )
...
* feat: ✨ add dummy order-created
* refactor: 🔥 unused private-providers-configuration-service
* feat: ✨ add dummy order-fulfilled
* refactor: 🚚 move provider-config
* refactor: 🚚 crudSettingsConfigurator -> crudSettingsManager
* refactor: ♻️ [tax-provider].ts -> [tax-provider]-webhook.service.ts
* feat: ✨ add dummy createOrder
* refactor: ♻️ distinguish between salesOrder and salesInvoice in avatax
* refactor: 🚚 [provider]-calculate.ts to [provider]-transform.ts
* refactor: 🚚 ResponseTaxPayload to tax-provider-webhook.ts
* refactor: 🚚 ResponseTaxPayload -> CalculateTaxesResponse
* refactor: ♻️ webhooks with active-tax-provider.service.ts
* feat: ✨ add skeleton orderCreate functionality
* refactor: ♻️ [provider]-transform.ts -> [provider]-[webhook]-transform.ts
* feat: ✨ add order-fulfilled with avatax call
* refactor: ♻️ move getActiveTaxProvider to active-tax-provider
* refactor: 🏷️ export types for [provider]-client function args
* refactor: 🚚 UpdateAppMetadata -> UpdateMetadata
* feat: ✨ fulfill order with id from metadata
* build: ⬆️ upgrade avatax
* feat: ✨ commit transaction on fulfill in avatax
* fix: 🐛 return of webhooks to ensure valid retry behavior
* refactor: 🚚 [provider]-[webhook]-transform -> [provider]-[webhook]-map
* refactor: 🏷️ export types of avatax-calculate-taxes mapPayload
* refactor: ♻️ extract address-map to separate function
* refactor: ♻️ remove schema.ts
* refactor: ♻️ move addressSchema to channels-config.ts
* feat: ✨ add tests & placeholder tests for avatax & taxjar maps
* refactor: ♻️ throw error if no metadata
* refactor: ♻️ change EXTERNAL_ID_KEY to PROVIDER_ORDER_ID_KEY
add comments
* refactor: ♻️ comments -> it.todo in tests
* refactor: 💡 add comment about shipping_item_code
* refactor: ✅ add todo items for tests
* refactor: ♻️ remove export and add sumLines to taxJarOrderCreated
* refactor: ♻️ address-map with avatarAddressFactory
* docs: 💡 add comment about MOCKED_SALEOR_PAYLOAD
* refactor: ♻️ remove export of mapLines and add to avataxCalculateTaxes
* style: 🎨 add newline-after-var warn to eslint-config-saleor
* style: 🎨 autofix newline-after-var in taxes
* test: ✅ restructure tests according to new naming in address-map
* refactor: ♻️ add shippingItemCode to avataxCalculateTaxes wrapper object
* refactor: 🚚 payloadProps -> payloadArgs
* refactor: ♻️ add Maps suffix to map wrapper objects
* refactor: ♻️ remove data: null from ActiveTaxProviderResult
* refactor: ♻️ maintain the object hierarchy in tests
* refactor: ♻️ refactor webhook responses with WebhookResponseFactory
* build: ⬆️ vitest
* test: ✅ add tests for get-app-config-test
* test: ✅ add tests for getActiveTaxProvider
* refactor: ♻️ use address fragment for taxBase and order
* refactor: ♻️ rename WebhookResponseFactory -> WebhookResponse
* style: 👷 add multiline-comment-style
* fix: 🐛 dummy test in get-app-config.test.ts
* refactor: ♻️ rename AddressFragment -> Address
* refactor: ♻️ use debug instead of error in webhook-response noRetry
* refactor: ♻️ refactor as variables in mutation
* build: 👷 add changeset
* refactor: ♻️ split changesets in two
* build: ⬆️ vite
* build: ⬆️ vite && vitest in all apps
2023-04-17 13:58:21 +02:00
Adrian Pilarczyk
d55b2f9b2a
fix/333 taxes not calculated ( #345 )
...
* refactor: 🔊 improve logging in taxes
* refactor: 🔥 redundant channels call
* refactor: ♻️ get app config from payload
* build: add changeset
* refactor: 🔊 routers info -> debug
* refactor: 🔊 redact logs
2023-03-30 13:12:52 +02:00
Adrian Pilarczyk
b46a9f3e70
fix/split providers ( #271 )
...
* refactor: ♻️ add explicit return to services
* refactor: ♻️ use provider get method
* refactor: ♻️ move obfuscation logic to router & separate public service
* build: 💚 add changeset
2023-03-13 10:57:18 +01:00
Adrian Pilarczyk
56a4dbb3a3
refactor: 🚚 split avatax & taxjar into separate services ( #264 )
...
* refactor: ♻️ split into services
* docs: 💡 add comment about joining providers
* fix: 🐛 change name from avalara to avatax
* build: 👷 add changeset
* fix: 🐛 move return into catch
2023-03-10 13:04:25 +01:00
Adrian Pilarczyk
1c04327bd6
fix: 🐛 address pr feedback
2023-03-07 12:07:11 +01:00
Adrian Pilarczyk
9138d7debd
refactor: ♻️ use app-sdk syncwebhook
2023-03-07 11:31:44 +01:00
Adrian Pilarczyk
9f0dd813a4
feat: ✨ add taxes app ( #223 )
...
* feat: ✨ add taxes app
* chore: 🔥 remove files, use monorepo ones instead
* chore: ✨ add all env vars to .env.example
* refactor: 🔧 use saleor eslint config
* build: ⬆️ app-sdk, remove vercel from apl
* refactor: ♻️ remove providers/index, infer taxProviders from providerConfig
* refactor: ♻️ use tuples to use objects
* refactor: 🚚 move types to taxes module
* refactor: ♻️ tax-prepare-data -> tax-line-resolver
* refactor: get isInFrame from apps-shared
* build: ⬆️ next
* feat: ✨ add appRegister allowlist
* Update apps/taxes/src/pages/api/manifest.ts
Co-authored-by: Krzysztof Wolski <krzysztof.k.wolski@gmail.com>
* Update apps/taxes/src/pages/api/manifest.ts
Co-authored-by: Krzysztof Wolski <krzysztof.k.wolski@gmail.com>
* chore: 💡 improve comments
* refactor: 🔥 app-dashboard-link
* docs: 📝 add taxes to readme
* refactor: 🔥 app-main-bar
* refactor: ♻️ align saleor-app.ts with the rest
* refactor: ♻️ use defaultValues
* chore: ♻️ misc
---------
Co-authored-by: Krzysztof Wolski <krzysztof.k.wolski@gmail.com>
2023-03-02 12:01:17 +01:00