Shopify - Webhook for getting notified on Rates API call timeout












0















In Shopify, normally the Rates API call will succeed only if we return the rates within the 15 seconds. Else, it will display an error at the Checkout page.



I looked a glance at the webhook list in the settings page and seems like there is not such webhook for Rate API timeout error.
Is there any way to get notified of these scenarios?










share|improve this question



























    0















    In Shopify, normally the Rates API call will succeed only if we return the rates within the 15 seconds. Else, it will display an error at the Checkout page.



    I looked a glance at the webhook list in the settings page and seems like there is not such webhook for Rate API timeout error.
    Is there any way to get notified of these scenarios?










    share|improve this question

























      0












      0








      0








      In Shopify, normally the Rates API call will succeed only if we return the rates within the 15 seconds. Else, it will display an error at the Checkout page.



      I looked a glance at the webhook list in the settings page and seems like there is not such webhook for Rate API timeout error.
      Is there any way to get notified of these scenarios?










      share|improve this question














      In Shopify, normally the Rates API call will succeed only if we return the rates within the 15 seconds. Else, it will display an error at the Checkout page.



      I looked a glance at the webhook list in the settings page and seems like there is not such webhook for Rate API timeout error.
      Is there any way to get notified of these scenarios?







      shopify webhooks shopify-app






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 22 '18 at 14:13









      lalith kumarlalith kumar

      535




      535
























          2 Answers
          2






          active

          oldest

          votes


















          0














          If your App is failing to return a response in 15 seconds, you can easily see that yourself by monitoring the response times of your App. Most cloud providers will log your response times for you to see. If not there are plenty of monitoring tools designed to expose your App response times in an easy way. Try that.






          share|improve this answer
























          • Also your rate service should throw a connection closed error if you take too long to respond so you could catch that and forward that to a monitoring service

            – bknights
            Nov 22 '18 at 22:21











          • Hi @david and bknights, Thanks for your response. However, the elapsed time calculation is not effective in our system, and i resolved my scenario by listening to the req.on('close' , ...) event (please have a look at my answer posted below). The reason for assuming the elapsed time calculation as not effective, because, on req.on('close'), i observed the elapsed time as 10 to 11 seconds only. So, now this req.on('close') resolved this, and eventhe Gateway timeout issue as well.

            – lalith kumar
            Nov 27 '18 at 10:34



















          0














          Got solution for this scenario as below. We can usually listen for connection close event.



          app.post('/fetchrates', (req, res) => {
          req.on('close', () => {
          logger.debug("Shopify has aborted/closed the connection");
          });

          // <Logic for calculating the rates and returning the response>
          });


          This seems to be the best solution, since not only with the timeout, we can also get notified on gateway timeout(where the api endpoint has not been hitted into our system).






          share|improve this answer























            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53432868%2fshopify-webhook-for-getting-notified-on-rates-api-call-timeout%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            2 Answers
            2






            active

            oldest

            votes








            2 Answers
            2






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0














            If your App is failing to return a response in 15 seconds, you can easily see that yourself by monitoring the response times of your App. Most cloud providers will log your response times for you to see. If not there are plenty of monitoring tools designed to expose your App response times in an easy way. Try that.






            share|improve this answer
























            • Also your rate service should throw a connection closed error if you take too long to respond so you could catch that and forward that to a monitoring service

              – bknights
              Nov 22 '18 at 22:21











            • Hi @david and bknights, Thanks for your response. However, the elapsed time calculation is not effective in our system, and i resolved my scenario by listening to the req.on('close' , ...) event (please have a look at my answer posted below). The reason for assuming the elapsed time calculation as not effective, because, on req.on('close'), i observed the elapsed time as 10 to 11 seconds only. So, now this req.on('close') resolved this, and eventhe Gateway timeout issue as well.

              – lalith kumar
              Nov 27 '18 at 10:34
















            0














            If your App is failing to return a response in 15 seconds, you can easily see that yourself by monitoring the response times of your App. Most cloud providers will log your response times for you to see. If not there are plenty of monitoring tools designed to expose your App response times in an easy way. Try that.






            share|improve this answer
























            • Also your rate service should throw a connection closed error if you take too long to respond so you could catch that and forward that to a monitoring service

              – bknights
              Nov 22 '18 at 22:21











            • Hi @david and bknights, Thanks for your response. However, the elapsed time calculation is not effective in our system, and i resolved my scenario by listening to the req.on('close' , ...) event (please have a look at my answer posted below). The reason for assuming the elapsed time calculation as not effective, because, on req.on('close'), i observed the elapsed time as 10 to 11 seconds only. So, now this req.on('close') resolved this, and eventhe Gateway timeout issue as well.

              – lalith kumar
              Nov 27 '18 at 10:34














            0












            0








            0







            If your App is failing to return a response in 15 seconds, you can easily see that yourself by monitoring the response times of your App. Most cloud providers will log your response times for you to see. If not there are plenty of monitoring tools designed to expose your App response times in an easy way. Try that.






            share|improve this answer













            If your App is failing to return a response in 15 seconds, you can easily see that yourself by monitoring the response times of your App. Most cloud providers will log your response times for you to see. If not there are plenty of monitoring tools designed to expose your App response times in an easy way. Try that.







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered Nov 22 '18 at 16:13









            David LazarDavid Lazar

            5,86531426




            5,86531426













            • Also your rate service should throw a connection closed error if you take too long to respond so you could catch that and forward that to a monitoring service

              – bknights
              Nov 22 '18 at 22:21











            • Hi @david and bknights, Thanks for your response. However, the elapsed time calculation is not effective in our system, and i resolved my scenario by listening to the req.on('close' , ...) event (please have a look at my answer posted below). The reason for assuming the elapsed time calculation as not effective, because, on req.on('close'), i observed the elapsed time as 10 to 11 seconds only. So, now this req.on('close') resolved this, and eventhe Gateway timeout issue as well.

              – lalith kumar
              Nov 27 '18 at 10:34



















            • Also your rate service should throw a connection closed error if you take too long to respond so you could catch that and forward that to a monitoring service

              – bknights
              Nov 22 '18 at 22:21











            • Hi @david and bknights, Thanks for your response. However, the elapsed time calculation is not effective in our system, and i resolved my scenario by listening to the req.on('close' , ...) event (please have a look at my answer posted below). The reason for assuming the elapsed time calculation as not effective, because, on req.on('close'), i observed the elapsed time as 10 to 11 seconds only. So, now this req.on('close') resolved this, and eventhe Gateway timeout issue as well.

              – lalith kumar
              Nov 27 '18 at 10:34

















            Also your rate service should throw a connection closed error if you take too long to respond so you could catch that and forward that to a monitoring service

            – bknights
            Nov 22 '18 at 22:21





            Also your rate service should throw a connection closed error if you take too long to respond so you could catch that and forward that to a monitoring service

            – bknights
            Nov 22 '18 at 22:21













            Hi @david and bknights, Thanks for your response. However, the elapsed time calculation is not effective in our system, and i resolved my scenario by listening to the req.on('close' , ...) event (please have a look at my answer posted below). The reason for assuming the elapsed time calculation as not effective, because, on req.on('close'), i observed the elapsed time as 10 to 11 seconds only. So, now this req.on('close') resolved this, and eventhe Gateway timeout issue as well.

            – lalith kumar
            Nov 27 '18 at 10:34





            Hi @david and bknights, Thanks for your response. However, the elapsed time calculation is not effective in our system, and i resolved my scenario by listening to the req.on('close' , ...) event (please have a look at my answer posted below). The reason for assuming the elapsed time calculation as not effective, because, on req.on('close'), i observed the elapsed time as 10 to 11 seconds only. So, now this req.on('close') resolved this, and eventhe Gateway timeout issue as well.

            – lalith kumar
            Nov 27 '18 at 10:34













            0














            Got solution for this scenario as below. We can usually listen for connection close event.



            app.post('/fetchrates', (req, res) => {
            req.on('close', () => {
            logger.debug("Shopify has aborted/closed the connection");
            });

            // <Logic for calculating the rates and returning the response>
            });


            This seems to be the best solution, since not only with the timeout, we can also get notified on gateway timeout(where the api endpoint has not been hitted into our system).






            share|improve this answer




























              0














              Got solution for this scenario as below. We can usually listen for connection close event.



              app.post('/fetchrates', (req, res) => {
              req.on('close', () => {
              logger.debug("Shopify has aborted/closed the connection");
              });

              // <Logic for calculating the rates and returning the response>
              });


              This seems to be the best solution, since not only with the timeout, we can also get notified on gateway timeout(where the api endpoint has not been hitted into our system).






              share|improve this answer


























                0












                0








                0







                Got solution for this scenario as below. We can usually listen for connection close event.



                app.post('/fetchrates', (req, res) => {
                req.on('close', () => {
                logger.debug("Shopify has aborted/closed the connection");
                });

                // <Logic for calculating the rates and returning the response>
                });


                This seems to be the best solution, since not only with the timeout, we can also get notified on gateway timeout(where the api endpoint has not been hitted into our system).






                share|improve this answer













                Got solution for this scenario as below. We can usually listen for connection close event.



                app.post('/fetchrates', (req, res) => {
                req.on('close', () => {
                logger.debug("Shopify has aborted/closed the connection");
                });

                // <Logic for calculating the rates and returning the response>
                });


                This seems to be the best solution, since not only with the timeout, we can also get notified on gateway timeout(where the api endpoint has not been hitted into our system).







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 27 '18 at 10:30









                lalith kumarlalith kumar

                535




                535






























                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53432868%2fshopify-webhook-for-getting-notified-on-rates-api-call-timeout%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    If I really need a card on my start hand, how many mulligans make sense? [duplicate]

                    Alcedinidae

                    Can an atomic nucleus contain both particles and antiparticles? [duplicate]