Replies: 6 comments 4 replies
-
|
Beta Was this translation helpful? Give feedback.
-
In my opionion one missing part is some kind of indicator on PromotionListView and PromotionVirew marking promotions assigned to the channel with The idea behind this change is to minimalize support issues when someone creates a promotion for the channel with a |
Beta Was this translation helpful? Give feedback.
-
It depends. For
Yeap, it is already covered by a point in to-do list: When switching from CUSTOM to PROMOTION, the prices for products in the given channel should be marked as dirty - to recalculate the prices based on existing promotions.
No, it will not be possible. The mutation input will be blocked when using
When setting the
CUSTOM is related only to
it won't interact. It is the way of calculating the
When re-calculating the expired prices, the variant's
Products for channel with
The value from the latest request will be saved as discountedPrice.
The new field will work in the same way as it is working for
We don't have any fallbacks for failing mutations. If mutation fails for some reason, this needs to be handled by an external service.
By default, it works as previously. To change the behavior, you need to change the strategy to
I don't know if I understand the correlation here. We provide an API that would allow you to control the |
Beta Was this translation helpful? Give feedback.
-
@korycins would vouchers work on channels with CUSTOM mode? |
Beta Was this translation helpful? Give feedback.
-
I see a few problematic scenarios:
|
Beta Was this translation helpful? Give feedback.
-
Perhaps |
Beta Was this translation helpful? Give feedback.
-
Problem
Saleor users could have their external service responsible for managing the current prices of the product. External systems can be responsible for setting up the standard prices and discounted ones. Currently, to sync prices between Saleor and external price provider, there is a need to convert discounted prices into Sales or Promotions. This causes an additional logic required from App responsible for syncing, as the App needs to convert discountedPrice into Sale/Promotion. Additionally from Saleor side, this approach could cause a high load on the async workers responsible for re-calculating the prices on Saleor side based on the active promotions. Providing pricing API should solve the problem by reducing the number of steps that need to be done to provide a discounted price.
1. General Assumptions
The below chart quickly shows an example of steps required to simply modify the product’s discountedPrice in case of having an external price service:
As a solution, we aim to reduce the number of required steps by providing an API that would handle scenarios such as the one above. The chart below shows the same scenario as above but using the proposed API:
Based on new channel settings we will determine if the promotions should be included in the channel. If not, the re-calculation will be skipped for such channels. Extended API for updating the product-variant-channel-listing will allow providing the discounted price (only when the channel setting flag is set to CUSTOM).
2. API changes
Types
Mutations
3. Database changes
4. UML diagrams
No response
5. To Do list
price
from input)price
thandiscountedPrice
should raise an exceptiondiscountedPrice
cannot be provided when the channel setting says that promotion engine is used for a channel. The proper error with proper code (probably the new one) should be raised.discountingPriceStrategy
set toCUSTOM
6. To Test
discountingPriceStrategy
set to PROMOTION, the existing promotions are used to calculate the discountedPricediscountingPriceStrategy
set to CUSTOM, the existing promotions don’t have an impact ondiscountedPrice
discountedPrice
>price
should not be possiblediscountedPrice
can be only provided whendiscountingPriceStrategy
is set to CUSTOMdiscountedPrice
can be provided as an input for single&bulk mutationsLink to internal doc: https://www.notion.so/saleor/Price-lists-price-versioning-46358d97f1ff4ce98aca494364e8495f
Beta Was this translation helpful? Give feedback.
All reactions