通过amazon api设定woocommerce产品变化的价格

时间:2015-02-21 20:20:50

标签: php wordpress woocommerce

我在我的woocommerce商店中将亚马逊产品作为产品变体。我正在尝试开发一个基于API请求自动设置变化价格的插件。

关注this post我在变体中添加了自定义字段。一个是亚马逊ASIN:

<label><?php _e( 'Amazon ASIN', 'woocommerce' ); ?></label>
<input type="text" size="20" name="amazon_asin[<?php echo $loop; ?>]" value="<?php echo $variation_data['_amazon_asin'][0]; ?>"/>

我现在要做的是在更新产品时使用ASIN字段中的值来从亚马逊获取价格。由于我有相同自定义字段的多个变体,我还需要检查amazon_asin文本字段是否实际具有值。我在想这样的事情:

add_action( 'update_post_meta', 'get_amazon_price', 10, 4 );

function get_amazon_price( $meta_id, $post_id, $meta_key, $meta_value ) {
global $product, $post;

if ( 'amazon_asin' == $meta_key ) {

    $variations = $product->get_available_variations();
    foreach ($variations as $key => $value) {

        if (get_post_meta($value['variation_id'], '_amazon_asin', true) != null) {

            $asin = get_post_meta($value['variation_id'], '_amazon_asin', true);

            $publicKey = 'XXXXX';
            $privateKey = 'XXXXX';

            $xml = aws_signed_Request('de',
            array(
              "AssociateTag"=>"XXX",
              "MerchantId"=>"Amazon",
              "Operation"=>"ItemLookup",
              "ItemId"=>$asin,
              "ResponseGroup"=>"Medium, Offers"),
             $publicKey,$privateKey);

            $item = $xml->Items->Item;

            $price = $item->Offers->Offer->OfferListing->Price->Amount;

            update_post_meta($value['variation_id'], '_price', $price);
        }
    }
}
}

然而,这不起作用,这可能是错误的方式一起完成这一切。我知道(来自不同的脚本)aws_signed_Request工作正常。意思是如果我输入正确的$ asin,我会得到正确的$ price。其余的:说实话,我完全迷失了。

非常感谢任何帮助!

THX //的Seb

0 个答案:

没有答案