Customize shipping price calculation in Magento - php

I've got the following scenario:
Regular category
Sales category
I will sort countries by zone to make the explanation easy:
Lebanon, zone A
(some countries), zone B
(all remaining countries), zone C
Shipping is based on the total purchased amount, and not on weight, so the conditions to calculate the shipping cost are the following:
If shipping in Lebanon, the category is not "sales" and the price is below 50$, then 3$, otherwise free shipping.
If shipping in zone B, the category is not "sales" and the price is below 100$, then 15$, otherwise free shipping.
If shipping in zone C, the category is not "sales" and the price is between 0$ and 149$, then 50$, otherwise if the price is between 150$ and 199$, then 30$, else free shipping.
What is the best practice to implement this kind of shipping prices in Magento?

Here is the step-by-step guide:-
– Go to System –> Configuration –> SALES –> Shipping Methods –> Table Rates
– Select ‘Enabled‘ to ‘Yes’
– Click the ‘Save Config‘ present in top right corner of the page
– From the ‘Current Configuration Scope‘ (which is at the top left corner), choose ‘Main Website‘
Now, you will see as in the following figure:-
Tablerates Configuration
As you can see from the figure, there are three main parts:- Condition, Export and Import.
– As we are making different shipping rate for different country, so select Condition = ‘Price vs. Destination’
– Click ‘Export CSV‘ and a csv file is downloaded with the required headers like country, region, shipping price, etc.
– Fill the csv with the shipping rate and country name. For example, see the following figure:-
Tablerates CSV
– The asterik (*) in region and postal code column means that the shipping price is applicable for all regions and postal code respectively.
– The zero (0) in order subtotal means that the shipping price is applicable for all orders whose subtotal is greater than zero.
– In the last row (7th row), you can see ‘AK’ as region. Hence, comparing the 2nd row and 7th row where the country is USA, we see that the shipping price for all other US region is 10. But, the shipping price for AK (Alaska) is 15.
– Now, Import the csv you just filled.
– Click ‘Save Config‘ button present in top right corner of the page.
– You are done. The new country specific shipping rate has been saved. You can test it by checking out products from frontend.
Hope this helps. Thanks.

Related

Shopware 6: Promotion validation fails if another promotion is present at the same time

The goal is to have two promotions:
Promotion without a code => gives a 3% discount if the selected Payment Method is "Invoice/Vorkasse".
Second promotion is with a code, absolute 10€ discount, with two rules:
a) total value of the cart is bigger than 49,99 €
b) at least one product in the cart is not discounted product (with the list price).
Additional explanation:
That means that the promotion should be valid if at least one product in the cart is not discounted product, and total value of the cart is bigger than 49,99€. In that case, a fixed absolute 10€ discount is added. Promotion should be invalid if all products in the cart are discounted products (with the list price) or if total value of the cart is less than 49,99 €.
What have I done so far:
I have created a promotion that works correctly (second promotion with a code) by itself, but if I log in as a customer with selected 'Invoice' as a payment method, the first promotion is applied directly, and from that point, validation seems to fail, and second promotion becomes valid if code is entered.
How to replicate the behavior:
Clean Shopware environment and add list price to one product
Create two rules in Rule Builder:
a) Invoice 3% => Applied payment method > is one of > Invoice
b) Min. 49.99 & without disc.:
- Total > is greater than > 49.99
- Item with price/list price percentage ratio > At least one > is empty
Create two new Promotions
a) Invoice 3%:
- General => active, no code
- Conditions => Sales Channels: Storefront, Shopping cart rules: Invoice 3%
- Discounts => Apply to cart, percentage, 3
b) 10 Discount
- General => Max. uses per customer: 1, active, fixed promotion code: test10
- Conditions => Sales Channels: Storefront, Shopping cart rules: Min. 49.99 & without disc
- Discounts => Apply to cart, Absolute, 10
Add discounted product to the cart (with list price)
Add code
Question:
I was unable to find where the validation could possibly fail if another promotion is present.
Can anyone help me and point me to where the bug could be?
I was able to reproduce the issue. I was able to narrow the cause down to the list price condition. The percentual promotion adds a discount line item with the negative amount. Currently the condition for the list price checks all line items, including discounts, for their list price. A discount, not being a product, has no list price. Hence why the condition is met and the second promotion can be applied. This will be fixed with the upcoming major release 6.5 where conditions obviously meant to only regard products, will no longer match discount line items.
In the meantime you can use a filter condition to check that there is at least one actual product in the cart, that has no list price. When you choose the condition for total quantity of products there's a filter icon on the right. Click it and a modal will open. Within the modal then add the condition for the list price.

Price based on location and size in Opencart

I am developing a website in Opencart version 2.3. I have to change the price of the product based on user location and weight of the selected product. I am getting the User City from a popup in my home page. That stores the City name in session. I am storing the cities in a separate table. Every Product will have a weights of 250 grams, 500 grams and 1kg.
My requirement is to get the price of the item based on both location and weight. Each city will have different price for the same product.
Can someone suggest me how to achieve this. Explanation in a theoretical way is fine. I can code for that. I just need help with the approach.
Go to Admin --> Settings -->Localisation -->Geo Zones
Create your geo zones and then head over to Extensions --> modules--> shipping
Select weight based shipping
Click on your zone, add weights and prices in this format:
250:200.00, 500:400.00, 1000:800.00 (weight:price)
Enable the zones and save.

Per product tax configuration : is inclusive / is exclusive tax

I want to add is inclusive or is exclusive configuration to per product basis.
Currently, Magento provides global configuration about catalog product price are inclusive: Yes/No.
Please check the screenshot.
http://prntscr.com/fxkrje
I want to do the that highlighted setting per product basis.
for ex:
Product A: Catalog price $1000 [INCL]
Product B: Catalog price $225 [EXCL]
Then My cart shows something like
http://prntscr.com/fxkuz4
It should be highlighted price for the second product due to its settings.
Any help would be greatly appreciated.
To achieve This Kind of functionality you have to use following Extension.
http://www.anowave.com/marketplace/magento-extensions/magento-tax-vat-switch-menu/
i already did This kind of functionality in my site

Magento - Display higher price for product

It is evident that Magento always displays the lowest price of the original price, special price, etc.
I have a condition where I have to display the customer specific price that comes from an ERP system. Let's call it special price. If that special price is higher than the product's price, Magento obviously chooses the least one.
The question, is there any way to override this in a smooth way? Because regardless of the products' price, the requirement is to display the customer specific price from the ERP system on Magento.If there is no customer specific price available, it is OK to fallback to the products' price.
Override
Mage_Catalog_Model_Product_Type_Price
Check Customer specific price against Products price and Do the logic

Magento Tax - Custom calculation

I have products added to my Magento store with 20% tax included.
I have a store view that is shown to USA customers.
I require the price to remain the same, but hide the Tax in the cart/orders. Also I need to double the tax and show it, if they are in the USA but their shipping address is not.
Examples:
Normal price £10 (inc £2 tax)
USA price: $10 (no reference of tax/$0 tax)
USA price but shipping to another country: $12 (inc $2 tax)
I have the prices working as required, I just need some help as to where I can hide the tax and also double it depending on shipping country.
In Magento admin, in the Promotion menu, there are the so called "Shopping Cart Tax Rules" and "Catalog Price Rules". Here you can set taxes to Countries, Customers, Categories, etc.
Also in System->Configuration->Taxes (if I remember well) there are some settings regarding the display of taxes.
Have you tried any of these?

Categories