Woo-poly-integration: IPNずの株匏同期の問題

䜜成日 2018幎01月21日  Â·  27コメント  Â·  ゜ヌス: hyyan/woo-poly-integration

この問題をデフォルトのWordpressテヌマストアフロントなどで再珟できたすか
はい

WooCommerce、Polylang、Hyyan WooCommerce Polylang Integrationを陀く他のすべおのプラグむンが無効になっおいる堎合、この問題を再珟できたすか
はい

この問題が発生したずきに䜿甚しおいる補品バヌゞョンず蚭定は䜕ですか
PHPPHP 7.0
WordPress4.9.2
WooCommerce3.2.6
ポリラン2.2.8
Hyyan WooCommerce Polylang統合1.0.4
ブラりザChrome最新

再珟する手順
少なくずも2぀の蚀語を蚭定したす。たずえば、EN =デフォルト、FR
商品を蚭定し、2぀の蚀語に翻蚳しお、圚庫を3に蚭定したす
FRにいる間にその補品の1぀をバスケットに远加したす
PaypalやPayzenなどの支払いプラットフォヌムで支払いをチェックアりトしたす。
支払いが完了したら、Webサむトにリダむレクトする前にペヌゞを閉じたす。
IPNがWebサむトに送信されたこずを確認しおください。
ご泚文を承りたしたら、商品の圚庫はENで1、FRで3になりたす

私が期埅したこず
すべおの蚀語で2぀を圚庫ずしお3぀持っおいお、1぀賌入したした。

代わりに䜕が起こったのか
IPNを介しお呌び出された堎合、株䟡曎新はデフォルト蚀語の1回ではなく、2回曎新されたす。掘り䞋げお、次のように修正できる問題を芋぀けたした。

Stock.phpでこれらの行を削陀するこずによっお

$productID = Utilities::get_order_item_productid($item); $productObject = wc_get_product($productID);

どういうわけか、IPNを介しお呌び出されるず、get_order_item_productid関数は、遞択された補品ではなく、デフォルト蚀語の補品の補品IDを返したす。

私はwc-stock-function.phpをチェックし、これによっお2行を倉曎したした。

$productObject = $item->get_product(); $productID = $productObject->get_id();

次に、を削陀したした

unset($translations[$orderLang]);

翻蚳ルヌプで珟圚の補品をスキップしただけです。

if ($ID == $productID) continue;

help wanted stock

最も参考になるコメント

私の修正をチェックしお、プラグむンのストックファむルに倉曎を加えるこずができたす
https://github.com/hyyan/woo-poly-integration/pull/300/files

ただ受け入れられおいたせんが、䜕ヶ月も問題なく䜿甚しおいたす。

圌らがい぀か私のプルリク゚ストを受け入れるこずを願っおいたす...

党おのコメント27件

IPNを介しお呌び出されるず、get_order_item_productid関数は、遞択された補品ではなく、デフォルト蚀語の補品の補品IDを返したす。

はい、IPNURL自䜓はPolylangによっおデフォルト蚀語ずしお扱われたす。
[218は、蚀語固有のIPNが存圚する可胜性があるこずを瀺唆しおおり、これが発生しないように倉曎を提案しおいたす]

倉曎をIPN呌び出しのみに適甚するように制限するにはどうすればよいですか
倉曎の差分を確認できるように、倉曎をプルリク゚ストずしお送信できたすか

玠朎な質問の1぀ですが、IPNを䜿甚しないこずでも問題は解決したせんか この堎合、IPNを䜿甚する利点は䜕ですか 他の決枈プロバむダヌはIPNを䜿甚しおおらず、PayPalにも必芁ないため、明確にするために...

倉曎はIPN以倖の呌び出しには圱響しないようです。本番環境でパッチを䜿甚しおおり、たったく問題はありたせん。
倉曎リク゚ストを送信したした。
IPNの䜿甚を回避する方法がわかりたせん。 どうやっお䜿っおいないのか説明しおもらえたすか
IPNを䜿甚しないず、PDTに完党に䟝存するこずになりたす。これは通垞、支払い埌にリダむレクトされるペヌゞです。 私たちの堎合、お客様の50以䞊が、支払い埌にWebサむトにリダむレクトされる1秒に蚭定されるたで埅機したせん。぀たり、IPNがないず、泚文の半分が支払い完了に切り替わりたせん。 IPNを䜿甚するず、泚文の支払いが曎新されたこずを確認できたすが、これをどのように䜿甚しないのか理解できたせん。

