上传具有多种变体选项的新产品

2023-12-04

我正在尝试通过 ruby​​(而不是使用 Rails)上传产品。我已通过 API 上传了 100 多个产品,但我无法上传具有多个选项值的产品。即使我分配三个选项值,它也不会填充其他两个。

这是脚本:

require 'shopify_api' 
require 'open-uri' 
require 'json'

begin_time = Time.now

shop_url  = "*https*(yes I know the * are their)://-YouWish-:-I'[email protected]/admin/products.json"
include ShopifyAPI

ShopifyAPI::Base.site ="*https*://-YouWish-:-I'[email protected]/admin/"

raw_product_data = JSON.parse(open('omg.json') {|f| f.read }.force_encoding('UTF-8'))
raw_product_data_size = raw_product_data.size

puts '========================================================================='
puts "#{raw_product_data_size} seconds till explosion. assistance
needed..."
puts '-------------------------------------------------------------------------'
single_product_begin_time = Time.now

# Create new product   
new_product = ShopifyAPI::Product.new  
new_product.title = "Variants Suck"
new_product.body_html = "So"  
new_product.product_type = "Much"
new_product.vendor = "Please"  
new_product.tags = "Help"

new_product.variants = [ 
     {
      "option1" => "This One Works",
      "option2" => "Lost Cause",
      "option3" => "/wrist",
      "postion" => "1",
      "price" => "10.00",
      "sku" => "12345",
      "inventory_management" => "shopify",
    }   ]
 new_product.images = [
    {
      src: "https://cdn.shopify.com/s/files/1/0750/0067/files/Pro-Tapes.jpg?11603036243532110652"
    }   ]

  new_product.save

  creation_time = Time.now - single_product_begin_time


puts '-------------------------------------------------------------------------'
puts "Sorry About the mess babe, atleast it only took #{begin_time - Time.now} minutes."
puts '========================================================================='

我正在开发商店中对此进行测试,但我正在尝试重建以前在 magento 上构建的东西,在那里我可以让人们将我的 csv 数据条目转换为 json,然后对数据进行数组/散列。

请不要将我链接到 (shopify)/API 信息。我已经读过了。我不明白它的格式。如果我要使用 shopify-cli 控制台,并将 api 示例粘贴到 irb 中,它将无法正确执行。我确信我只是缺乏使用 API 所需的知识,尽管如果您能稍微帮助我,我将不胜感激。


此 node.js 脚本添加带有变体的项目。此处的区别在于它包含产品元素上的选项列表。请注意,如果您注释掉选项元素,那么我会遇到与您报告的相同问题,因为仅导入第一个选项。

var https = require('https');

var cred = new Buffer(privateAppAPIKey +":"+ privateAppPassword).toString('base64');

var headers = {Authorization: "Basic "+cred, "Content-Type": "application/json"};

var options = {
  host: 'kotntest1.myshopify.com',
  port: 443,
  path: '/admin/products.json',
  method: 'POST',
  headers: headers
};

// Setup the request.  The options parameter is
// the object we defined above.
var req = https.request(options, function(res) {
  res.setEncoding('utf-8');

  var responseString = '';

  res.on('data', function(data) {
    responseString += data;
    console.log(data);
  });

  res.on('end', function() {
    var resultObject = JSON.parse(responseString);
  });
});

req.on('error', function(e) {
  // TODO: handle error.
  console.log(e);
});

var product = {
  product:{
    title:'My First Test Product',
    options : [
      {name : "First"},
      {name : "Second"},
      {name : "Third"}
    ],   
    variants: [
      {
        title:'v1',
        option1: 'Red',
        option2: "Honda", 
        option3: 'Prelude'
      },
      {
          title:'v2',
          option1 :'Blue',
          option2 :'Ford',
          option3 :'Escort'
      }
      ]
    }

};

req.write(JSON.stringify(product));
req.end();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

