1

我们正在使用脚本在我们的 woocommerce 安装中创建产品。API 调用似乎运行良好 - 请参阅下面的请求和响应。

但是,当我们在后端查看产品时 - 它处于草稿模式,并且某些属性没有像图像和类别那样保存。

正在返回占位符图像作为响应。我已经检查过我们的安装中没有 W3 Total Cache Plugin。

要求 :

{"title":"KOOVS Fur Panda Back Pack","type":"external","id":"554541381","p_id":"13318","m_id":"669929","status":"","price":"1295.00","sale_price":"1295.00","product_url":"http://clk.omgt5.com/?AID=976182&PID=13318&Type=12&r=http://www.koovs.com/koovs-fur-panda-back-pack-79609.html%3Fal%3D1","brand":"KOOVS","category_name":"Backpacks","category_path_as_string":"Root|Backpacks|","price_html":"INR","regular_price":"1295.00","description":"KOOVS Fur Panda Back Pack","short_description":"","categories":[2044,2047],"images":"[{\"src\":\"http://images.kooves.com/uploads/products/79609_c00b504538416f48d4a78cfa53fd0f7c_image1_default.jpg\",\"position\":0}]","attributes":[{"name":"Color","position":0,"visible":true,"variation":true,"options":[null]},{"name":"Size","position":0,"visible":true,"variation":true,"options":[null]},{"name":"Brand","slug":"pa_brand","visible":true,"variation":true,"options":["KOOVS"]}],"default_attributes":[{"id":23,"option":"Black"},{"name":"Size","option":"S"}]}

响应对象:

{"product":{"title":"KOOVS Fur Panda Back Pack","id":4568,"created_at":"-0001-11-30T00:00:00Z","updated_at":"-0001-11-30T00:00:00Z","type":"external","status":"draft","downloadable":false,"virtual":false,"permalink":"http:\/\/dev.appilyever.com\/newsite\/?post_type=product&p=4568","sku":"","price":"1295.00","regular_price":"1295.00","sale_price":"1295.00","price_html":"<span class=\"woocommerce-Price-amount amount\"><span class=\"woocommerce-Price-currencySymbol\">&#8377;<\/span>1,295.00<\/span>","taxable":true,"tax_status":"taxable","tax_class":"","managing_stock":false,"stock_quantity":null,"in_stock":true,"backorders_allowed":false,"backordered":false,"sold_individually":false,"purchaseable":false,"featured":false,"visible":true,"catalog_visibility":"visible","on_sale":false,"product_url":"http:\/\/clk.omgt5.com\/?AID=976182&#038;PID=13318&#038;Type=12&#038;r=http:\/\/www.koovs.com\/koovs-fur-panda-back-pack-79609.htmlal1","button_text":"Buy product","weight":null,"dimensions":{"length":"","width":"","height":"","unit":"cm"},"shipping_required":true,"shipping_taxable":true,"shipping_class":"","shipping_class_id":null,"description":"<p>KOOVS Fur Panda Back Pack<\/p>\n","short_description":"","reviews_allowed":true,"average_rating":"0.00","rating_count":0,"related_ids":[4126,4116,4132,4120,4108],"upsell_ids":[],"cross_sell_ids":[],"parent_id":0,"categories":["Clutches","Handbags"],"tags":[],"images":[{"id":0,"created_at":"2016-11-23T04:19:14Z","updated_at":"2016-11-23T04:19:14Z","src":"http:\/\/dev.appilyever.com\/newsite\/wp-content\/plugins\/woocommerce\/assets\/images\/placeholder.png","title":"Placeholder","alt":"Placeholder","position":0}],"featured_src":"","attributes":[{"name":"Brand","slug":"Brand","position":0,"visible":true,"variation":true,"options":["KOOVS"]},{"name":"Size","slug":"Size","position":0,"visible":true,"variation":true,"options":[""]},{"name":"Color","slug":"Color","position":0,"visible":true,"variation":true,"options":[""]}],"downloads":[],"download_limit":0,"download_expiry":0,"download_type":"","purchase_note":"","total_sales":0,"variations":[],"parent":[],"grouped_products":[],"menu_order":0}}

以下是代码片段:

Cron 调用:

wooCommerce.addProductToWooCommerce(buildWoocommerceObject(product), function response(res) {
            if (res.data && res.data.data.body && res.data.data.body.length > 0) {
              var parsedProduct = JSON.parse(res.data.data.body).product;
              if (parsedProduct) {
                Product.findOneAndUpdate({ ProductID: product.ProductID },
                  {
                    $set: {
                      ProductPrice: parsedProduct.price, price: parsedProduct.price,
                      sale_price: parsedProduct.sale_price, images: parsedProduct.images,
                      attributes: parsedProduct.attributes, categories: parsedProduct.categories,
                      wpId: parsedProduct.id, lastUpdatedDate: Date.now(),
                      "status": "MAPPED", "action": "NEW"
                    }
                  }, function (err, doc) {
                    if (err) {
                      console.error("failed to update product");
                    } else {
                      console.log('Product updated in Mapped Collection');
                    }
                  });
              }
            }
          });

请求建筑:

function buildWoocommerceObject(product) {

  var wcProduct = {
    title: product.title,
    type: product.type,
    id: product.ProductID,
    p_id: product.PID,
    m_id: product.MID,
    status: '',
    price: product.price,
    sale_price: product.sale_price,
    product_url: product.ProductURL,
    brand: product.Brand,
    category_name: product.CategoryName,
    category_path_as_string: product.CategoryPathAsString,
    price_html: product.ProductPriceCurrency,
    regular_price: product.regular_price,
    description: product.description,
    short_description: '',
    categories: product.categories,
    images: JSON.stringify(product.image),
    attributes: product.attributes,
    default_attributes: [{
      "id": 23,
      "option": "Black"
    }, {
      "name": "Size",
      "option": "S"
    }]
  };
  return wcProduct;
}

控制器定义:

var addProductToWooCommerce = function (product, cb) {
    var data = {
      "product": product
    };
    wooCommerce.post('products', data, function (err, data, result) {
      if (err) {
        cb({ 'code': 400, data: result, "message": "Failed to insert object to WooCommerce" });
      } else {
        console.log(result);
       cb({ 'code': 200, data:{"data":data, "result":result} , "message": "Insert object to WooCommerce succeeded" })
      }
    });
};
module.exports.addProductToWooCommerce = addProductToWooCommerce;
4

1 回答 1

0

添加status: "draft"到您的请求对象。然后您可以在所有产品中查看您发布的产品,并将其创建为草稿产品。

于 2022-02-05T08:36:28.817 回答