たずえば、暙準のStripeチェックアりトには、ペヌゞにポップアップダむアログたたはカヌドフィヌルドたたはペヌゞのApple Payボタンがあり、JavaScriptずajax呌び出しのセットを介しおすべおを制埡しおいるようですが、私はそれを知りたせんPaypalIPNず同等です。

WooCommerceが提䟛するPaypal統合たたは他のプラグむンの1぀を䜿甚しおいたすか

javascriptはクラむアント偎であるため、信頌性がありたせん。 JSは倱敗するかブロックされる可胜性があり、ポップアップも通垞ブロックされたす。 たた、お客様の倚くは、Javascriptの実装が悪いこずで知られおいるWin7でIEを実行しおいたす。
Paypalを䜿甚しおおらず、PayZenプラグむンずIngenicoプラグむンを䜿甚しおいたす。どちらもIPNで動䜜したす。
プラグむンでIPNを䜿甚する必芁はありたせんが、Stripeでもい぀でも利甚できたす。
https://github.com/jatskie/stripe/blob/master/ipn.php
確実に実装したした。たた、私たちの業務では、人々は10:15より前に昌食を泚文し、12より前に配達されるため、支払いが通知されない堎合、顧客は昌食を受け取りたせん。 この時間的に重芁な問題では、偶然に頌るこずはできず、支払われた泚文が私たちの時間枠内に凊理されるこずを保蚌するためにIPNを実装する必芁がありたす。

振蟌銀行でお支払いの堎合は動䜜したせん。

@carlituxmanは、誰もがコメントできるほど詳现ではありたせんが、woocommerce ajaxが再び倉曎されたため、woocommerce3.3.5で状況が倉わった可胜性がありたす。 オヌプンプルリク゚ストの䞡方でテストする必芁がありたす。1぀はこの問題を修正するために提案され、もう1぀はajaxの問題を修正するために提案されおいたす。

ごめん。 ajax修正の問題は䜕ですか
329ず蚀うず思いたすか

329ず300の修正を適甚したしたが、機胜したせんでした。
私は同じ332の問題を抱えおいたす

さお、あなたはどのバヌゞョンのwoocommerceを䜿甚しおいたすか

woocommerce 3.3.5

この問題の解決策はありたすか 私たちの店の1぀でそれは本圓に悪いです。 ナニヌクな商品がたくさんあり圚庫は1぀のみ、1぀の蚀語で泚文した堎合、他の蚀語の圚庫は1のたたですメむン蚀語の圚庫は-1に蚭定されたす。 これで、他の蚀語で売り切れた堎合でも、䞀方の蚀語でただ圚庫がある補品の二重泚文がいく぀かありたす...

私の修正をチェックしお、プラグむンのストックファむルに倉曎を加えるこずができたす
https://github.com/hyyan/woo-poly-integration/pull/300/files

ただ受け入れられおいたせんが、䜕ヶ月も問題なく䜿甚しおいたす。

圌らがい぀か私のプルリク゚ストを受け入れるこずを願っおいたす...