上传具有多种变体选项的新产品 的相关文章

  • 查找数组中 2 个缺失数字的最快方法

    这个问题的存在只是出于纯粹的好奇心 不是作业 找到在数组 1 n 中找到两个缺失数字的最快方法 因此 在相关帖子中 查找数字数组中缺失数字的最快方法 https stackoverflow com questions 2113795 qui
  • ruby CSV重复行解析

    我有一些需要处理的 CSV 数据 但无法找到匹配重复项的方法 数据看起来有点像这样 line id name item 1 item 2 item 3 item 4 1 251 john foo foo foo foo 2 251 john
  • 匹配一对未转义的平衡分隔符

    如何匹配一对不被反斜杠转义的平衡分隔符 本身不被反斜杠转义 无需考虑嵌套 例如 对于反引号 我尝试了此操作 但是转义的反引号无法按转义的方式工作 regex lt lt hello how are you gt 1 how expected
  • 忽略 GEM,因为它的扩展尚未构建

    在我的工作和家用计算机上 我最近将 Ruby 升级到 2 3 1 使用ruby install I use chruby作为我的 Ruby 切换器 我开始在我的终端中看到这个警告 Ignoring bcrypt 3 1 11 because
  • 在 RSpec 测试期间抑制控制台输出

    我正在测试在控制台上放置一些消息的类 包含 put p 警告等 我只是想知道在 RSpec 测试期间是否有能力抑制此输出 我压抑puts通过重定向在我的类中输出 stout到一个文本文件 这样 如果我出于任何原因需要查看输出 它就在那里 但
  • 模块何时包含在在 Rails 中运行的 Ruby 类中?

    我正在尝试编写一个方法来告诉我包含特定模块的每个类 它看起来像这样 def Rating rateable objects rateable objects ObjectSpace each object Class do c next u
  • Rails 5 - 在 gem 上充当 Taggable - 简单表单集合选择已定义的标签列表

    我正在尝试学习如何将 Acts as Taggable On gem 与 Rails 5 一起使用 我使用简单的表格作为表格 我认为部分问题是由于提案和 randd fields 之间的模型没有关联而产生的 我有名为 Proposal 和
  • 为什么 Ruby 使用 respond_to?而不是respond_to?

    我很好奇为什么 Ruby 用于检查对象是否响应方法的内省相关方法是respond to 代替responds to 我总是觉得很尴尬 但也许那是因为我已经习惯了respondsToSelector在 Objective c 中 Matz p
  • 未签出...捆绑安装无法修复帮助!

    https github com intridea omniauth git at master is not checked out Please run bundle install Bundler GitError 那我该怎么办 捆绑
  • 如何从 method_missing 获取绑定?

    我试图找到一种方法来从 Ruby 1 8 中的 method missing 中的调用者获取绑定 但我似乎找不到方法来做到这一点 希望下面的代码能解释我想做的事情 class A def some method x 123 nonexist
  • 下载前获取文件大小并计算已下载的文件大小 (http+ruby)

    谁能帮我 get the 之前的文件大小我开始下载 显示多少 已下载 require net http require uri url http www onalllevels com 2009 12 02TheYangShow Squid
  • 该块如何用于整数倍方法?

    我不明白如何n times该行在下面给出的 ruby 代码中工作 特别是逗号的含义以及如何new变量已更新 def fib n raise fib not defined for negative numbers if n lt 0 new
  • 有没有一种好方法来计算 ruby​​ 中范围元素的总和

    计算范围总和的好方法是什么 Input 4 10 Output 4 5 6 7 8 9 10 49 您可以使用EnumerableRange 对象上的方法 在本例中使用Enumerable inject 4 10 inject gt 49
  • Ruby 中的关键字在哪里定义?

    我正在查看 Ruby 文档 想知道是否一切都是对象 那么 关键字 也是对象 对吗 如果是这样 它们在 ruby 中是在哪里定义的 下面的页面完全让我困惑 因为它显示了包含所有关键字的对象 但这不是所有类使用的官方对象 这是否以某种方式来自不
  • 对 Rails 3.1 中的特定路由强制使用 SSL

    我需要强制启用 SSL所有路线在我的申请中除了landing index In config application rb 我有 config force ssl true Then in landing controller rb 我有
  • 开始使用 Ruby、Watir 和 Ruby Mine?

    我想对电子商务网站进行自动化测试 我安装了 Ruby Watir Gems 和 Ruby Mine 虽然我尝试过 RubyMine 但我不知道如何开始编写一个简单的脚本 如何开始使用 RubyMine 编写简单的脚本 我创建了一个项目 你下
  • 如何在 Mac OS X 上使用 ulimit 或每个进程更改 C 或 Ruby 程序的堆栈大小?

    似乎为 C 程序或 Ruby 程序 使用 C 堆栈 设置堆栈大小的推荐方法是使用ulimit在 Bash shell 中 但 ulimit s 8192 ulimit s 16384 bash ulimit stack size canno
  • 无法在 IE 上运行 Selenium 脚本

    我必须在 IE 10 浏览器上运行 Selenium 测试 为了运行以下脚本 我执行了以下操作 下载IEDriverServer 64位 因为我的机器是64位 here http code google com p selenium dow
  • 如何在Windows 7上运行Ruby程序?

    有谁知道如何在 Windows 7 上运行 编译 Ruby 程序 例如 你可以在 Eclipse 中编译 Java 但我似乎找不到 Ruby 的编译器 http rubyinstaller org http rubyinstaller or
  • Jekyll 站点仅在推送到 GitHub 时才会失败

    我正在使用 Jekyll 开发一个新版本的静态网站 该网站通过 Github 页面部署 https devcampy com https devcampy com 存储库 https github com gianarb devcampy

