Can't see prices from Merchant Relation


#1

My goal is to show different prices for different customers. I want to have different prices that are calculated by the default price and then i add for example 2 % to every product. Another customer get prices that are 3 % higher and so on.
I have created a merchant relation between a merchant and some business units. I have created a customer and added this one to one of those business units (not the business unit owner of the merchant relation but i tried that before as well). Then i’ve created a new product with prices for the merchant price dimension with the name of the merchant relation und for default as this was mandatory. And i added that product to a product list for my merchant relation.

Now i can see the product when i log in as that customer but only with default price. Do i get anything wrong?


#2

Hi!

If you are using b2b-demo-shop, we really have an issue with setting MR prices in Zed UI there that soon should be fixed. As a workaround you can import MR prices (need to import for both abstract and concrete).

If you are using suite, all should work, please check the following points. MR price is offered:

  1. Only if MR price lower than default price, it will be offered to the customer, we always offer the lowest price, even if it is the default (regular) one.
  2. Customer should be assigned to a BU that is added to “Assigned BU” field of a MR, not the “Owner BU”

If these rules are followed, you will see s difference like this:
customer with MR prices


customer with default prices

on b2b-demoshop if you are using import for MR prices, you will also see:
for customer with MR prices


for customer with regular prices

Probably would be useful this SQL query - you can see whether your customer has specific prices for a product or not. Remove the “where” part to see all MR prices

select cus.id_customer as customer_id, cus.email, cus.first_name, cus.last_name, company.id_company as company_id,
company.key as company_key, company.name as company_name, unit.id_company_business_unit, unit.key
as BU_key, unit.name as BU_name, smr.merchant_relationship_key, a.sku, p.sku, ps.gross_price, ps.net_price, ps.fk_currency, ps.fk_store

from spy_customer cus
join spy_company_user u ON cus.id_customer = u.fk_customer
join spy_company company ON u.fk_company = company.id_company
join spy_company_business_unit unit
ON u.fk_company_business_unit = unit.id_company_business_unit
join spy_merchant_relationship_to_company_business_unit mrbu on mrbu.fk_company_business_unit = unit.id_company_business_unit
join spy_merchant_relationship smr ON mrbu.fk_merchant_relationship = smr.id_merchant_relationship
join spy_price_product_merchant_relationship pp on smr.id_merchant_relationship = pp.fk_merchant_relationship
join spy_price_product_store ps on pp.fk_price_product_store = ps.id_price_product_store
left join spy_product p on pp.fk_product = p.id_product
left join spy_product_abstract a ON pp.fk_product_abstract = a.id_product_abstract

where cus.email = 'test@test.com'

Please write if this doesn’t help or if you have further questions


#3

Hi Anastasia,

thanks for the answer. We are using the suite and i entered all information via zed. I used your statement and get some hits and see my prices. I added a “a.id_product_abstract” at the beginning of the statement to be sure it is the right abstract product. It is.

I added “p.id_product” as well to see if it is the right concrete product and just get null values. company_key, bu_key, and both sku are always null as well.

I can see the prices for the concrete product and merchant relation in zed.

I chose a high price for default to be sure all merchant prices are lower. but all i see is that high price. customer is assigned to a BU that is added to “Assigned BU” field of a MR, not the “Owner BU” as mentioned before.

It doesn’t look like a zed problem to me. Everything looks like i expect it there. Just yves ignores the merchant relation prices and just takes the default.


#4

Hi!

Ok, I suppose there could be an issue. Please provide some details and I will try to reproduce your case:

  1. Are you using one of existing customer / companies or you create your own ones?
  2. Do you set MR prices for one of the existing products or you create a new product?
    2.1. if existing, could you please write sku of the products, so that I could follow your steps?
    2.2. if new one, could you please give more details: are there several variants or one for the product? do you set regular prices for variants separately (on Price and Stock tab) or just for abstract (by product creation on Price and Tax tab) and concrete prices are inherited?

This info would be helpful to understand on what step it can be breaking.

Could you please also check whether this case will work for you or not?

  1. Go to Products -> Products -> Open product with sku 009
  2. Go to Price and Tax, select MR “Oryx merchant - 2 - Hotel Tommy London”
  3. Set price 2 EUR for net and gross “Default” dimension.
  4. Go to Yves, login as spencor.hopkin@spryker.com pwd - change123
  5. Search and open product with sku 009

Will you see MR price for it or regular price?

The fact that p.id_product shows no prices is ok, as far as price set for abstract should be inherited in Yves and Zed UI by concrete, so if it is empty in DB, this is ok - this works for all prices, if a.id_products shows you MR price this should be ok.


#5