@Tiiありがずう、私はあなたの修正を詊みたす。 圌らがあなたのプルリク゚ストを受け入れるこずを願っおいたす。 コアファむルに远加する必芁がある最初のバグ修正ではありたせん。 珟圚のプラグむンのバヌゞョンは曎新できたせん。 :(

この修正は私を助けたせんでした..圚庫はその蚀語での倉曎のみで、私が「賌入」したものです。 バラ゚ティのある株を甚意したした。 誰かが解決策を持っおいたすか

@Stibo珟圚のプラグむンバヌゞョンが曎新できないのはなぜですか
他の倉曎を加える必芁がある堎合は、githubで独自のブランチを䜜成し、そこで倉曎をチェックむンしお、プルリク゚ストを発行しおみたせんか。

このオプション/修正は私には機胜したせんでした。 :(

私は実際にコヌド党䜓を曞き盎したした

`

保護された関数の倉曎WC_Order_Item_Product $ item、$ action = self :: STOCK_REDUCE_ACTION{

    $productID = Utilities::get_order_item_productid($item);
    $productObject = wc_get_product($productID);
    $orderLang = pll_get_post_language($item->get_order_id());

    if ($productObject && $orderLang) {
        $translations = Utilities::getProductTranslationsArrayByObject($productObject);
        $isManageStock = $productObject->managing_stock();

        $method = ($action === self::STOCK_REDUCE_ACTION) ?
            'decrease' :
            'increase';
        $change = ($action === self::STOCK_REDUCE_ACTION) ?
            Utilities::get_order_item_quantity($item) :
            Utilities::get_order_item_change($item);

        $mainStock = null;
        $mainStockId = null;
        $products = array();
        foreach ($translations as $ID) {
            $product = wc_get_product($ID);
            $stock = $product->get_stock_quantity();

            if ($mainStock === null) {
                $mainStock = $stock;
                $mainStockId = $ID;
            } else {
                if ($method === 'decrease') {
                    if ($mainStock > $stock) {
                        $mainStock = $stock;
                        $mainStockId = $ID;
                    }
                } else {
                    if ($mainStock < $stock) {
                        $mainStock = $stock;
                        $mainStockId = $ID;
                    }
                }
            }
        }
        unset($products[$mainStock]);

        foreach ($translations as $ID) {

            if ($ID === $mainStockId) continue;

            if ($isManageStock) {
                \wc_update_product_stock($ID, $change, $method);
            }
            $general = Settings::getOption(
                'general', MetasList::getID(), array('total_sales')
            );
            if (in_array('total_sales', $general)) {
                update_post_meta($ID, 'total_sales', get_post_meta($mainStockId, 'total_sales', true)
                );
            }
        }

    }
}

`

したがっお、私のアプロヌチは、他の圚庫ずは異なる圚庫をチェックし、その䞊のすべおの圚庫を同期するこずでした。

あたり効率的ではありたせんが、IPNを介しお蚀語を取埗できるようになるたでは正垞に機胜しおいたす。

こんにちはティむ、

今日は詊しおみたす:)

保護された関数の倉曎のすべおのコヌドを貌り付けるこずができたすか

同じ問題が発生したす/
testing

こんにちはティむ、

今日は詊しおみたす:)

バリ゚ヌションの䜜業をしなかったこずに泚意しおください

こんにちはティむ、
今日は詊しおみたす:)

バリ゚ヌションの䜜業をしなかったこずに泚意しおください

保護された関数の倉曎のすべおのコヌドを貌り付けるこずができたすか

こんにちはティむ、
今日は詊しおみたす:)

バリ゚ヌションの䜜業をしなかったこずに泚意しおください

保護された関数の倉曎のすべおのコヌドを貌り付けるこずができたすか

理解できたせん。関数党䜓をコピヌしたした...

こんにちはティむ、
今日は詊しおみたす:)

バリ゚ヌションの䜜業をしなかったこずに泚意しおください

保護された関数の倉曎のすべおのコヌドを貌り付けるこずができたすか

理解できたせん。関数党䜓をコピヌしたした...

動䜜したせんでした。 同じ問題が発生したした/。 https://i.ibb.co/kHNW6fc/stockissue.jpg

こんにちはティむ、
今日は詊しおみたす:)

バリ゚ヌションの䜜業をしなかったこずに泚意しおください

保護された関数の倉曎のすべおのコヌドを貌り付けるこずができたすか

理解できたせん。関数党䜓をコピヌしたした...

動䜜したせんでした。 同じ問題が発生したした/。 https://i.ibb.co/kHNW6fc/stockissue.jpg

wp-content / plugins / woo-poly-integration / src / Hyyan / WPI / Product / Stock.phpからの機胜倉曎を私のものに眮き換えたしたか

私は今月それを䜿甚しおいたす、そしお私は単䞀の問題を持っおいたせんでした。

こんにちはティむ、
今日は詊しおみたす:)

バリ゚ヌションの䜜業をしなかったこずに泚意しおください

保護された関数の倉曎のすべおのコヌドを貌り付けるこずができたすか

理解できたせん。関数党䜓をコピヌしたした...

動䜜したせんでした。 同じ問題が発生したした/。 https://i.ibb.co/kHNW6fc/stockissue.jpg

wp-content / plugins / woo-poly-integration / src / Hyyan / WPI / Product / Stock.phpからの機胜倉曎を私のものに眮き換えたしたか

私は今月それを䜿甚しおいたす、そしお私は単䞀の問題を持っおいたせんでした。

はい。

修正は私にずっおも機胜したせん...

@fkoomek @bmpf @Stibo @Tiiより完党な修正のために、この眮換Stock.phpファむルを詊しおください

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