随机推荐

  • Xcode 5 中的按键绑定

    我曾经这样做过 Xcode 重复行 但 IDETextKeyBindingSet plist 不再存在 有一个名为 KeyBindings 的文件夹 其中有一个空白文本文件 那么我们现在如何设置按键绑定呢 具体来说 我只想使用 comman
  • 提高网络编码性能

    我目前正在开发一个基于 Java 的网络编码库 http en wikipedia org wiki Network coding 这非常消耗 CPU 资源 因此需要一些帮助来优化编码阶段 我本质上所做的是创建原始数据的随机线性组合 其中加
  • assetLibrary 是一个简单的错误吗?

    我真的很失落 为什么我每个都得到两次 NSLogUIImage get the images from the camera roll assets NSMutableArray alloc init NSMutableArray came
  • 使用Python列出Windows 10上本地运行的服务?

    我所需要做的就是创建一个程序 列出 Windows 计算机上所有正在运行的服务 我尝试了很多方法 包括psutil 但都没有效果 此后我尝试通过尝试执行 net stat 命令来简化它 它可以工作 但输出是乱码 有没有办法把它保存到一个漂亮
  • vb.net 中的 lambda 表达式

    我有一些东西让我绝对疯狂 Public Function GetAccountGroups As IList Of AccountGroup Dim raw account groups As IList Of AccountGroup r
  • Android:在 NDK 中的 jar 文件中链接预构建的共享库 (.so)

    我有一个编译为 jar 文件的静态 java 库 该 jar 使用 System loadLibrary 加载 so 库 然后另一个 Android 应用程序项目静态链接该 jar 文件 所有内容都是使用 NDK 中的 Android mk
  • 命令“/bin/sh -c apt-get install erlang”返回非零代码:1

    我是 Docker 的初学者 使用 Ubuntu 18 04 作为主机 在寻找解决方案时 我得到的唯一结果就是增加虚拟机磁盘大小 因为它是由于内存不足而发生的 我没有使用虚拟机 可用磁盘大小为 87 GB 以下是我的 docker 文件内容
  • 将 Google Cloud App Engine 上的 Node.js 应用连接到 Google Cloud SQL 实例

    我有一个使用 MySQL 的 Node 应用程序 通过配置 json 连接 client mysql connection host something user something password something database
  • puppeteer page.evaluate 页面未定义

    我想用 puppeteer 在输入中输入内容 但它返回一个错误 页面未定义 async function login const browser await puppeteer launch headless false const pag
  • 如何从类型转换为泛型?

    嘿那里 给出的是这个类 public static class FooClass
  • 如何制作 Android EditView“完成”按钮并在单击时隐藏键盘?

    当用户点击EditView Android 打开键盘以便用户可以在EditView 问题是 当用户写完后 没有办法隐藏键盘 用户必须按后退按钮才能隐藏键盘 有没有办法显示Done键盘上的按钮会隐藏键盘吗 首先你需要设置android ime
  • 在 IE 上使用 jquery 访问 Iframe 内容

    我正在尝试使用隐藏的 Iframe 上传文件并获取响应 以下代码在 Firefox 上运行良好 但在 IE 上无法运行 它无法获取响应 Line var content j this contents find body last text
  • Android - 微调器的文本下拉列表/选择不显示

    我正在使用此示例代码来填充 Spinner 数据是从数据库中读取的 选择显示正确 在本例中 它显示 绿色 和 红色 Spinner spinnerColor Spinner findViewById R id spinnertProfile
  • 如何使用 SOCK_DGRAM 制作双向 unix 域套接字?

    我正在尝试编写一个简单的 Unix 数据报服务器 客户端 但遇到了一些问题 我想要的是一个监听数据报套接字并向原始发送者发送对收到的每条消息的回复的服务器 我决定先尝试使用socat成为 服务器 并用 C 编写客户端 我像这样运行 soca
  • Swagger UI 为空并给出 403

    我正在使用 Spring Boot 并且已将 swagger 添加到我的依赖项中
  • 如何将旧日志文件导入graylog作为输入?

    我能够设置灰色日志服务器和graylog web 并能够在 apache2 tomcat 和其他应用程序的帮助下设置生成日志的输入灰色日志收集器 e g apache access type file path var log apache
  • Mac OSX 在构建 MonoDevelop iOS 应用程序时要求钥匙串访问

    在 Mac 上的 MonoDevelop 中构建项目时 我收到消息 MAC OS X 想要进行更改 请键入管理员的名称和密码以允许此操作 MAC OSX 想要使用系统钥匙串 我找到了帖子Mac OS X 想要在编译项目时使用系统钥匙串但这并
  • 程序集 x86 NASM - 避免读取返回键

    我刚刚开始学习汇编 但没有找到任何有帮助的有用内容 我正在创建一个简单的程序来读取用户输入 基本上 section bss opA resw 1 opB resw 1 section text global start inputA mov
  • 如何将 16 位 wav 转换为原始音频

    我正在尝试使用 sox 将星号语音邮件转换为原始音频 原始wav的编码信息是PCM S16 LE 所以我想我可以这样做sox msg0000 wav msg0001 raw但其中的原始文件是乱码 根据 VLC 的说法 与 6 秒的源文件相比
  • 上传具有多种变体选项的新产品

    我正在尝试通过 ruby 而不是使用 Rails 上传产品 我已通过 API 上传了 100 多个产品 但我无法上传具有多个选项值的产品 即使我分配三个选项值 它也不会填充其他两个 这是脚本 require shopify api requ