Hi,

  1. I created a new customer and a new company.
  2. I created a new product.
    2.2 There are 2 variants at the moment, first i tried with just one of course. The second one is not active and never was, so should have no impact. Right now i have different prices for concrete (active) and abstract product.

I can’t try the mentioned case at the moment, because i deleted the merchant relations and companies i don’t need in the test version i am using right now. We have to set up another one to check. Will tell you if that works.


#6

Hi!

Ok, lets have a look together.

First question - do you test on linux or on windows? :slight_smile:
Second - did you install the environment fully with all modules like in the guide in spryker academy or only some of the modules (custom set of modules)?

Then, please check whether your steps are as follows:

  1. Go to Company Account -> Companies -> Create a Company e.g. “My Test Company”
  2. Activate and Enable it
  3. Go to Company Account -> Company Users -> Add user -> Create a new user for this company, assign to BU “Headquarters” (created by default with company creation)
  4. In Mailcatcher check for password token and set a password.
  5. Go to Merchants -> Merchants, create a new merchant e.g. “Test Merchant”
  6. Go to Merchant Relations create a new Relation for Merchant: Test Merchant. Company: My Test Company, Owner BU - Headquarters, Assigned BU - Headquarters
  7. Go to Products -> Products
  8. Create a new product with such data:
    8.1 On general tab provide an sku, EN and DE names
    8.2 On Price and Tax, set default prices 100 EUR for Default Gross and Net, 100 CHF for Gross and Net. Set a tax
    8.3 Go to Variants tab, select two values in “storage capacity” attribute
    8.4 Click on Save button to save the product
    8.5 Go again to Price and Tax, select in Merchant Price Dimension your MR “Test Merchant -> Headquarters”
    8.6 Add lower prices, e.g. 10 EUR for Default Gross and Net, 10 CHF for Default Gross and Net
    8.7 Save.
    8.8 Go to Variants -> Open one of the variants
    8.9 Set the variant as “searchable” on General tab and set a stock on Price and Stock. Save
    8.10 Activate the variants
    8.11 Go to Categories -> Assign created product to some category.
  9. In Yves login as new created company user.
  10. Find the created product in the catalog -> check prices

Here you see that the product has regular prices set on step 8.1 instead of prices of step 8.6, right?

Please correct me if your steps are different or please provide your steps with which your case is reproduced regularly. (especially from step 7) That is important to understand whether different order of saving product data could affect proper sync of this data to Yves.

Also could you please check that you do not have stucked messages in a queue in RabbitMq and that Jenkins jobs are working properly.
If there are some issues in rabbit or jenkins, that could prevent proper sync, please run in your console inside your VM “console queue:worker:start -vvv” and check prices in Yves again.

Also please clear cache to make sure that it is not a cache issue.

Regards,
Anastasia


#7

Hi,

it is running on linux. We installed fully, only difference should be an update of rabbitMQ. We used the installation instructions “Without DevVM”. Just Graphviz is not installed. We use Nginx with PHP7.2 und Postgresql 9.5.14.

I did some different things:

  1. I registered the user in yves. And then added it to a company in zed.
  2. I had some hierarchy with business units and the customer was assigned to a sub business unit. I changed it to “Headquaters” (which i have renamed to Partner), no change, still wrong price.
  3. There is no storage capacity attribute. I used brand and aspect_ratio.
  4. I had different prices and changed it to 10 and 100. I had entered values for default for merchant price dimension, if i remove them and save the old values are displayed again automatically, so i can’t delete them.

When i change the default price it takes a few seconds and i see the result in yves, so that can’t be the problem.


#8

Ok, thank you! I managed to reproduce the same behaviour on development environment with your steps.
I will try to check on what step it fails, I will report it as an issue. Thank you for your assistance!

But please make sure that you have the latest master branch with all recent updates and fixes.
Also please pay attention to travis and rabbitmq that all queues are empty and jobs are finished. Please feel free to write if you have any updates or further questions.

Best regards,
Anastasia


#9

Hi,

can you tell me when the problem will be fixed? We need the possibility to display individual prices to different customers. Or is there a workaround or another way to achieve it (without using ways like setting up additional stores or setting up another instance of the whole shop)?

Btw, you mentioned travis, did you mean jenkins with that?


#10

Hi,

I am very sorry for the delay, as I see the issue is already in progress of fixing, due to holidays that took too long.

Travis -> Jenkins :slight_smile: Yes, sorry, my mistake.

As a workaround you can use data import. Import of MR prices can be done though price_product_merchant_relationship.csv, prices in the file are set in cent form, 200 EUR -> 20000 in the file.
Import can be done with “console data:import product-price-merchant-relationship”

You will need the merchant relation key there that can be obtained in spy_merchant_relationship table.

I would appreciate if you could try import and share your results. Because in case this workaround is not working for you, that can be some other issue than the one known.

Regards,
Anastasia