• Resolved ajfosterv

    (@ajfosterv)


    Hello,

    I’ve read the guides and browsed the forums but not finding a solution. I use several coupons that provide a percentage discount for all of my Print On Demand (POD) products via Printify. However, I have one coupon, where instead of a discount, I offer free shipping.

    I’m at my wit’s end. I have tried every shipping configuration and options (Between the coupon page and the shipping page), but each time someone orders using the coupon, I end up having to refund the shipping cost… That costs me time to do the refund, plus an email apologizing and of course, the transaction fee for the refund.

    Now understand that in the Shipping settings, there is a checkbox to disable WooCommerce Shipping calculations and let Printify set the shipping costs. I’m wondering if that’s where the issue lies, in that Printiofy ignores the Free Shipping coupon. Is it a bug, or just an integration issue that can’t be resolved, so I should forget about Free Shipping?

    If so, might I suggest WooCommerce add a Note to the Printify Setting page to notify that Free Shipping option is not available for Printify?

    TIA
    AJ

Viewing 8 replies - 1 through 8 (of 8 total)
  • Mirko P.

    (@rainfallnixfig)

    Hi @ajfosterv,

    Just to clarify, are you using the default Coupon feature found under Marketing > Coupons? Also, can you check if you set up a free shipping method in your shipping zone to require “a valid free shipping coupon”?


    Link to image: https://i.imgur.com/aBy7OPD.png

    It would be great if you could share a copy of your site’s System Status. You can find it via WooCommerce > Status. Select “Get system report” and then “Copy for support”. Once you’ve done that, paste it here in your response.

    Thanks.

    Thread Starter ajfosterv

    (@ajfosterv)

    Yes and Yes to the 1st 2. I even tried different combinations of Flat Rate, /% discount, minimum purchase order. I only used one shipping Zone, for the entire United States.

    When I first started a few months ago, the Coupons were under WooCommerce, then Coupon moved to Marketing. It was only a few weeks ago that I added a coupon for free shipping. Until then, the only coupons I used were all a percentage discount, ie 10%, 25% etc.

    thanks for looking into this

    As requested, the System Status Report:

    
    ### WordPress Environment ###
    
    WordPress address (URL): https://usadevolution.com
    Site address (URL): https://usadevolution.com
    WC Version: 5.6.0
    REST API Version: ? 5.6.0
    WC Blocks Version: ? 5.5.1
    Action Scheduler Version: ? 3.2.1
    WC Admin Version: ? 2.5.1
    Log Directory Writable: ?
    WP Version: 5.8
    WP Multisite: –
    WP Memory Limit: 1 GB
    WP Debug Mode: –
    WP Cron: ?
    Language: en_US
    External object cache: –
    
    ### Server Environment ###
    
    Server Info: Apache
    PHP Version: 7.4.22
    PHP Post Max Size: 128 MB
    PHP Time Limit: 30
    PHP Max Input Vars: 1000
    cURL Version: 7.64.0
    OpenSSL/1.1.1d
    
    SUHOSIN Installed: –
    MySQL Version: 5.7.32-log
    Max Upload Size: 128 MB
    Default Timezone is UTC: ?
    fsockopen/cURL: ?
    SoapClient: ?
    DOMDocument: ?
    GZip: ?
    Multibyte String: ?
    Remote Post: ?
    Remote Get: ?
    
    ### Database ###
    
    WC Database Version: 5.6.0
    WC Database Prefix: f1c79uydxz
    Total Database Size: 110.56MB
    Database Data Size: 98.22MB
    Database Index Size: 12.34MB
    f1c79uydxzwoocommerce_sessions: Data: 0.19MB + Index: 0.02MB + Engine InnoDB
    f1c79uydxzwoocommerce_api_keys: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
    f1c79uydxzwoocommerce_attribute_taxonomies: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
    f1c79uydxzwoocommerce_downloadable_product_permissions: Data: 0.02MB + Index: 0.06MB + Engine InnoDB
    f1c79uydxzwoocommerce_order_items: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
    f1c79uydxzwoocommerce_order_itemmeta: Data: 0.06MB + Index: 0.03MB + Engine InnoDB
    f1c79uydxzwoocommerce_tax_rates: Data: 0.02MB + Index: 0.06MB + Engine InnoDB
    f1c79uydxzwoocommerce_tax_rate_locations: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
    f1c79uydxzwoocommerce_shipping_zones: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
    f1c79uydxzwoocommerce_shipping_zone_locations: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
    f1c79uydxzwoocommerce_shipping_zone_methods: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
    f1c79uydxzwoocommerce_payment_tokens: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
    f1c79uydxzwoocommerce_payment_tokenmeta: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
    f1c79uydxzwoocommerce_log: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
    f1c79uydxzactionscheduler_actions: Data: 0.08MB + Index: 0.13MB + Engine InnoDB
    f1c79uydxzactionscheduler_claims: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
    f1c79uydxzactionscheduler_groups: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
    f1c79uydxzactionscheduler_logs: Data: 0.17MB + Index: 0.16MB + Engine InnoDB
    f1c79uydxzce4wp_abandoned_checkout: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
    f1c79uydxzce4wp_contacts: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
    f1c79uydxzcommentmeta: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
    f1c79uydxzcomments: Data: 0.02MB + Index: 0.09MB + Engine InnoDB
    f1c79uydxzgla_budget_recommendations: Data: 0.22MB + Index: 0.14MB + Engine InnoDB
    f1c79uydxzgla_merchant_issues: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
    f1c79uydxzgla_shipping_rates: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
    f1c79uydxzgla_shipping_times: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
    f1c79uydxzlinks: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
    f1c79uydxzmailchimp_carts: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
    f1c79uydxzmailchimp_jobs: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
    f1c79uydxzmailpoet_custom_fields: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
    f1c79uydxzmailpoet_dynamic_segment_filters: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
    f1c79uydxzmailpoet_feature_flags: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
    f1c79uydxzmailpoet_forms: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
    f1c79uydxzmailpoet_log: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
    f1c79uydxzmailpoet_mapping_to_external_entities: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
    f1c79uydxzmailpoet_newsletters: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
    f1c79uydxzmailpoet_newsletter_links: Data: 0.02MB + Index: 0.05MB + Engine InnoDB
    f1c79uydxzmailpoet_newsletter_option: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
    f1c79uydxzmailpoet_newsletter_option_fields: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
    f1c79uydxzmailpoet_newsletter_posts: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
    f1c79uydxzmailpoet_newsletter_segment: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
    f1c79uydxzmailpoet_newsletter_templates: Data: 2.52MB + Index: 0.00MB + Engine InnoDB
    f1c79uydxzmailpoet_scheduled_tasks: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
    f1c79uydxzmailpoet_scheduled_task_subscribers: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
    f1c79uydxzmailpoet_segments: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
    f1c79uydxzmailpoet_sending_queues: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
    f1c79uydxzmailpoet_settings: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
    f1c79uydxzmailpoet_statistics_clicks: Data: 0.02MB + Index: 0.05MB + Engine InnoDB
    f1c79uydxzmailpoet_statistics_forms: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
    f1c79uydxzmailpoet_statistics_newsletters: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
    f1c79uydxzmailpoet_statistics_opens: Data: 0.02MB + Index: 0.08MB + Engine InnoDB
    f1c79uydxzmailpoet_statistics_unsubscribes: Data: 0.02MB + Index: 0.05MB + Engine InnoDB
    f1c79uydxzmailpoet_statistics_woocommerce_purchases: Data: 0.02MB + Index: 0.06MB + Engine InnoDB
    f1c79uydxzmailpoet_stats_notifications: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
    f1c79uydxzmailpoet_subscribers: Data: 0.02MB + Index: 0.13MB + Engine InnoDB
    f1c79uydxzmailpoet_subscriber_custom_field: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
    f1c79uydxzmailpoet_subscriber_ips: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
    f1c79uydxzmailpoet_subscriber_segment: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
    f1c79uydxzmailpoet_user_flags: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
    f1c79uydxzoptions: Data: 4.11MB + Index: 0.16MB + Engine InnoDB
    f1c79uydxzpostmeta: Data: 8.52MB + Index: 8.03MB + Engine InnoDB
    f1c79uydxzposts: Data: 80.52MB + Index: 1.08MB + Engine InnoDB
    f1c79uydxztermmeta: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
    f1c79uydxzterms: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
    f1c79uydxzterm_relationships: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
    f1c79uydxzterm_taxonomy: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
    f1c79uydxzusermeta: Data: 0.06MB + Index: 0.03MB + Engine InnoDB
    f1c79uydxzusers: Data: 0.02MB + Index: 0.05MB + Engine InnoDB
    f1c79uydxzwc_admin_notes: Data: 0.05MB + Index: 0.00MB + Engine InnoDB
    f1c79uydxzwc_admin_note_actions: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
    f1c79uydxzwc_category_lookup: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
    f1c79uydxzwc_customer_lookup: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
    f1c79uydxzwc_download_log: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
    f1c79uydxzwc_order_coupon_lookup: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
    f1c79uydxzwc_order_product_lookup: Data: 0.02MB + Index: 0.06MB + Engine InnoDB
    f1c79uydxzwc_order_stats: Data: 0.02MB + Index: 0.05MB + Engine InnoDB
    f1c79uydxzwc_order_tax_lookup: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
    f1c79uydxzwc_product_meta_lookup: Data: 0.34MB + Index: 0.59MB + Engine InnoDB
    f1c79uydxzwc_reserved_stock: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
    f1c79uydxzwc_tax_rate_classes: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
    f1c79uydxzwc_webhooks: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
    
    ### Post Type Counts ###
    
    attachment: 2468
    customize_changeset: 2
    feedback: 3
    jetpack_migration: 2
    jp_img_sitemap: 6
    jp_img_sitemap_index: 3
    jp_sitemap: 3
    jp_sitemap_master: 3
    jp_vid_sitemap: 3
    mailpoet_page: 1
    nav_menu_item: 6
    page: 27
    post: 7
    product: 102
    product_variation: 3223
    revision: 318
    shop_coupon: 6
    shop_order: 21
    shop_order_refund: 6
    
    ### Security ###
    
    Secure connection (HTTPS): ?
    Hide errors from visitors: ?
    
    ### Active Plugins (15) ###
    
    Classic Editor: by WordPress Contributors – 1.6.2
    Easy Table of Contents: by Steven A. Zahm – 2.0.17
    Google Listings and Ads: by WooCommerce – 1.4.1
    Gutenberg: by Gutenberg Team – 11.3.0
    Jetpack: by Automattic – 10.0
    Mailchimp for WooCommerce: by Mailchimp – 2.5.2
    No Page Comment: by Seth Alling – 1.2
    Page-list: by webvitaly – 5.2
    Printify Shipping Method: by Printify – 2.5
    Sassy Social Share: by Team Heateor – 3.3.23
    Advanced Editor Tools (previously TinyMCE Advanced): by Automattic – 5.6.0
    WooCommerce Stripe Gateway: by WooCommerce – 5.4.0
    WooCommerce Payments: by Automattic – 2.8.4
    WooCommerce Shipping & Tax: by WooCommerce – 1.25.18
    WooCommerce: by Automattic – 5.6.0
    
    ### Inactive Plugins (3) ###
    
    Creative Mail by Constant Contact: by Constant Contact – 1.4.4
    IONOS Assistant: by IONOS – 6.3.0
    MailPoet 3 (New): by MailPoet – 3.67.0
    
    ### Must Use Plugins (1) ###
    
    1&1 Product Subdomain: by 1&1 – 1.1.0
    
    ### Settings ###
    
    API Enabled: ?
    Force SSL: –
    Currency: USD ($)
    Currency Position: left
    Thousand Separator: ,
    Decimal Separator: .
    Number of Decimals: 2
    Taxonomies: Product Types: external (external)
    grouped (grouped)
    simple (simple)
    variable (variable)
    
    Taxonomies: Product Visibility: exclude-from-catalog (exclude-from-catalog)
    exclude-from-search (exclude-from-search)
    featured (featured)
    outofstock (outofstock)
    rated-1 (rated-1)
    rated-2 (rated-2)
    rated-3 (rated-3)
    rated-4 (rated-4)
    rated-5 (rated-5)
    
    Connected to WooCommerce.com: ?
    
    ### WC Pages ###
    
    Shop base: #7 - /merch/
    Cart: #230 - /cart/
    Checkout: #231 - /checkout/
    My account: #232 - /my-account/
    Terms and conditions: #3 - /privacy-policy/
    
    ### Theme ###
    
    Name: Startinger Premium
    Version: 1.1.2
    Author URL: https://seosthemes.com/
    Child Theme: ? – If you are modifying WooCommerce on a parent theme that you did not build personally we recommend using a child theme. See: How to create a child theme
    WooCommerce Support: ?
    
    ### Templates ###
    
    Archive Template: Your theme has a woocommerce.php file
    you will not be able to override the woocommerce/archive-product.php custom template since woocommerce.php has priority over archive-product.php. This is intended to prevent display issues.
    
    Overrides: –
    
    ### Action Scheduler ###
    
    Complete: 179
    Oldest: 2021-07-25 16:48:49 -0500
    Newest: 2021-08-19 12:04:53 -0500
    
    ### Status report information ###
    
    Generated at: 2021-08-19 14:58:47 -05:00
    
    Plugin Support abwaita a11n

    (@abwaita)

    Hi @ajfosterv,

    Thanks for sharing the SSR.

    Now understand that in the Shipping settings, there is a checkbox to disable WooCommerce Shipping calculations and let Printify set the shipping costs. I’m wondering if that’s where the issue lies, in that Printiofy ignores the Free Shipping coupon.

    In this case, you’ll want to check if there’s a conflict causing the Free shipping coupon not to be applied, it could be coming from Printify or another tool on your site.

    Kindly follow the steps in this guide to perform a full conflict test to see if you can identify the tool that when activated causes the Free Shipping coupon not to work – https://docs.woocommerce.com/document/how-to-test-for-conflicts/

    I hope this helps.
    Thanks.

    Thread Starter ajfosterv

    (@ajfosterv)

    Abwaita,

    Thank you for your reply. Because the discounts work, but not the freeshipping and as you mentioned, I’ve disabled the WooCommerce shipping calculation, I will contact Printify to see if they are aware of the situation.

    Then I will see about troubleshooting or just eliminate the free shipping and go to a percentage discount.

    Thanks and best regards,
    AJ

    Hi @ajfosterv

    Because the discounts work, but not the freeshipping and as you mentioned, I’ve disabled the WooCommerce shipping calculation, I will contact Printify to see if they are aware of the situation.

    That sounds good. Please let us know how it goes.

    Thread Starter ajfosterv

    (@ajfosterv)

    I can confirm that it’s an integration issue from Printify’s end. I suggested that they might want to add a note to their Printify Shipping page advising users that the free-shipping coupon is currently not supported.

    Thanks
    AJ
    +++++++++++++++++++++Printify Message++++++++++++++++++++++++++
    If you activated the Printify plugin in WooCommerce, then this is the reason why the free shipping coupon is not working. Unfortunately, since the “Free shipping” coupon is seen as a part of WooCommerce’s default shipping rates, our plugin will override this information, which is why the coupon doesn’t work as intended. I’m afraid, if you wish to use the shipping plugin for all your other Printify items, it is not possible to make it ignore the coupon conditions.
    ?
    ?But I agree that having this feature will be a great addition. I’ve forwarded your message to our development team as a feature request. Hopefully, they can include it in our platform in the nearest future.
    Please feel free to let me know if you have any further inquiries`
    +++++++++++++++++++++End Message++++++++++++++++++++++++++++

    Plugin Support Gabriel – a11n

    (@gabrielfuentes)

    Oh! Thank you for letting us know ?? !

    Great! If you have any further questions, you can start a new thread.

    Cheers.

    kstorell

    (@kstorell)

    I was having the same issue, however I was able to come up with a work around that works for us, it may not work for everyone, but it serves our purpose. We offer free merch coupons to some of our customers and use Printify as the drop shipper, we want these free merch coupons to come with free shipping. If you are using Woocommerce and Printify and are trying to apply a free shipping coupon, then this edit should work for you.

    In the plugins/printify-for-woocommerce/includes/printify-shipping-method.php file, starting at line 216 change the “calculate_shipping()” method to:

    public function calculate_shipping($package = [])
        {
    		//Custom Added Code
    		$free_shipping = false;
    		$coupons = WC()->cart->get_coupons();
    		foreach ( $coupons as $coupon ) {
    			if ( $coupon->get_free_shipping() ) {
    				$free_shipping = true;
    				break;
    			}
    		}
    		//If free shipping is available, make that the only option
    		if (isset($package['managed_by_printify']) && $package['managed_by_printify'] === true && /*Set this to check for free shipping coupon */ $free_shipping) {
                $this->add_rate([
                    'id' => $this->id . '_s',   //Still send the "standard shipping" method to printify, BUT!
                    'label' => 'Free Shipping', //Call it Free Shipping, AND!
                    'cost' => 0,                //Charge nothing for it
                    'calc_tax' => 'per_order',
                ]);
            }
    		else
    		{
    			//Original (without the else statement)
    			if (isset($package['managed_by_printify']) && $package['managed_by_printify'] === true) {
    				$this->add_rate([
    					'id' => $this->id . '_s',
    					'label' => 'Standard',
    					'cost' => $package['printify_shipping_rates']['standard']['cost'] / 100,
    					'calc_tax' => 'per_order',
    				]);
    			}
    
    			if (isset($package['managed_by_printify']) && $package['managed_by_printify'] === true && isset($package['printify_shipping_rates']['express'])) {
    				$this->add_rate([
    					'id' => $this->id . '_e',
    					'label' => 'Express',
    					'cost' => $package['printify_shipping_rates']['express']['cost'] / 100,
    					'calc_tax' => 'per_order',
    				]);
    			}
    		}
        }

    I hope that helps anyone else who is trying to do this.

    Please note that if you do decide to take this route and Printify updates this file at any point, you will lose your code.

    • This reply was modified 3 years ago by kstorell.
Viewing 8 replies - 1 through 8 (of 8 total)
  • The topic ‘Free Shipping with Printify does not work’ is closed to new replies.