Class: EricWeixin::Xiaodian::Product
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- EricWeixin::Xiaodian::Product
- Defined in:
- app/models/eric_weixin/xiaodian/product.rb
Class Method Summary collapse
-
.create_product(options) ⇒ Object
创建商品.
-
.get_all_products(public_account_name) ⇒ Object
同步微信小店所有商品 EricWeixin::Xiaodian::Product.get_all_products ‘rszx’.
Class Method Details
.create_product(options) ⇒ Object
创建商品
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'app/models/eric_weixin/xiaodian/product.rb', line 45 def self.create_product EricWeixin::Xiaodian::Product.transaction do product = EricWeixin::Xiaodian::Product.where(product_id: [:product_id]).first product = if product.blank? EricWeixin::Xiaodian::Product.new product_id: [:product_id], name: [:name], status: [:status], delivery_type: [:delivery_type], sku_info: [:sku_info], properties: [:properties], weixin_public_account_id: [:weixin_public_account_id] else product.name = [:name] product.status = [:status] product.delivery_type = [:delivery_type] product.sku_info= [:sku_info] product.properties= [:properties] product end product.save! #更新分类信息 category_list = (product.categories.collect &:wx_category_id) new_category_list = ["wx_category_id"]||[] pp category_list pp new_category_list if not (category_list&new_category_list).length == category_list.length product.categories.clear ["wx_category_id"].each do |wx_category_id| c = EricWeixin::Xiaodian::Category.where(wx_category_id: wx_category_id).first product.categories << c end product.save! end product end end |
.get_all_products(public_account_name) ⇒ Object
同步微信小店所有商品 EricWeixin::Xiaodian::Product.get_all_products ‘rszx’
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'app/models/eric_weixin/xiaodian/product.rb', line 8 def self.get_all_products public_account_name account = EricWeixin::PublicAccount.get_public_account_by_name public_account_name token = ::EricWeixin::AccessToken.get_valid_access_token public_account_id: account.id param = {status: 0} response = RestClient.post "https://api.weixin.qq.com/merchant/getbystatus?access_token=#{token}", param.to_json response = JSON.parse response.body if response["errcode"] == 0 response["products_info"].each do |product_info| product = EricWeixin::Xiaodian::Product.create_product product_id: product_info["product_id"], name: product_info["product_base"]["name"], status: product_info["status"], delivery_type: product_info["delivery_info"]["delivery_type"], weixin_public_account_id: account.id, sku_info: product_info["product_base"]["sku_info"], properties: product_info["product_base"]["property"], wx_category_id: product_info["product_base"]["category_id"] (product_info["sku_list"]||[]).each do |sku| EricWeixin::Xiaodian::ProductSkuDetail.create_sku_detail weixin_xiaodian_product_id: product.id, sku_id: sku["sku_id"], icon_url: sku["icon_url"], price: sku["price"], quantity: sku["quantity"], product_code: sku["product_code"], ori_price: sku["ori_price"] end end else pp response return end end |