ultracart_api 4.1.199 → 4.1.201

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +28 -2
  3. data/docs/SfvbApi.md +578 -13
  4. data/docs/SfvbApprovalCreateRequest.md +6 -0
  5. data/docs/SfvbApprovalParams.md +23 -3
  6. data/docs/SfvbContainerVersion.md +1 -1
  7. data/docs/SfvbEvent.md +28 -0
  8. data/docs/SfvbEventsAuthRequest.md +18 -0
  9. data/docs/SfvbEventsAuthResponse.md +22 -0
  10. data/docs/SfvbEventsResponse.md +22 -0
  11. data/docs/SfvbI18nMessageValue.md +1 -1
  12. data/docs/SfvbItemAttributeBatchRequest.md +20 -0
  13. data/docs/SfvbItemAttributeBatchResponse.md +40 -0
  14. data/docs/SfvbItemAttributeBatchRow.md +30 -0
  15. data/docs/SfvbItemAttributeBatchRowResult.md +36 -0
  16. data/docs/SfvbItemPricing.md +38 -0
  17. data/docs/SfvbItemPricingRequest.md +32 -0
  18. data/docs/SfvbItemRelated.md +28 -0
  19. data/docs/SfvbItemRelatedItem.md +22 -0
  20. data/docs/SfvbItemRelatedRequest.md +22 -0
  21. data/docs/SfvbItemVolumeDiscount.md +20 -0
  22. data/docs/SfvbThemeJobResponse.md +3 -3
  23. data/lib/ultracart_api/api/sfvb_api.rb +831 -72
  24. data/lib/ultracart_api/models/sfvb_approval_create_request.rb +33 -3
  25. data/lib/ultracart_api/models/sfvb_approval_params.rb +142 -6
  26. data/lib/ultracart_api/models/sfvb_container_version.rb +1 -1
  27. data/lib/ultracart_api/models/sfvb_event.rb +270 -0
  28. data/lib/ultracart_api/models/sfvb_events_auth_request.rb +222 -0
  29. data/lib/ultracart_api/models/sfvb_events_auth_response.rb +240 -0
  30. data/lib/ultracart_api/models/sfvb_events_response.rb +242 -0
  31. data/lib/ultracart_api/models/sfvb_i18n_message_value.rb +1 -1
  32. data/lib/ultracart_api/models/sfvb_item_attribute_batch_request.rb +232 -0
  33. data/lib/ultracart_api/models/sfvb_item_attribute_batch_response.rb +332 -0
  34. data/lib/ultracart_api/models/sfvb_item_attribute_batch_row.rb +280 -0
  35. data/lib/ultracart_api/models/sfvb_item_attribute_batch_row_result.rb +344 -0
  36. data/lib/ultracart_api/models/sfvb_item_pricing.rb +322 -0
  37. data/lib/ultracart_api/models/sfvb_item_pricing_request.rb +292 -0
  38. data/lib/ultracart_api/models/sfvb_item_related.rb +272 -0
  39. data/lib/ultracart_api/models/sfvb_item_related_item.rb +274 -0
  40. data/lib/ultracart_api/models/sfvb_item_related_request.rb +242 -0
  41. data/lib/ultracart_api/models/sfvb_item_volume_discount.rb +230 -0
  42. data/lib/ultracart_api/models/sfvb_theme_job_response.rb +3 -3
  43. data/lib/ultracart_api/version.rb +1 -1
  44. data/lib/ultracart_api.rb +14 -0
  45. metadata +30 -2
@@ -1889,6 +1889,81 @@ module UltracartClient
1889
1889
  return data, status_code, headers
1890
1890
  end
1891
1891
 
1892
+ # Check attribute changes across many items without writing them
1893
+ # Checks up to 2,000 rows on up to 200 items, each with the single attribute update's checks, and answers every row as change, unchanged, stale (expected_value differs from the current value), not_found or invalid, with the current value and its current_sha256, plus a plan_hash over the change rows. Writes nothing. SEO attributes are refused; a batch never touches them or any attribute it does not name.
1894
+ # @param storefront_oid [Integer]
1895
+ # @param item_attribute_batch_request [SfvbItemAttributeBatchRequest] The rows
1896
+ # @param [Hash] opts the optional parameters
1897
+ # @return [SfvbItemAttributeBatchResponse]
1898
+ def dry_run_sfvb_item_attribute_batch(storefront_oid, item_attribute_batch_request, opts = {})
1899
+ data, _status_code, _headers = dry_run_sfvb_item_attribute_batch_with_http_info(storefront_oid, item_attribute_batch_request, opts)
1900
+ data
1901
+ end
1902
+
1903
+ # Check attribute changes across many items without writing them
1904
+ # Checks up to 2,000 rows on up to 200 items, each with the single attribute update's checks, and answers every row as change, unchanged, stale (expected_value differs from the current value), not_found or invalid, with the current value and its current_sha256, plus a plan_hash over the change rows. Writes nothing. SEO attributes are refused; a batch never touches them or any attribute it does not name.
1905
+ # @param storefront_oid [Integer]
1906
+ # @param item_attribute_batch_request [SfvbItemAttributeBatchRequest] The rows
1907
+ # @param [Hash] opts the optional parameters
1908
+ # @return [Array<(SfvbItemAttributeBatchResponse, Integer, Hash)>] SfvbItemAttributeBatchResponse data, response status code and response headers
1909
+ def dry_run_sfvb_item_attribute_batch_with_http_info(storefront_oid, item_attribute_batch_request, opts = {})
1910
+ if @api_client.config.debugging
1911
+ @api_client.config.logger.debug 'Calling API: SfvbApi.dry_run_sfvb_item_attribute_batch ...'
1912
+ end
1913
+ # verify the required parameter 'storefront_oid' is set
1914
+ if @api_client.config.client_side_validation && storefront_oid.nil?
1915
+ fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling SfvbApi.dry_run_sfvb_item_attribute_batch"
1916
+ end
1917
+ # verify the required parameter 'item_attribute_batch_request' is set
1918
+ if @api_client.config.client_side_validation && item_attribute_batch_request.nil?
1919
+ fail ArgumentError, "Missing the required parameter 'item_attribute_batch_request' when calling SfvbApi.dry_run_sfvb_item_attribute_batch"
1920
+ end
1921
+ # resource path
1922
+ local_var_path = '/sfvb/storefronts/{storefront_oid}/items/attributes/batch/dry_run'.sub('{' + 'storefront_oid' + '}', CGI.escape(storefront_oid.to_s))
1923
+
1924
+ # query parameters
1925
+ query_params = opts[:query_params] || {}
1926
+
1927
+ # header parameters
1928
+ header_params = opts[:header_params] || {}
1929
+ header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
1930
+ # HTTP header 'Accept' (if needed)
1931
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
1932
+ # HTTP header 'Content-Type'
1933
+ content_type = @api_client.select_header_content_type(['application/json; charset=UTF-8'])
1934
+ if !content_type.nil?
1935
+ header_params['Content-Type'] = content_type
1936
+ end
1937
+
1938
+ # form parameters
1939
+ form_params = opts[:form_params] || {}
1940
+
1941
+ # http body (model)
1942
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(item_attribute_batch_request)
1943
+
1944
+ # return_type
1945
+ return_type = opts[:debug_return_type] || 'SfvbItemAttributeBatchResponse'
1946
+
1947
+ # auth_names
1948
+ auth_names = opts[:debug_auth_names] || ['ultraCartOauth', 'ultraCartSimpleApiKey']
1949
+
1950
+ new_options = opts.merge(
1951
+ :operation => :"SfvbApi.dry_run_sfvb_item_attribute_batch",
1952
+ :header_params => header_params,
1953
+ :query_params => query_params,
1954
+ :form_params => form_params,
1955
+ :body => post_body,
1956
+ :auth_names => auth_names,
1957
+ :return_type => return_type
1958
+ )
1959
+
1960
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
1961
+ if @api_client.config.debugging
1962
+ @api_client.config.logger.debug "API called: SfvbApi#dry_run_sfvb_item_attribute_batch\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1963
+ end
1964
+ return data, status_code, headers
1965
+ end
1966
+
1892
1967
  # Check a batch delete of redirect rules without writing it
1893
1968
  # Checks up to 5,000 rules by redirect_id and returns each one as deletable, stale (its hash_sha256 differs from the one sent) or not_found, with its current hash, source, target, status, type and note, and a plan_hash. Writes nothing. Rows may leave out hash_sha256; the result carries the current one to send when deleting.
1894
1969
  # @param storefront_oid [Integer]
@@ -2503,11 +2578,158 @@ module UltracartClient
2503
2578
  return data, status_code, headers
2504
2579
  end
2505
2580
 
2581
+ # Enable an upsell offer
2582
+ # Switches the offer on. The only way to switch one on - create and update refuse active true on an offer that is off. Needs sfvb_publish and the approval of the person who signed in the CLI, an approved upsell.enable request for this offer (see POST /sfvb/approvals). An offer that is already on is returned unchanged, and no approval is used.
2583
+ # @param storefront_oid [Integer]
2584
+ # @param upsell_offer_oid [Integer]
2585
+ # @param [Hash] opts the optional parameters
2586
+ # @option opts [String] :approval_id The approval_id of an approved upsell.enable request for this offer. Required when the offer is off. See POST /sfvb/approvals.
2587
+ # @return [SfvbUpsellOffer]
2588
+ def enable_sfvb_upsell_offer(storefront_oid, upsell_offer_oid, opts = {})
2589
+ data, _status_code, _headers = enable_sfvb_upsell_offer_with_http_info(storefront_oid, upsell_offer_oid, opts)
2590
+ data
2591
+ end
2592
+
2593
+ # Enable an upsell offer
2594
+ # Switches the offer on. The only way to switch one on - create and update refuse active true on an offer that is off. Needs sfvb_publish and the approval of the person who signed in the CLI, an approved upsell.enable request for this offer (see POST /sfvb/approvals). An offer that is already on is returned unchanged, and no approval is used.
2595
+ # @param storefront_oid [Integer]
2596
+ # @param upsell_offer_oid [Integer]
2597
+ # @param [Hash] opts the optional parameters
2598
+ # @option opts [String] :approval_id The approval_id of an approved upsell.enable request for this offer. Required when the offer is off. See POST /sfvb/approvals.
2599
+ # @return [Array<(SfvbUpsellOffer, Integer, Hash)>] SfvbUpsellOffer data, response status code and response headers
2600
+ def enable_sfvb_upsell_offer_with_http_info(storefront_oid, upsell_offer_oid, opts = {})
2601
+ if @api_client.config.debugging
2602
+ @api_client.config.logger.debug 'Calling API: SfvbApi.enable_sfvb_upsell_offer ...'
2603
+ end
2604
+ # verify the required parameter 'storefront_oid' is set
2605
+ if @api_client.config.client_side_validation && storefront_oid.nil?
2606
+ fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling SfvbApi.enable_sfvb_upsell_offer"
2607
+ end
2608
+ # verify the required parameter 'upsell_offer_oid' is set
2609
+ if @api_client.config.client_side_validation && upsell_offer_oid.nil?
2610
+ fail ArgumentError, "Missing the required parameter 'upsell_offer_oid' when calling SfvbApi.enable_sfvb_upsell_offer"
2611
+ end
2612
+ # resource path
2613
+ local_var_path = '/sfvb/storefronts/{storefront_oid}/upsell_offers/{upsell_offer_oid}/enable'.sub('{' + 'storefront_oid' + '}', CGI.escape(storefront_oid.to_s)).sub('{' + 'upsell_offer_oid' + '}', CGI.escape(upsell_offer_oid.to_s))
2614
+
2615
+ # query parameters
2616
+ query_params = opts[:query_params] || {}
2617
+
2618
+ # header parameters
2619
+ header_params = opts[:header_params] || {}
2620
+ header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
2621
+ # HTTP header 'Accept' (if needed)
2622
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
2623
+ header_params[:'Approval-Id'] = opts[:'approval_id'] if !opts[:'approval_id'].nil?
2624
+
2625
+ # form parameters
2626
+ form_params = opts[:form_params] || {}
2627
+
2628
+ # http body (model)
2629
+ post_body = opts[:debug_body]
2630
+
2631
+ # return_type
2632
+ return_type = opts[:debug_return_type] || 'SfvbUpsellOffer'
2633
+
2634
+ # auth_names
2635
+ auth_names = opts[:debug_auth_names] || ['ultraCartOauth', 'ultraCartSimpleApiKey']
2636
+
2637
+ new_options = opts.merge(
2638
+ :operation => :"SfvbApi.enable_sfvb_upsell_offer",
2639
+ :header_params => header_params,
2640
+ :query_params => query_params,
2641
+ :form_params => form_params,
2642
+ :body => post_body,
2643
+ :auth_names => auth_names,
2644
+ :return_type => return_type
2645
+ )
2646
+
2647
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
2648
+ if @api_client.config.debugging
2649
+ @api_client.config.logger.debug "API called: SfvbApi#enable_sfvb_upsell_offer\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
2650
+ end
2651
+ return data, status_code, headers
2652
+ end
2653
+
2654
+ # Enable an upsell path
2655
+ # Switches the path on, so it starts running. The only way to switch one on - create, update and unarchive refuse to. An archived path is refused; unarchive it first. Needs sfvb_publish and the approval of the person who signed in the CLI, an approved upsell.enable request for this path (see POST /sfvb/approvals). A path that is already on is returned unchanged, and no approval is used.
2656
+ # @param storefront_oid [Integer]
2657
+ # @param upsell_path_oid [Integer]
2658
+ # @param [Hash] opts the optional parameters
2659
+ # @option opts [String] :approval_id The approval_id of an approved upsell.enable request for this path. Required when the path is off. See POST /sfvb/approvals.
2660
+ # @return [SfvbUpsellPath]
2661
+ def enable_sfvb_upsell_path(storefront_oid, upsell_path_oid, opts = {})
2662
+ data, _status_code, _headers = enable_sfvb_upsell_path_with_http_info(storefront_oid, upsell_path_oid, opts)
2663
+ data
2664
+ end
2665
+
2666
+ # Enable an upsell path
2667
+ # Switches the path on, so it starts running. The only way to switch one on - create, update and unarchive refuse to. An archived path is refused; unarchive it first. Needs sfvb_publish and the approval of the person who signed in the CLI, an approved upsell.enable request for this path (see POST /sfvb/approvals). A path that is already on is returned unchanged, and no approval is used.
2668
+ # @param storefront_oid [Integer]
2669
+ # @param upsell_path_oid [Integer]
2670
+ # @param [Hash] opts the optional parameters
2671
+ # @option opts [String] :approval_id The approval_id of an approved upsell.enable request for this path. Required when the path is off. See POST /sfvb/approvals.
2672
+ # @return [Array<(SfvbUpsellPath, Integer, Hash)>] SfvbUpsellPath data, response status code and response headers
2673
+ def enable_sfvb_upsell_path_with_http_info(storefront_oid, upsell_path_oid, opts = {})
2674
+ if @api_client.config.debugging
2675
+ @api_client.config.logger.debug 'Calling API: SfvbApi.enable_sfvb_upsell_path ...'
2676
+ end
2677
+ # verify the required parameter 'storefront_oid' is set
2678
+ if @api_client.config.client_side_validation && storefront_oid.nil?
2679
+ fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling SfvbApi.enable_sfvb_upsell_path"
2680
+ end
2681
+ # verify the required parameter 'upsell_path_oid' is set
2682
+ if @api_client.config.client_side_validation && upsell_path_oid.nil?
2683
+ fail ArgumentError, "Missing the required parameter 'upsell_path_oid' when calling SfvbApi.enable_sfvb_upsell_path"
2684
+ end
2685
+ # resource path
2686
+ local_var_path = '/sfvb/storefronts/{storefront_oid}/upsell_paths/{upsell_path_oid}/enable'.sub('{' + 'storefront_oid' + '}', CGI.escape(storefront_oid.to_s)).sub('{' + 'upsell_path_oid' + '}', CGI.escape(upsell_path_oid.to_s))
2687
+
2688
+ # query parameters
2689
+ query_params = opts[:query_params] || {}
2690
+
2691
+ # header parameters
2692
+ header_params = opts[:header_params] || {}
2693
+ header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
2694
+ # HTTP header 'Accept' (if needed)
2695
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
2696
+ header_params[:'Approval-Id'] = opts[:'approval_id'] if !opts[:'approval_id'].nil?
2697
+
2698
+ # form parameters
2699
+ form_params = opts[:form_params] || {}
2700
+
2701
+ # http body (model)
2702
+ post_body = opts[:debug_body]
2703
+
2704
+ # return_type
2705
+ return_type = opts[:debug_return_type] || 'SfvbUpsellPath'
2706
+
2707
+ # auth_names
2708
+ auth_names = opts[:debug_auth_names] || ['ultraCartOauth', 'ultraCartSimpleApiKey']
2709
+
2710
+ new_options = opts.merge(
2711
+ :operation => :"SfvbApi.enable_sfvb_upsell_path",
2712
+ :header_params => header_params,
2713
+ :query_params => query_params,
2714
+ :form_params => form_params,
2715
+ :body => post_body,
2716
+ :auth_names => auth_names,
2717
+ :return_type => return_type
2718
+ )
2719
+
2720
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
2721
+ if @api_client.config.debugging
2722
+ @api_client.config.logger.debug "API called: SfvbApi#enable_sfvb_upsell_path\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
2723
+ end
2724
+ return data, status_code, headers
2725
+ end
2726
+
2506
2727
  # End an experiment
2507
- # Ends a running experiment. With winner_variation_number the winner gets every visitor, including visitors already assigned to another variation, and a page experiment's winning content is promoted into the page by the completion job on its next run, which also emails the merchant. Without a winner a page experiment's id is cleared from its page body so the page shows variation 0, and a url experiment sends everyone to variation 0. Always needs sfvb_publish.
2728
+ # Ends a running experiment. With winner_variation_number the winner gets every visitor, including visitors already assigned to another variation, and a page experiment's winning content is promoted into the page by the completion job on its next run, which also emails the merchant. Without a winner a page experiment's id is cleared from its page body so the page shows variation 0, and a url experiment sends everyone to variation 0. Always needs sfvb_publish, and the approval of the person who signed in the CLI - an approved experiment.end request for this experiment and winner. An end with a winner always needs a fresh authenticator code; an end without a winner can be covered by the person's approval session (see POST /sfvb/approvals).
2508
2729
  # @param storefront_oid [Integer]
2509
2730
  # @param experiment_oid [Integer]
2510
2731
  # @param [Hash] opts the optional parameters
2732
+ # @option opts [String] :approval_id The approval_id of an approved experiment.end request for this experiment and winner. Required. See POST /sfvb/approvals.
2511
2733
  # @option opts [SfvbExperimentEndRequest] :experiment_end_request The winner, if any
2512
2734
  # @return [SfvbExperiment]
2513
2735
  def end_sfvb_experiment(storefront_oid, experiment_oid, opts = {})
@@ -2516,10 +2738,11 @@ module UltracartClient
2516
2738
  end
2517
2739
 
2518
2740
  # End an experiment
2519
- # Ends a running experiment. With winner_variation_number the winner gets every visitor, including visitors already assigned to another variation, and a page experiment&#39;s winning content is promoted into the page by the completion job on its next run, which also emails the merchant. Without a winner a page experiment&#39;s id is cleared from its page body so the page shows variation 0, and a url experiment sends everyone to variation 0. Always needs sfvb_publish.
2741
+ # Ends a running experiment. With winner_variation_number the winner gets every visitor, including visitors already assigned to another variation, and a page experiment&#39;s winning content is promoted into the page by the completion job on its next run, which also emails the merchant. Without a winner a page experiment&#39;s id is cleared from its page body so the page shows variation 0, and a url experiment sends everyone to variation 0. Always needs sfvb_publish, and the approval of the person who signed in the CLI - an approved experiment.end request for this experiment and winner. An end with a winner always needs a fresh authenticator code; an end without a winner can be covered by the person&#39;s approval session (see POST /sfvb/approvals).
2520
2742
  # @param storefront_oid [Integer]
2521
2743
  # @param experiment_oid [Integer]
2522
2744
  # @param [Hash] opts the optional parameters
2745
+ # @option opts [String] :approval_id The approval_id of an approved experiment.end request for this experiment and winner. Required. See POST /sfvb/approvals.
2523
2746
  # @option opts [SfvbExperimentEndRequest] :experiment_end_request The winner, if any
2524
2747
  # @return [Array<(SfvbExperiment, Integer, Hash)>] SfvbExperiment data, response status code and response headers
2525
2748
  def end_sfvb_experiment_with_http_info(storefront_oid, experiment_oid, opts = {})
@@ -2550,6 +2773,7 @@ module UltracartClient
2550
2773
  if !content_type.nil?
2551
2774
  header_params['Content-Type'] = content_type
2552
2775
  end
2776
+ header_params[:'Approval-Id'] = opts[:'approval_id'] if !opts[:'approval_id'].nil?
2553
2777
 
2554
2778
  # form parameters
2555
2779
  form_params = opts[:form_params] || {}
@@ -3131,6 +3355,138 @@ module UltracartClient
3131
3355
  return data, status_code, headers
3132
3356
  end
3133
3357
 
3358
+ # Replay events
3359
+ # The signed-in person's events after the cursor, oldest first. Events are kept 72 hours; an older cursor returns resync_required, and then the caller re-lists what it was waiting on. Events about one sign-in's requests, such as approvals, are only returned to that sign-in. limit is 1 to 500, default 100.
3360
+ # @param [Hash] opts the optional parameters
3361
+ # @option opts [String] :after Return events after this event_id. Leave it out for every event kept.
3362
+ # @option opts [Integer] :storefront_oid Only events about this storefront, plus merchant-level ones.
3363
+ # @option opts [Integer] :limit At most this many events, 1 to 500.
3364
+ # @return [SfvbEventsResponse]
3365
+ def get_sfvb_events(opts = {})
3366
+ data, _status_code, _headers = get_sfvb_events_with_http_info(opts)
3367
+ data
3368
+ end
3369
+
3370
+ # Replay events
3371
+ # The signed-in person&#39;s events after the cursor, oldest first. Events are kept 72 hours; an older cursor returns resync_required, and then the caller re-lists what it was waiting on. Events about one sign-in&#39;s requests, such as approvals, are only returned to that sign-in. limit is 1 to 500, default 100.
3372
+ # @param [Hash] opts the optional parameters
3373
+ # @option opts [String] :after Return events after this event_id. Leave it out for every event kept.
3374
+ # @option opts [Integer] :storefront_oid Only events about this storefront, plus merchant-level ones.
3375
+ # @option opts [Integer] :limit At most this many events, 1 to 500.
3376
+ # @return [Array<(SfvbEventsResponse, Integer, Hash)>] SfvbEventsResponse data, response status code and response headers
3377
+ def get_sfvb_events_with_http_info(opts = {})
3378
+ if @api_client.config.debugging
3379
+ @api_client.config.logger.debug 'Calling API: SfvbApi.get_sfvb_events ...'
3380
+ end
3381
+ # resource path
3382
+ local_var_path = '/sfvb/events'
3383
+
3384
+ # query parameters
3385
+ query_params = opts[:query_params] || {}
3386
+ query_params[:'after'] = opts[:'after'] if !opts[:'after'].nil?
3387
+ query_params[:'storefront_oid'] = opts[:'storefront_oid'] if !opts[:'storefront_oid'].nil?
3388
+ query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
3389
+
3390
+ # header parameters
3391
+ header_params = opts[:header_params] || {}
3392
+ header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
3393
+ # HTTP header 'Accept' (if needed)
3394
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
3395
+
3396
+ # form parameters
3397
+ form_params = opts[:form_params] || {}
3398
+
3399
+ # http body (model)
3400
+ post_body = opts[:debug_body]
3401
+
3402
+ # return_type
3403
+ return_type = opts[:debug_return_type] || 'SfvbEventsResponse'
3404
+
3405
+ # auth_names
3406
+ auth_names = opts[:debug_auth_names] || ['ultraCartOauth', 'ultraCartSimpleApiKey']
3407
+
3408
+ new_options = opts.merge(
3409
+ :operation => :"SfvbApi.get_sfvb_events",
3410
+ :header_params => header_params,
3411
+ :query_params => query_params,
3412
+ :form_params => form_params,
3413
+ :body => post_body,
3414
+ :auth_names => auth_names,
3415
+ :return_type => return_type
3416
+ )
3417
+
3418
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
3419
+ if @api_client.config.debugging
3420
+ @api_client.config.logger.debug "API called: SfvbApi#get_sfvb_events\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
3421
+ end
3422
+ return data, status_code, headers
3423
+ end
3424
+
3425
+ # Open the event stream
3426
+ # Returns a websocket URL and a single-use token, valid for 5 minutes, for the signed-in person's event stream. Events are thin hints, type and ids only, and the stream is at most once. Re-read the object before acting, and after every reconnect replay from the last event_id with GET events. Send ping messages to keep the connection open, and reconnect with a new token before two hours. Requires a token that resolves to a user, so use the device authorization flow.
3427
+ # @param [Hash] opts the optional parameters
3428
+ # @option opts [SfvbEventsAuthRequest] :events_auth_request Optional storefront filter
3429
+ # @return [SfvbEventsAuthResponse]
3430
+ def get_sfvb_events_authorization(opts = {})
3431
+ data, _status_code, _headers = get_sfvb_events_authorization_with_http_info(opts)
3432
+ data
3433
+ end
3434
+
3435
+ # Open the event stream
3436
+ # Returns a websocket URL and a single-use token, valid for 5 minutes, for the signed-in person&#39;s event stream. Events are thin hints, type and ids only, and the stream is at most once. Re-read the object before acting, and after every reconnect replay from the last event_id with GET events. Send ping messages to keep the connection open, and reconnect with a new token before two hours. Requires a token that resolves to a user, so use the device authorization flow.
3437
+ # @param [Hash] opts the optional parameters
3438
+ # @option opts [SfvbEventsAuthRequest] :events_auth_request Optional storefront filter
3439
+ # @return [Array<(SfvbEventsAuthResponse, Integer, Hash)>] SfvbEventsAuthResponse data, response status code and response headers
3440
+ def get_sfvb_events_authorization_with_http_info(opts = {})
3441
+ if @api_client.config.debugging
3442
+ @api_client.config.logger.debug 'Calling API: SfvbApi.get_sfvb_events_authorization ...'
3443
+ end
3444
+ # resource path
3445
+ local_var_path = '/sfvb/events/auth'
3446
+
3447
+ # query parameters
3448
+ query_params = opts[:query_params] || {}
3449
+
3450
+ # header parameters
3451
+ header_params = opts[:header_params] || {}
3452
+ header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
3453
+ # HTTP header 'Accept' (if needed)
3454
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
3455
+ # HTTP header 'Content-Type'
3456
+ content_type = @api_client.select_header_content_type(['application/json; charset=UTF-8'])
3457
+ if !content_type.nil?
3458
+ header_params['Content-Type'] = content_type
3459
+ end
3460
+
3461
+ # form parameters
3462
+ form_params = opts[:form_params] || {}
3463
+
3464
+ # http body (model)
3465
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(opts[:'events_auth_request'])
3466
+
3467
+ # return_type
3468
+ return_type = opts[:debug_return_type] || 'SfvbEventsAuthResponse'
3469
+
3470
+ # auth_names
3471
+ auth_names = opts[:debug_auth_names] || ['ultraCartOauth', 'ultraCartSimpleApiKey']
3472
+
3473
+ new_options = opts.merge(
3474
+ :operation => :"SfvbApi.get_sfvb_events_authorization",
3475
+ :header_params => header_params,
3476
+ :query_params => query_params,
3477
+ :form_params => form_params,
3478
+ :body => post_body,
3479
+ :auth_names => auth_names,
3480
+ :return_type => return_type
3481
+ )
3482
+
3483
+ data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options)
3484
+ if @api_client.config.debugging
3485
+ @api_client.config.logger.debug "API called: SfvbApi#get_sfvb_events_authorization\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
3486
+ end
3487
+ return data, status_code, headers
3488
+ end
3489
+
3134
3490
  # Read one experiment and its statistics
3135
3491
  # The experiment, its variations and their statistics, and with daily=true each variation's daily rows. p95_sessions_needed is estimated only after 1000 sessions, and sessions_needed_computed_dts says when. For a url experiment, router_url is the address visitors must enter through.
3136
3492
  # @param storefront_oid [Integer]
@@ -3630,22 +3986,165 @@ module UltracartClient
3630
3986
  # @return [Array<(SfvbI18nMessage, Integer, Hash)>] SfvbI18nMessage data, response status code and response headers
3631
3987
  def get_sfvb_i18n_message_with_http_info(storefront_oid, key, opts = {})
3632
3988
  if @api_client.config.debugging
3633
- @api_client.config.logger.debug 'Calling API: SfvbApi.get_sfvb_i18n_message ...'
3989
+ @api_client.config.logger.debug 'Calling API: SfvbApi.get_sfvb_i18n_message ...'
3990
+ end
3991
+ # verify the required parameter 'storefront_oid' is set
3992
+ if @api_client.config.client_side_validation && storefront_oid.nil?
3993
+ fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling SfvbApi.get_sfvb_i18n_message"
3994
+ end
3995
+ # verify the required parameter 'key' is set
3996
+ if @api_client.config.client_side_validation && key.nil?
3997
+ fail ArgumentError, "Missing the required parameter 'key' when calling SfvbApi.get_sfvb_i18n_message"
3998
+ end
3999
+ # resource path
4000
+ local_var_path = '/sfvb/storefronts/{storefront_oid}/i18n/messages/{key}'.sub('{' + 'storefront_oid' + '}', CGI.escape(storefront_oid.to_s)).sub('{' + 'key' + '}', CGI.escape(key.to_s))
4001
+
4002
+ # query parameters
4003
+ query_params = opts[:query_params] || {}
4004
+ query_params[:'theme_oid'] = opts[:'theme_oid'] if !opts[:'theme_oid'].nil?
4005
+
4006
+ # header parameters
4007
+ header_params = opts[:header_params] || {}
4008
+ header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
4009
+ # HTTP header 'Accept' (if needed)
4010
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
4011
+
4012
+ # form parameters
4013
+ form_params = opts[:form_params] || {}
4014
+
4015
+ # http body (model)
4016
+ post_body = opts[:debug_body]
4017
+
4018
+ # return_type
4019
+ return_type = opts[:debug_return_type] || 'SfvbI18nMessage'
4020
+
4021
+ # auth_names
4022
+ auth_names = opts[:debug_auth_names] || ['ultraCartOauth', 'ultraCartSimpleApiKey']
4023
+
4024
+ new_options = opts.merge(
4025
+ :operation => :"SfvbApi.get_sfvb_i18n_message",
4026
+ :header_params => header_params,
4027
+ :query_params => query_params,
4028
+ :form_params => form_params,
4029
+ :body => post_body,
4030
+ :auth_names => auth_names,
4031
+ :return_type => return_type
4032
+ )
4033
+
4034
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
4035
+ if @api_client.config.debugging
4036
+ @api_client.config.logger.debug "API called: SfvbApi#get_sfvb_i18n_message\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
4037
+ end
4038
+ return data, status_code, headers
4039
+ end
4040
+
4041
+ # Read where a message's translations come from
4042
+ # For one message, each enabled language's text and whether a shopper sees a hand translation, a machine translation, one still queued (pending) or none yet. Nothing is generated by reading it.
4043
+ # @param storefront_oid [Integer]
4044
+ # @param key [String]
4045
+ # @param [Hash] opts the optional parameters
4046
+ # @option opts [Integer] :theme_oid
4047
+ # @return [SfvbI18nMachineTranslationsResponse]
4048
+ def get_sfvb_i18n_message_machine_translations(storefront_oid, key, opts = {})
4049
+ data, _status_code, _headers = get_sfvb_i18n_message_machine_translations_with_http_info(storefront_oid, key, opts)
4050
+ data
4051
+ end
4052
+
4053
+ # Read where a message&#39;s translations come from
4054
+ # For one message, each enabled language&#39;s text and whether a shopper sees a hand translation, a machine translation, one still queued (pending) or none yet. Nothing is generated by reading it.
4055
+ # @param storefront_oid [Integer]
4056
+ # @param key [String]
4057
+ # @param [Hash] opts the optional parameters
4058
+ # @option opts [Integer] :theme_oid
4059
+ # @return [Array<(SfvbI18nMachineTranslationsResponse, Integer, Hash)>] SfvbI18nMachineTranslationsResponse data, response status code and response headers
4060
+ def get_sfvb_i18n_message_machine_translations_with_http_info(storefront_oid, key, opts = {})
4061
+ if @api_client.config.debugging
4062
+ @api_client.config.logger.debug 'Calling API: SfvbApi.get_sfvb_i18n_message_machine_translations ...'
4063
+ end
4064
+ # verify the required parameter 'storefront_oid' is set
4065
+ if @api_client.config.client_side_validation && storefront_oid.nil?
4066
+ fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling SfvbApi.get_sfvb_i18n_message_machine_translations"
4067
+ end
4068
+ # verify the required parameter 'key' is set
4069
+ if @api_client.config.client_side_validation && key.nil?
4070
+ fail ArgumentError, "Missing the required parameter 'key' when calling SfvbApi.get_sfvb_i18n_message_machine_translations"
4071
+ end
4072
+ # resource path
4073
+ local_var_path = '/sfvb/storefronts/{storefront_oid}/i18n/messages/{key}/machine_translations'.sub('{' + 'storefront_oid' + '}', CGI.escape(storefront_oid.to_s)).sub('{' + 'key' + '}', CGI.escape(key.to_s))
4074
+
4075
+ # query parameters
4076
+ query_params = opts[:query_params] || {}
4077
+ query_params[:'theme_oid'] = opts[:'theme_oid'] if !opts[:'theme_oid'].nil?
4078
+
4079
+ # header parameters
4080
+ header_params = opts[:header_params] || {}
4081
+ header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
4082
+ # HTTP header 'Accept' (if needed)
4083
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
4084
+
4085
+ # form parameters
4086
+ form_params = opts[:form_params] || {}
4087
+
4088
+ # http body (model)
4089
+ post_body = opts[:debug_body]
4090
+
4091
+ # return_type
4092
+ return_type = opts[:debug_return_type] || 'SfvbI18nMachineTranslationsResponse'
4093
+
4094
+ # auth_names
4095
+ auth_names = opts[:debug_auth_names] || ['ultraCartOauth', 'ultraCartSimpleApiKey']
4096
+
4097
+ new_options = opts.merge(
4098
+ :operation => :"SfvbApi.get_sfvb_i18n_message_machine_translations",
4099
+ :header_params => header_params,
4100
+ :query_params => query_params,
4101
+ :form_params => form_params,
4102
+ :body => post_body,
4103
+ :auth_names => auth_names,
4104
+ :return_type => return_type
4105
+ )
4106
+
4107
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
4108
+ if @api_client.config.debugging
4109
+ @api_client.config.logger.debug "API called: SfvbApi#get_sfvb_i18n_message_machine_translations\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
4110
+ end
4111
+ return data, status_code, headers
4112
+ end
4113
+
4114
+ # Read an item's storefront facing content
4115
+ # The attributes, images, title, description and search metadata a StoreFront element can render, reconciled against the templates behind the pages this item sits on. An attribute a template declares but nothing has set comes back present with an empty value, which is how you discover what the page is asking for. Pricing and related items have their own calls, items/pricing and items/related. Shipping, inventory, tax, variants and kit structure stay with the item API. Address by merchant_item_id, the value data-context-item-id carries, or by merchant_item_oid.
4116
+ # @param storefront_oid [Integer]
4117
+ # @param [Hash] opts the optional parameters
4118
+ # @option opts [String] :merchant_item_id The merchant item id, as a storefront carries it
4119
+ # @option opts [Integer] :merchant_item_oid The item oid. Send this or merchant_item_id, not both
4120
+ # @return [SfvbItemResponse]
4121
+ def get_sfvb_item(storefront_oid, opts = {})
4122
+ data, _status_code, _headers = get_sfvb_item_with_http_info(storefront_oid, opts)
4123
+ data
4124
+ end
4125
+
4126
+ # Read an item&#39;s storefront facing content
4127
+ # The attributes, images, title, description and search metadata a StoreFront element can render, reconciled against the templates behind the pages this item sits on. An attribute a template declares but nothing has set comes back present with an empty value, which is how you discover what the page is asking for. Pricing and related items have their own calls, items/pricing and items/related. Shipping, inventory, tax, variants and kit structure stay with the item API. Address by merchant_item_id, the value data-context-item-id carries, or by merchant_item_oid.
4128
+ # @param storefront_oid [Integer]
4129
+ # @param [Hash] opts the optional parameters
4130
+ # @option opts [String] :merchant_item_id The merchant item id, as a storefront carries it
4131
+ # @option opts [Integer] :merchant_item_oid The item oid. Send this or merchant_item_id, not both
4132
+ # @return [Array<(SfvbItemResponse, Integer, Hash)>] SfvbItemResponse data, response status code and response headers
4133
+ def get_sfvb_item_with_http_info(storefront_oid, opts = {})
4134
+ if @api_client.config.debugging
4135
+ @api_client.config.logger.debug 'Calling API: SfvbApi.get_sfvb_item ...'
3634
4136
  end
3635
4137
  # verify the required parameter 'storefront_oid' is set
3636
4138
  if @api_client.config.client_side_validation && storefront_oid.nil?
3637
- fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling SfvbApi.get_sfvb_i18n_message"
3638
- end
3639
- # verify the required parameter 'key' is set
3640
- if @api_client.config.client_side_validation && key.nil?
3641
- fail ArgumentError, "Missing the required parameter 'key' when calling SfvbApi.get_sfvb_i18n_message"
4139
+ fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling SfvbApi.get_sfvb_item"
3642
4140
  end
3643
4141
  # resource path
3644
- local_var_path = '/sfvb/storefronts/{storefront_oid}/i18n/messages/{key}'.sub('{' + 'storefront_oid' + '}', CGI.escape(storefront_oid.to_s)).sub('{' + 'key' + '}', CGI.escape(key.to_s))
4142
+ local_var_path = '/sfvb/storefronts/{storefront_oid}/items'.sub('{' + 'storefront_oid' + '}', CGI.escape(storefront_oid.to_s))
3645
4143
 
3646
4144
  # query parameters
3647
4145
  query_params = opts[:query_params] || {}
3648
- query_params[:'theme_oid'] = opts[:'theme_oid'] if !opts[:'theme_oid'].nil?
4146
+ query_params[:'merchant_item_id'] = opts[:'merchant_item_id'] if !opts[:'merchant_item_id'].nil?
4147
+ query_params[:'merchant_item_oid'] = opts[:'merchant_item_oid'] if !opts[:'merchant_item_oid'].nil?
3649
4148
 
3650
4149
  # header parameters
3651
4150
  header_params = opts[:header_params] || {}
@@ -3660,13 +4159,13 @@ module UltracartClient
3660
4159
  post_body = opts[:debug_body]
3661
4160
 
3662
4161
  # return_type
3663
- return_type = opts[:debug_return_type] || 'SfvbI18nMessage'
4162
+ return_type = opts[:debug_return_type] || 'SfvbItemResponse'
3664
4163
 
3665
4164
  # auth_names
3666
4165
  auth_names = opts[:debug_auth_names] || ['ultraCartOauth', 'ultraCartSimpleApiKey']
3667
4166
 
3668
4167
  new_options = opts.merge(
3669
- :operation => :"SfvbApi.get_sfvb_i18n_message",
4168
+ :operation => :"SfvbApi.get_sfvb_item",
3670
4169
  :header_params => header_params,
3671
4170
  :query_params => query_params,
3672
4171
  :form_params => form_params,
@@ -3677,48 +4176,45 @@ module UltracartClient
3677
4176
 
3678
4177
  data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
3679
4178
  if @api_client.config.debugging
3680
- @api_client.config.logger.debug "API called: SfvbApi#get_sfvb_i18n_message\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
4179
+ @api_client.config.logger.debug "API called: SfvbApi#get_sfvb_item\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
3681
4180
  end
3682
4181
  return data, status_code, headers
3683
4182
  end
3684
4183
 
3685
- # Read where a message's translations come from
3686
- # For one message, each enabled language's text and whether a shopper sees a hand translation, a machine translation, one still queued (pending) or none yet. Nothing is generated by reading it.
4184
+ # Read what an item charges
4185
+ # Price, sale (with whether it applies now), MSRP and retail volume pricing - what itemprice, itemsale, itemmsrp, itemsavings and itemvolumediscounts render - with a hash_sha256 to send as If-Match when changing it. Wholesale pricing tiers are not shown. Address by merchant_item_id or merchant_item_oid.
3687
4186
  # @param storefront_oid [Integer]
3688
- # @param key [String]
3689
4187
  # @param [Hash] opts the optional parameters
3690
- # @option opts [Integer] :theme_oid
3691
- # @return [SfvbI18nMachineTranslationsResponse]
3692
- def get_sfvb_i18n_message_machine_translations(storefront_oid, key, opts = {})
3693
- data, _status_code, _headers = get_sfvb_i18n_message_machine_translations_with_http_info(storefront_oid, key, opts)
4188
+ # @option opts [String] :merchant_item_id
4189
+ # @option opts [Integer] :merchant_item_oid
4190
+ # @return [SfvbItemPricing]
4191
+ def get_sfvb_item_pricing(storefront_oid, opts = {})
4192
+ data, _status_code, _headers = get_sfvb_item_pricing_with_http_info(storefront_oid, opts)
3694
4193
  data
3695
4194
  end
3696
4195
 
3697
- # Read where a message&#39;s translations come from
3698
- # For one message, each enabled language&#39;s text and whether a shopper sees a hand translation, a machine translation, one still queued (pending) or none yet. Nothing is generated by reading it.
4196
+ # Read what an item charges
4197
+ # Price, sale (with whether it applies now), MSRP and retail volume pricing - what itemprice, itemsale, itemmsrp, itemsavings and itemvolumediscounts render - with a hash_sha256 to send as If-Match when changing it. Wholesale pricing tiers are not shown. Address by merchant_item_id or merchant_item_oid.
3699
4198
  # @param storefront_oid [Integer]
3700
- # @param key [String]
3701
4199
  # @param [Hash] opts the optional parameters
3702
- # @option opts [Integer] :theme_oid
3703
- # @return [Array<(SfvbI18nMachineTranslationsResponse, Integer, Hash)>] SfvbI18nMachineTranslationsResponse data, response status code and response headers
3704
- def get_sfvb_i18n_message_machine_translations_with_http_info(storefront_oid, key, opts = {})
4200
+ # @option opts [String] :merchant_item_id
4201
+ # @option opts [Integer] :merchant_item_oid
4202
+ # @return [Array<(SfvbItemPricing, Integer, Hash)>] SfvbItemPricing data, response status code and response headers
4203
+ def get_sfvb_item_pricing_with_http_info(storefront_oid, opts = {})
3705
4204
  if @api_client.config.debugging
3706
- @api_client.config.logger.debug 'Calling API: SfvbApi.get_sfvb_i18n_message_machine_translations ...'
4205
+ @api_client.config.logger.debug 'Calling API: SfvbApi.get_sfvb_item_pricing ...'
3707
4206
  end
3708
4207
  # verify the required parameter 'storefront_oid' is set
3709
4208
  if @api_client.config.client_side_validation && storefront_oid.nil?
3710
- fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling SfvbApi.get_sfvb_i18n_message_machine_translations"
3711
- end
3712
- # verify the required parameter 'key' is set
3713
- if @api_client.config.client_side_validation && key.nil?
3714
- fail ArgumentError, "Missing the required parameter 'key' when calling SfvbApi.get_sfvb_i18n_message_machine_translations"
4209
+ fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling SfvbApi.get_sfvb_item_pricing"
3715
4210
  end
3716
4211
  # resource path
3717
- local_var_path = '/sfvb/storefronts/{storefront_oid}/i18n/messages/{key}/machine_translations'.sub('{' + 'storefront_oid' + '}', CGI.escape(storefront_oid.to_s)).sub('{' + 'key' + '}', CGI.escape(key.to_s))
4212
+ local_var_path = '/sfvb/storefronts/{storefront_oid}/items/pricing'.sub('{' + 'storefront_oid' + '}', CGI.escape(storefront_oid.to_s))
3718
4213
 
3719
4214
  # query parameters
3720
4215
  query_params = opts[:query_params] || {}
3721
- query_params[:'theme_oid'] = opts[:'theme_oid'] if !opts[:'theme_oid'].nil?
4216
+ query_params[:'merchant_item_id'] = opts[:'merchant_item_id'] if !opts[:'merchant_item_id'].nil?
4217
+ query_params[:'merchant_item_oid'] = opts[:'merchant_item_oid'] if !opts[:'merchant_item_oid'].nil?
3722
4218
 
3723
4219
  # header parameters
3724
4220
  header_params = opts[:header_params] || {}
@@ -3733,13 +4229,13 @@ module UltracartClient
3733
4229
  post_body = opts[:debug_body]
3734
4230
 
3735
4231
  # return_type
3736
- return_type = opts[:debug_return_type] || 'SfvbI18nMachineTranslationsResponse'
4232
+ return_type = opts[:debug_return_type] || 'SfvbItemPricing'
3737
4233
 
3738
4234
  # auth_names
3739
4235
  auth_names = opts[:debug_auth_names] || ['ultraCartOauth', 'ultraCartSimpleApiKey']
3740
4236
 
3741
4237
  new_options = opts.merge(
3742
- :operation => :"SfvbApi.get_sfvb_i18n_message_machine_translations",
4238
+ :operation => :"SfvbApi.get_sfvb_item_pricing",
3743
4239
  :header_params => header_params,
3744
4240
  :query_params => query_params,
3745
4241
  :form_params => form_params,
@@ -3750,40 +4246,40 @@ module UltracartClient
3750
4246
 
3751
4247
  data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
3752
4248
  if @api_client.config.debugging
3753
- @api_client.config.logger.debug "API called: SfvbApi#get_sfvb_i18n_message_machine_translations\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
4249
+ @api_client.config.logger.debug "API called: SfvbApi#get_sfvb_item_pricing\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
3754
4250
  end
3755
4251
  return data, status_code, headers
3756
4252
  end
3757
4253
 
3758
- # Read an item's storefront facing content
3759
- # The attributes, images, title, description and search metadata a StoreFront element can render, reconciled against the templates behind the pages this item sits on. An attribute a template declares but nothing has set comes back present with an empty value, which is how you discover what the page is asking for. Pricing, shipping, inventory, tax, variants and kit structure are not here because no element reads them; use the item API for those. Address by merchant_item_id, the value data-context-item-id carries, or by merchant_item_oid.
4254
+ # Read an item's related items
4255
+ # What itemrelateditemslist lists - the merchant's own related items (user, addon, complementary) and the ones UltraCart calculates (system), with a hash_sha256 to send as If-Match when changing them.
3760
4256
  # @param storefront_oid [Integer]
3761
4257
  # @param [Hash] opts the optional parameters
3762
- # @option opts [String] :merchant_item_id The merchant item id, as a storefront carries it
3763
- # @option opts [Integer] :merchant_item_oid The item oid. Send this or merchant_item_id, not both
3764
- # @return [SfvbItemResponse]
3765
- def get_sfvb_item(storefront_oid, opts = {})
3766
- data, _status_code, _headers = get_sfvb_item_with_http_info(storefront_oid, opts)
4258
+ # @option opts [String] :merchant_item_id
4259
+ # @option opts [Integer] :merchant_item_oid
4260
+ # @return [SfvbItemRelated]
4261
+ def get_sfvb_item_related(storefront_oid, opts = {})
4262
+ data, _status_code, _headers = get_sfvb_item_related_with_http_info(storefront_oid, opts)
3767
4263
  data
3768
4264
  end
3769
4265
 
3770
- # Read an item&#39;s storefront facing content
3771
- # The attributes, images, title, description and search metadata a StoreFront element can render, reconciled against the templates behind the pages this item sits on. An attribute a template declares but nothing has set comes back present with an empty value, which is how you discover what the page is asking for. Pricing, shipping, inventory, tax, variants and kit structure are not here because no element reads them; use the item API for those. Address by merchant_item_id, the value data-context-item-id carries, or by merchant_item_oid.
4266
+ # Read an item&#39;s related items
4267
+ # What itemrelateditemslist lists - the merchant&#39;s own related items (user, addon, complementary) and the ones UltraCart calculates (system), with a hash_sha256 to send as If-Match when changing them.
3772
4268
  # @param storefront_oid [Integer]
3773
4269
  # @param [Hash] opts the optional parameters
3774
- # @option opts [String] :merchant_item_id The merchant item id, as a storefront carries it
3775
- # @option opts [Integer] :merchant_item_oid The item oid. Send this or merchant_item_id, not both
3776
- # @return [Array<(SfvbItemResponse, Integer, Hash)>] SfvbItemResponse data, response status code and response headers
3777
- def get_sfvb_item_with_http_info(storefront_oid, opts = {})
4270
+ # @option opts [String] :merchant_item_id
4271
+ # @option opts [Integer] :merchant_item_oid
4272
+ # @return [Array<(SfvbItemRelated, Integer, Hash)>] SfvbItemRelated data, response status code and response headers
4273
+ def get_sfvb_item_related_with_http_info(storefront_oid, opts = {})
3778
4274
  if @api_client.config.debugging
3779
- @api_client.config.logger.debug 'Calling API: SfvbApi.get_sfvb_item ...'
4275
+ @api_client.config.logger.debug 'Calling API: SfvbApi.get_sfvb_item_related ...'
3780
4276
  end
3781
4277
  # verify the required parameter 'storefront_oid' is set
3782
4278
  if @api_client.config.client_side_validation && storefront_oid.nil?
3783
- fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling SfvbApi.get_sfvb_item"
4279
+ fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling SfvbApi.get_sfvb_item_related"
3784
4280
  end
3785
4281
  # resource path
3786
- local_var_path = '/sfvb/storefronts/{storefront_oid}/items'.sub('{' + 'storefront_oid' + '}', CGI.escape(storefront_oid.to_s))
4282
+ local_var_path = '/sfvb/storefronts/{storefront_oid}/items/related'.sub('{' + 'storefront_oid' + '}', CGI.escape(storefront_oid.to_s))
3787
4283
 
3788
4284
  # query parameters
3789
4285
  query_params = opts[:query_params] || {}
@@ -3803,13 +4299,13 @@ module UltracartClient
3803
4299
  post_body = opts[:debug_body]
3804
4300
 
3805
4301
  # return_type
3806
- return_type = opts[:debug_return_type] || 'SfvbItemResponse'
4302
+ return_type = opts[:debug_return_type] || 'SfvbItemRelated'
3807
4303
 
3808
4304
  # auth_names
3809
4305
  auth_names = opts[:debug_auth_names] || ['ultraCartOauth', 'ultraCartSimpleApiKey']
3810
4306
 
3811
4307
  new_options = opts.merge(
3812
- :operation => :"SfvbApi.get_sfvb_item",
4308
+ :operation => :"SfvbApi.get_sfvb_item_related",
3813
4309
  :header_params => header_params,
3814
4310
  :query_params => query_params,
3815
4311
  :form_params => form_params,
@@ -3820,7 +4316,7 @@ module UltracartClient
3820
4316
 
3821
4317
  data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
3822
4318
  if @api_client.config.debugging
3823
- @api_client.config.logger.debug "API called: SfvbApi#get_sfvb_item\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
4319
+ @api_client.config.logger.debug "API called: SfvbApi#get_sfvb_item_related\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
3824
4320
  end
3825
4321
  return data, status_code, headers
3826
4322
  end
@@ -4231,7 +4727,7 @@ module UltracartClient
4231
4727
  end
4232
4728
 
4233
4729
  # List the paths that answered 404
4234
- # The paths shoppers asked for that answered 404, most hits first or by last_seen. Paths only, never query strings. Bots are left out unless include_bots. Token-like path segments show as {token} unless include_tokens. limit is 1 to 100, default 50.
4730
+ # The paths shoppers asked for that answered 404, most hits first or by last_seen. Paths only, never query strings. Bots are left out unless include_bots. Token-like path segments show as {token} unless include_tokens. A path stays listed after a redirect rule catches it, with redirected_to set. redirected=false lists only paths no rule catches yet, and redirected=true only those one does. limit is 1 to 100, default 50.
4235
4731
  # @param storefront_oid [Integer]
4236
4732
  # @param [Hash] opts the optional parameters
4237
4733
  # @option opts [String] :since
@@ -4240,6 +4736,7 @@ module UltracartClient
4240
4736
  # @option opts [Boolean] :include_tokens
4241
4737
  # @option opts [String] :q
4242
4738
  # @option opts [Integer] :limit
4739
+ # @option opts [Boolean] :redirected
4243
4740
  # @return [SfvbNotFoundResponse]
4244
4741
  def get_sfvb_not_found(storefront_oid, opts = {})
4245
4742
  data, _status_code, _headers = get_sfvb_not_found_with_http_info(storefront_oid, opts)
@@ -4247,7 +4744,7 @@ module UltracartClient
4247
4744
  end
4248
4745
 
4249
4746
  # List the paths that answered 404
4250
- # The paths shoppers asked for that answered 404, most hits first or by last_seen. Paths only, never query strings. Bots are left out unless include_bots. Token-like path segments show as {token} unless include_tokens. limit is 1 to 100, default 50.
4747
+ # The paths shoppers asked for that answered 404, most hits first or by last_seen. Paths only, never query strings. Bots are left out unless include_bots. Token-like path segments show as {token} unless include_tokens. A path stays listed after a redirect rule catches it, with redirected_to set. redirected&#x3D;false lists only paths no rule catches yet, and redirected&#x3D;true only those one does. limit is 1 to 100, default 50.
4251
4748
  # @param storefront_oid [Integer]
4252
4749
  # @param [Hash] opts the optional parameters
4253
4750
  # @option opts [String] :since
@@ -4256,6 +4753,7 @@ module UltracartClient
4256
4753
  # @option opts [Boolean] :include_tokens
4257
4754
  # @option opts [String] :q
4258
4755
  # @option opts [Integer] :limit
4756
+ # @option opts [Boolean] :redirected
4259
4757
  # @return [Array<(SfvbNotFoundResponse, Integer, Hash)>] SfvbNotFoundResponse data, response status code and response headers
4260
4758
  def get_sfvb_not_found_with_http_info(storefront_oid, opts = {})
4261
4759
  if @api_client.config.debugging
@@ -4276,6 +4774,7 @@ module UltracartClient
4276
4774
  query_params[:'include_tokens'] = opts[:'include_tokens'] if !opts[:'include_tokens'].nil?
4277
4775
  query_params[:'q'] = opts[:'q'] if !opts[:'q'].nil?
4278
4776
  query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
4777
+ query_params[:'redirected'] = opts[:'redirected'] if !opts[:'redirected'].nil?
4279
4778
 
4280
4779
  # header parameters
4281
4780
  header_params = opts[:header_params] || {}
@@ -6300,7 +6799,7 @@ module UltracartClient
6300
6799
  end
6301
6800
 
6302
6801
  # Create an upsell offer
6303
- # Every item it names must exist, and every shipping method, payment method and loyalty tier must be one the merchant has. Put it on a path with a path update to have it shown. Creating it switched on, or with upsell_item_id_javascript or offsite_content_url, needs sfvb_publish. Its page content is its container, written with the container endpoints and owner type upsell.
6802
+ # Every item it names must exist, and every shipping method, payment method and loyalty tier must be one the merchant has. Put it on a path with a path update to have it shown. It must be created with active false, and switched on with the enable call, which needs approval. upsell_item_id_javascript or offsite_content_url needs sfvb_publish. Its page content is its container, written with the container endpoints and owner type upsell.
6304
6803
  # @param storefront_oid [Integer]
6305
6804
  # @param upsell_offer [SfvbUpsellOffer] The offer to create
6306
6805
  # @param [Hash] opts the optional parameters
@@ -6311,7 +6810,7 @@ module UltracartClient
6311
6810
  end
6312
6811
 
6313
6812
  # Create an upsell offer
6314
- # Every item it names must exist, and every shipping method, payment method and loyalty tier must be one the merchant has. Put it on a path with a path update to have it shown. Creating it switched on, or with upsell_item_id_javascript or offsite_content_url, needs sfvb_publish. Its page content is its container, written with the container endpoints and owner type upsell.
6813
+ # Every item it names must exist, and every shipping method, payment method and loyalty tier must be one the merchant has. Put it on a path with a path update to have it shown. It must be created with active false, and switched on with the enable call, which needs approval. upsell_item_id_javascript or offsite_content_url needs sfvb_publish. Its page content is its container, written with the container endpoints and owner type upsell.
6315
6814
  # @param storefront_oid [Integer]
6316
6815
  # @param upsell_offer [SfvbUpsellOffer] The offer to create
6317
6816
  # @param [Hash] opts the optional parameters
@@ -6375,7 +6874,7 @@ module UltracartClient
6375
6874
  end
6376
6875
 
6377
6876
  # Create an upsell path
6378
- # Placed last in path order. Every offer a step names must be an offer of this storefront, and every item in the item logic must exist. Creating it switched on needs sfvb_publish; create it with active false to build it without that scope.
6877
+ # Placed last in path order. Every offer a step names must be an offer of this storefront, and every item in the item logic must exist. It must be created with active false, and switched on with the enable call, which needs approval.
6379
6878
  # @param storefront_oid [Integer]
6380
6879
  # @param upsell_path [SfvbUpsellPath] The path to create
6381
6880
  # @param [Hash] opts the optional parameters
@@ -6386,7 +6885,7 @@ module UltracartClient
6386
6885
  end
6387
6886
 
6388
6887
  # Create an upsell path
6389
- # Placed last in path order. Every offer a step names must be an offer of this storefront, and every item in the item logic must exist. Creating it switched on needs sfvb_publish; create it with active false to build it without that scope.
6888
+ # Placed last in path order. Every offer a step names must be an offer of this storefront, and every item in the item logic must exist. It must be created with active false, and switched on with the enable call, which needs approval.
6390
6889
  # @param storefront_oid [Integer]
6391
6890
  # @param upsell_path [SfvbUpsellPath] The path to create
6392
6891
  # @param [Hash] opts the optional parameters
@@ -8188,7 +8687,7 @@ module UltracartClient
8188
8687
  end
8189
8688
 
8190
8689
  # Change one built-in message
8191
- # Sets one message in any number of languages. ENG replaces the English, which drops its machine translations so they regenerate. Any other language becomes a hand translation. Languages not named are left alone; empty text is refused. Shoppers see it at once. Always needs sfvb_publish.
8690
+ # Sets one message in any number of languages. ENG replaces the English, which drops its machine translations so they regenerate. Any other language becomes a hand translation. Languages not named are left alone. Empty text removes that language's translation so machine translation fills it again (not allowed for ENG); it is the undo for an imported message, which can't be reset. Shoppers see it at once. Always needs sfvb_publish.
8192
8691
  # @param storefront_oid [Integer]
8193
8692
  # @param key [String]
8194
8693
  # @param if_match [String] hash_sha256 from the last read. Required; 428 when absent, 412 when stale.
@@ -8202,7 +8701,7 @@ module UltracartClient
8202
8701
  end
8203
8702
 
8204
8703
  # Change one built-in message
8205
- # Sets one message in any number of languages. ENG replaces the English, which drops its machine translations so they regenerate. Any other language becomes a hand translation. Languages not named are left alone; empty text is refused. Shoppers see it at once. Always needs sfvb_publish.
8704
+ # Sets one message in any number of languages. ENG replaces the English, which drops its machine translations so they regenerate. Any other language becomes a hand translation. Languages not named are left alone. Empty text removes that language&#39;s translation so machine translation fills it again (not allowed for ENG); it is the undo for an imported message, which can&#39;t be reset. Shoppers see it at once. Always needs sfvb_publish.
8206
8705
  # @param storefront_oid [Integer]
8207
8706
  # @param key [String]
8208
8707
  # @param if_match [String] hash_sha256 from the last read. Required; 428 when absent, 412 when stale.
@@ -8521,6 +9020,185 @@ module UltracartClient
8521
9020
  return data, status_code, headers
8522
9021
  end
8523
9022
 
9023
+ # Change what an item charges
9024
+ # Partial - a field left out is untouched. A sale needs sale_cost, sale_start and sale_end together, the end after the start; clear_sale removes it. msrp must be more than 0 (0 only when the price is 0); clear_msrp removes it. volume_discounts replaces the retail quantity breaks. Shoppers pay the new price at once, so this needs sfvb_publish, If-Match with the pricing hash_sha256, and the approval of the person who signed in the CLI - an approved item.pricing request for this item and exactly this change. A change that sets every field to what it already is returns the pricing unchanged and uses no approval.
9025
+ # @param storefront_oid [Integer]
9026
+ # @param if_match [String] hash_sha256 from the pricing read. Required; 428 when absent, 412 when stale.
9027
+ # @param item_pricing_request [SfvbItemPricingRequest] The change
9028
+ # @param [Hash] opts the optional parameters
9029
+ # @option opts [String] :merchant_item_id
9030
+ # @option opts [Integer] :merchant_item_oid
9031
+ # @option opts [String] :approval_id The approval_id of an approved item.pricing request for this item and change. Required. See POST /sfvb/approvals.
9032
+ # @return [SfvbItemPricing]
9033
+ def put_sfvb_item_pricing(storefront_oid, if_match, item_pricing_request, opts = {})
9034
+ data, _status_code, _headers = put_sfvb_item_pricing_with_http_info(storefront_oid, if_match, item_pricing_request, opts)
9035
+ data
9036
+ end
9037
+
9038
+ # Change what an item charges
9039
+ # Partial - a field left out is untouched. A sale needs sale_cost, sale_start and sale_end together, the end after the start; clear_sale removes it. msrp must be more than 0 (0 only when the price is 0); clear_msrp removes it. volume_discounts replaces the retail quantity breaks. Shoppers pay the new price at once, so this needs sfvb_publish, If-Match with the pricing hash_sha256, and the approval of the person who signed in the CLI - an approved item.pricing request for this item and exactly this change. A change that sets every field to what it already is returns the pricing unchanged and uses no approval.
9040
+ # @param storefront_oid [Integer]
9041
+ # @param if_match [String] hash_sha256 from the pricing read. Required; 428 when absent, 412 when stale.
9042
+ # @param item_pricing_request [SfvbItemPricingRequest] The change
9043
+ # @param [Hash] opts the optional parameters
9044
+ # @option opts [String] :merchant_item_id
9045
+ # @option opts [Integer] :merchant_item_oid
9046
+ # @option opts [String] :approval_id The approval_id of an approved item.pricing request for this item and change. Required. See POST /sfvb/approvals.
9047
+ # @return [Array<(SfvbItemPricing, Integer, Hash)>] SfvbItemPricing data, response status code and response headers
9048
+ def put_sfvb_item_pricing_with_http_info(storefront_oid, if_match, item_pricing_request, opts = {})
9049
+ if @api_client.config.debugging
9050
+ @api_client.config.logger.debug 'Calling API: SfvbApi.put_sfvb_item_pricing ...'
9051
+ end
9052
+ # verify the required parameter 'storefront_oid' is set
9053
+ if @api_client.config.client_side_validation && storefront_oid.nil?
9054
+ fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling SfvbApi.put_sfvb_item_pricing"
9055
+ end
9056
+ # verify the required parameter 'if_match' is set
9057
+ if @api_client.config.client_side_validation && if_match.nil?
9058
+ fail ArgumentError, "Missing the required parameter 'if_match' when calling SfvbApi.put_sfvb_item_pricing"
9059
+ end
9060
+ # verify the required parameter 'item_pricing_request' is set
9061
+ if @api_client.config.client_side_validation && item_pricing_request.nil?
9062
+ fail ArgumentError, "Missing the required parameter 'item_pricing_request' when calling SfvbApi.put_sfvb_item_pricing"
9063
+ end
9064
+ # resource path
9065
+ local_var_path = '/sfvb/storefronts/{storefront_oid}/items/pricing'.sub('{' + 'storefront_oid' + '}', CGI.escape(storefront_oid.to_s))
9066
+
9067
+ # query parameters
9068
+ query_params = opts[:query_params] || {}
9069
+ query_params[:'merchant_item_id'] = opts[:'merchant_item_id'] if !opts[:'merchant_item_id'].nil?
9070
+ query_params[:'merchant_item_oid'] = opts[:'merchant_item_oid'] if !opts[:'merchant_item_oid'].nil?
9071
+
9072
+ # header parameters
9073
+ header_params = opts[:header_params] || {}
9074
+ header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
9075
+ # HTTP header 'Accept' (if needed)
9076
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
9077
+ # HTTP header 'Content-Type'
9078
+ content_type = @api_client.select_header_content_type(['application/json; charset=UTF-8'])
9079
+ if !content_type.nil?
9080
+ header_params['Content-Type'] = content_type
9081
+ end
9082
+ header_params[:'If-Match'] = if_match
9083
+ header_params[:'Approval-Id'] = opts[:'approval_id'] if !opts[:'approval_id'].nil?
9084
+
9085
+ # form parameters
9086
+ form_params = opts[:form_params] || {}
9087
+
9088
+ # http body (model)
9089
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(item_pricing_request)
9090
+
9091
+ # return_type
9092
+ return_type = opts[:debug_return_type] || 'SfvbItemPricing'
9093
+
9094
+ # auth_names
9095
+ auth_names = opts[:debug_auth_names] || ['ultraCartOauth', 'ultraCartSimpleApiKey']
9096
+
9097
+ new_options = opts.merge(
9098
+ :operation => :"SfvbApi.put_sfvb_item_pricing",
9099
+ :header_params => header_params,
9100
+ :query_params => query_params,
9101
+ :form_params => form_params,
9102
+ :body => post_body,
9103
+ :auth_names => auth_names,
9104
+ :return_type => return_type
9105
+ )
9106
+
9107
+ data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options)
9108
+ if @api_client.config.debugging
9109
+ @api_client.config.logger.debug "API called: SfvbApi#put_sfvb_item_pricing\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
9110
+ end
9111
+ return data, status_code, headers
9112
+ end
9113
+
9114
+ # Replace an item's related items
9115
+ # Replaces the merchant's own related items, in order, and keeps the ones UltraCart calculates. Each must be an item of this account and not the item itself, named once, up to 50. No link back is added to the other items. Needs sfvb_publish and If-Match with the related hash_sha256.
9116
+ # @param storefront_oid [Integer]
9117
+ # @param if_match [String] hash_sha256 from the related read. Required; 428 when absent, 412 when stale.
9118
+ # @param item_related_request [SfvbItemRelatedRequest] The related items
9119
+ # @param [Hash] opts the optional parameters
9120
+ # @option opts [String] :merchant_item_id
9121
+ # @option opts [Integer] :merchant_item_oid
9122
+ # @return [SfvbItemRelated]
9123
+ def put_sfvb_item_related(storefront_oid, if_match, item_related_request, opts = {})
9124
+ data, _status_code, _headers = put_sfvb_item_related_with_http_info(storefront_oid, if_match, item_related_request, opts)
9125
+ data
9126
+ end
9127
+
9128
+ # Replace an item&#39;s related items
9129
+ # Replaces the merchant&#39;s own related items, in order, and keeps the ones UltraCart calculates. Each must be an item of this account and not the item itself, named once, up to 50. No link back is added to the other items. Needs sfvb_publish and If-Match with the related hash_sha256.
9130
+ # @param storefront_oid [Integer]
9131
+ # @param if_match [String] hash_sha256 from the related read. Required; 428 when absent, 412 when stale.
9132
+ # @param item_related_request [SfvbItemRelatedRequest] The related items
9133
+ # @param [Hash] opts the optional parameters
9134
+ # @option opts [String] :merchant_item_id
9135
+ # @option opts [Integer] :merchant_item_oid
9136
+ # @return [Array<(SfvbItemRelated, Integer, Hash)>] SfvbItemRelated data, response status code and response headers
9137
+ def put_sfvb_item_related_with_http_info(storefront_oid, if_match, item_related_request, opts = {})
9138
+ if @api_client.config.debugging
9139
+ @api_client.config.logger.debug 'Calling API: SfvbApi.put_sfvb_item_related ...'
9140
+ end
9141
+ # verify the required parameter 'storefront_oid' is set
9142
+ if @api_client.config.client_side_validation && storefront_oid.nil?
9143
+ fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling SfvbApi.put_sfvb_item_related"
9144
+ end
9145
+ # verify the required parameter 'if_match' is set
9146
+ if @api_client.config.client_side_validation && if_match.nil?
9147
+ fail ArgumentError, "Missing the required parameter 'if_match' when calling SfvbApi.put_sfvb_item_related"
9148
+ end
9149
+ # verify the required parameter 'item_related_request' is set
9150
+ if @api_client.config.client_side_validation && item_related_request.nil?
9151
+ fail ArgumentError, "Missing the required parameter 'item_related_request' when calling SfvbApi.put_sfvb_item_related"
9152
+ end
9153
+ # resource path
9154
+ local_var_path = '/sfvb/storefronts/{storefront_oid}/items/related'.sub('{' + 'storefront_oid' + '}', CGI.escape(storefront_oid.to_s))
9155
+
9156
+ # query parameters
9157
+ query_params = opts[:query_params] || {}
9158
+ query_params[:'merchant_item_id'] = opts[:'merchant_item_id'] if !opts[:'merchant_item_id'].nil?
9159
+ query_params[:'merchant_item_oid'] = opts[:'merchant_item_oid'] if !opts[:'merchant_item_oid'].nil?
9160
+
9161
+ # header parameters
9162
+ header_params = opts[:header_params] || {}
9163
+ header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
9164
+ # HTTP header 'Accept' (if needed)
9165
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
9166
+ # HTTP header 'Content-Type'
9167
+ content_type = @api_client.select_header_content_type(['application/json; charset=UTF-8'])
9168
+ if !content_type.nil?
9169
+ header_params['Content-Type'] = content_type
9170
+ end
9171
+ header_params[:'If-Match'] = if_match
9172
+
9173
+ # form parameters
9174
+ form_params = opts[:form_params] || {}
9175
+
9176
+ # http body (model)
9177
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(item_related_request)
9178
+
9179
+ # return_type
9180
+ return_type = opts[:debug_return_type] || 'SfvbItemRelated'
9181
+
9182
+ # auth_names
9183
+ auth_names = opts[:debug_auth_names] || ['ultraCartOauth', 'ultraCartSimpleApiKey']
9184
+
9185
+ new_options = opts.merge(
9186
+ :operation => :"SfvbApi.put_sfvb_item_related",
9187
+ :header_params => header_params,
9188
+ :query_params => query_params,
9189
+ :form_params => form_params,
9190
+ :body => post_body,
9191
+ :auth_names => auth_names,
9192
+ :return_type => return_type
9193
+ )
9194
+
9195
+ data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options)
9196
+ if @api_client.config.debugging
9197
+ @api_client.config.logger.debug "API called: SfvbApi#put_sfvb_item_related\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
9198
+ end
9199
+ return data, status_code, headers
9200
+ end
9201
+
8524
9202
  # Change an item's search metadata
8525
9203
  # Partial - a field left out is untouched, a field sent empty is cleared and the page falls back to what it fell back to before. Underneath these are three item attributes with reserved names, so this and the attributes endpoint reach the same storage; it exists separately because the names are not discoverable from the templates. Two things worth knowing. A title set here changes the document title only - og:title and twitter:title render the item's description either way. And there is no canonical or noindex field, because both are site wide switches rather than per item values.
8526
9204
  # @param storefront_oid [Integer]
@@ -10440,10 +11118,11 @@ module UltracartClient
10440
11118
  end
10441
11119
 
10442
11120
  # Start an experiment
10443
- # type page starts an experiment element already saved in a page body - send path, slot and widget_id, and its name, objective, duration and variations are read from the element with the builder's rules (2 to 5 variations numbered 0 up with no gaps, 3 to 90 days, traffic on all or none adding up to 100). The new id is written into the element and the body is saved, so pull it again before the next edit. type url splits visitors between existing pages at router_url, and always ends by itself after duration_days. Always needs sfvb_publish, because visitors are split as soon as it starts.
11121
+ # type page starts an experiment element already saved in a page body - send path, slot and widget_id, and its name, objective, duration and variations are read from the element with the builder's rules (2 to 5 variations numbered 0 up with no gaps, 3 to 90 days, traffic on all or none adding up to 100). The new id is written into the element and the body is saved, so pull it again before the next edit. type url splits visitors between existing pages at router_url, and always ends by itself after duration_days. Always needs sfvb_publish, because visitors are split as soon as it starts, and the approval of the person who signed in the CLI - an approved experiment.start request for exactly this start (see POST /sfvb/approvals).
10444
11122
  # @param storefront_oid [Integer]
10445
11123
  # @param experiment_start_request [SfvbExperimentStartRequest] The experiment to start
10446
11124
  # @param [Hash] opts the optional parameters
11125
+ # @option opts [String] :approval_id The approval_id of an approved experiment.start request for exactly this start. Required. See POST /sfvb/approvals.
10447
11126
  # @return [SfvbExperiment]
10448
11127
  def start_sfvb_experiment(storefront_oid, experiment_start_request, opts = {})
10449
11128
  data, _status_code, _headers = start_sfvb_experiment_with_http_info(storefront_oid, experiment_start_request, opts)
@@ -10451,10 +11130,11 @@ module UltracartClient
10451
11130
  end
10452
11131
 
10453
11132
  # Start an experiment
10454
- # type page starts an experiment element already saved in a page body - send path, slot and widget_id, and its name, objective, duration and variations are read from the element with the builder&#39;s rules (2 to 5 variations numbered 0 up with no gaps, 3 to 90 days, traffic on all or none adding up to 100). The new id is written into the element and the body is saved, so pull it again before the next edit. type url splits visitors between existing pages at router_url, and always ends by itself after duration_days. Always needs sfvb_publish, because visitors are split as soon as it starts.
11133
+ # type page starts an experiment element already saved in a page body - send path, slot and widget_id, and its name, objective, duration and variations are read from the element with the builder&#39;s rules (2 to 5 variations numbered 0 up with no gaps, 3 to 90 days, traffic on all or none adding up to 100). The new id is written into the element and the body is saved, so pull it again before the next edit. type url splits visitors between existing pages at router_url, and always ends by itself after duration_days. Always needs sfvb_publish, because visitors are split as soon as it starts, and the approval of the person who signed in the CLI - an approved experiment.start request for exactly this start (see POST /sfvb/approvals).
10455
11134
  # @param storefront_oid [Integer]
10456
11135
  # @param experiment_start_request [SfvbExperimentStartRequest] The experiment to start
10457
11136
  # @param [Hash] opts the optional parameters
11137
+ # @option opts [String] :approval_id The approval_id of an approved experiment.start request for exactly this start. Required. See POST /sfvb/approvals.
10458
11138
  # @return [Array<(SfvbExperiment, Integer, Hash)>] SfvbExperiment data, response status code and response headers
10459
11139
  def start_sfvb_experiment_with_http_info(storefront_oid, experiment_start_request, opts = {})
10460
11140
  if @api_client.config.debugging
@@ -10484,6 +11164,7 @@ module UltracartClient
10484
11164
  if !content_type.nil?
10485
11165
  header_params['Content-Type'] = content_type
10486
11166
  end
11167
+ header_params[:'Approval-Id'] = opts[:'approval_id'] if !opts[:'approval_id'].nil?
10487
11168
 
10488
11169
  # form parameters
10489
11170
  form_params = opts[:form_params] || {}
@@ -10515,7 +11196,7 @@ module UltracartClient
10515
11196
  end
10516
11197
 
10517
11198
  # Unarchive an upsell path
10518
- # Brings the path back into the default list. Unarchiving one that is switched on starts it, so that needs sfvb_publish.
11199
+ # Brings the path back into the default list. A path that is switched on is refused, because unarchiving it would start it without approval - disable it, unarchive it, then enable it.
10519
11200
  # @param storefront_oid [Integer]
10520
11201
  # @param upsell_path_oid [Integer]
10521
11202
  # @param [Hash] opts the optional parameters
@@ -10526,7 +11207,7 @@ module UltracartClient
10526
11207
  end
10527
11208
 
10528
11209
  # Unarchive an upsell path
10529
- # Brings the path back into the default list. Unarchiving one that is switched on starts it, so that needs sfvb_publish.
11210
+ # Brings the path back into the default list. A path that is switched on is refused, because unarchiving it would start it without approval - disable it, unarchive it, then enable it.
10530
11211
  # @param storefront_oid [Integer]
10531
11212
  # @param upsell_path_oid [Integer]
10532
11213
  # @param [Hash] opts the optional parameters
@@ -10962,6 +11643,84 @@ module UltracartClient
10962
11643
  return data, status_code, headers
10963
11644
  end
10964
11645
 
11646
+ # Change attributes across many items in one call
11647
+ # Applies exactly the change rows of a dry run, given its plan_hash, each with its merchant_item_oid and current_sha256. Each item is saved once with all of its rows; a row whose value changed since the dry run is skipped as stale and never overwritten, and an item that cannot be saved does not stop the others. Only the named attributes change. Needs sfvb_publish and the approval of the person who signed in the CLI, an approved item.attribute_batch request for exactly these rows in the Approval-Id header.
11648
+ # @param storefront_oid [Integer]
11649
+ # @param item_attribute_batch_request [SfvbItemAttributeBatchRequest] The dry run&#39;s change rows and plan_hash
11650
+ # @param [Hash] opts the optional parameters
11651
+ # @option opts [String] :approval_id The approval_id of an approved item.attribute_batch request for exactly these rows. Required. See POST /sfvb/approvals.
11652
+ # @return [SfvbItemAttributeBatchResponse]
11653
+ def update_sfvb_item_attribute_batch(storefront_oid, item_attribute_batch_request, opts = {})
11654
+ data, _status_code, _headers = update_sfvb_item_attribute_batch_with_http_info(storefront_oid, item_attribute_batch_request, opts)
11655
+ data
11656
+ end
11657
+
11658
+ # Change attributes across many items in one call
11659
+ # Applies exactly the change rows of a dry run, given its plan_hash, each with its merchant_item_oid and current_sha256. Each item is saved once with all of its rows; a row whose value changed since the dry run is skipped as stale and never overwritten, and an item that cannot be saved does not stop the others. Only the named attributes change. Needs sfvb_publish and the approval of the person who signed in the CLI, an approved item.attribute_batch request for exactly these rows in the Approval-Id header.
11660
+ # @param storefront_oid [Integer]
11661
+ # @param item_attribute_batch_request [SfvbItemAttributeBatchRequest] The dry run&#39;s change rows and plan_hash
11662
+ # @param [Hash] opts the optional parameters
11663
+ # @option opts [String] :approval_id The approval_id of an approved item.attribute_batch request for exactly these rows. Required. See POST /sfvb/approvals.
11664
+ # @return [Array<(SfvbItemAttributeBatchResponse, Integer, Hash)>] SfvbItemAttributeBatchResponse data, response status code and response headers
11665
+ def update_sfvb_item_attribute_batch_with_http_info(storefront_oid, item_attribute_batch_request, opts = {})
11666
+ if @api_client.config.debugging
11667
+ @api_client.config.logger.debug 'Calling API: SfvbApi.update_sfvb_item_attribute_batch ...'
11668
+ end
11669
+ # verify the required parameter 'storefront_oid' is set
11670
+ if @api_client.config.client_side_validation && storefront_oid.nil?
11671
+ fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling SfvbApi.update_sfvb_item_attribute_batch"
11672
+ end
11673
+ # verify the required parameter 'item_attribute_batch_request' is set
11674
+ if @api_client.config.client_side_validation && item_attribute_batch_request.nil?
11675
+ fail ArgumentError, "Missing the required parameter 'item_attribute_batch_request' when calling SfvbApi.update_sfvb_item_attribute_batch"
11676
+ end
11677
+ # resource path
11678
+ local_var_path = '/sfvb/storefronts/{storefront_oid}/items/attributes/batch'.sub('{' + 'storefront_oid' + '}', CGI.escape(storefront_oid.to_s))
11679
+
11680
+ # query parameters
11681
+ query_params = opts[:query_params] || {}
11682
+
11683
+ # header parameters
11684
+ header_params = opts[:header_params] || {}
11685
+ header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
11686
+ # HTTP header 'Accept' (if needed)
11687
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
11688
+ # HTTP header 'Content-Type'
11689
+ content_type = @api_client.select_header_content_type(['application/json; charset=UTF-8'])
11690
+ if !content_type.nil?
11691
+ header_params['Content-Type'] = content_type
11692
+ end
11693
+ header_params[:'Approval-Id'] = opts[:'approval_id'] if !opts[:'approval_id'].nil?
11694
+
11695
+ # form parameters
11696
+ form_params = opts[:form_params] || {}
11697
+
11698
+ # http body (model)
11699
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(item_attribute_batch_request)
11700
+
11701
+ # return_type
11702
+ return_type = opts[:debug_return_type] || 'SfvbItemAttributeBatchResponse'
11703
+
11704
+ # auth_names
11705
+ auth_names = opts[:debug_auth_names] || ['ultraCartOauth', 'ultraCartSimpleApiKey']
11706
+
11707
+ new_options = opts.merge(
11708
+ :operation => :"SfvbApi.update_sfvb_item_attribute_batch",
11709
+ :header_params => header_params,
11710
+ :query_params => query_params,
11711
+ :form_params => form_params,
11712
+ :body => post_body,
11713
+ :auth_names => auth_names,
11714
+ :return_type => return_type
11715
+ )
11716
+
11717
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
11718
+ if @api_client.config.debugging
11719
+ @api_client.config.logger.debug "API called: SfvbApi#update_sfvb_item_attribute_batch\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
11720
+ end
11721
+ return data, status_code, headers
11722
+ end
11723
+
10965
11724
  # Update a library entry's draft
10966
11725
  # A full replace of the draft's fields. Owner only. Send the hash_sha256 you read as If-Match. Every save increments revision_number; nothing other merchants see changes until the draft is published. A changed fragment is re-scanned and its images copied again, and screenshot_stale tells you to retake the screenshot.
10967
11726
  # @param storefront_oid [Integer]
@@ -11139,7 +11898,7 @@ module UltracartClient
11139
11898
  end
11140
11899
 
11141
11900
  # Update an upsell offer
11142
- # A full replace. Send back the whole offer you read, changed, with its hash_sha256 in If-Match. Read only fields are ignored and a writable field left out is cleared. Changing an offer that is switched on, switching one on, or changing upsell_item_id_javascript or offsite_content_url needs sfvb_publish. Settings the API does not show, such as the offer's screenshots, are kept.
11901
+ # A full replace. Send back the whole offer you read, changed, with its hash_sha256 in If-Match. Read only fields are ignored and a writable field left out is cleared. Changing an offer that is switched on, or changing upsell_item_id_javascript or offsite_content_url, needs sfvb_publish. An update cannot switch an offer on; that is the enable call, which needs approval. Settings the API does not show, such as the offer's screenshots, are kept.
11143
11902
  # @param storefront_oid [Integer]
11144
11903
  # @param upsell_offer_oid [Integer]
11145
11904
  # @param if_match [String] hash_sha256 from the last read. Required; 428 when absent, 412 when stale.
@@ -11152,7 +11911,7 @@ module UltracartClient
11152
11911
  end
11153
11912
 
11154
11913
  # Update an upsell offer
11155
- # A full replace. Send back the whole offer you read, changed, with its hash_sha256 in If-Match. Read only fields are ignored and a writable field left out is cleared. Changing an offer that is switched on, switching one on, or changing upsell_item_id_javascript or offsite_content_url needs sfvb_publish. Settings the API does not show, such as the offer&#39;s screenshots, are kept.
11914
+ # A full replace. Send back the whole offer you read, changed, with its hash_sha256 in If-Match. Read only fields are ignored and a writable field left out is cleared. Changing an offer that is switched on, or changing upsell_item_id_javascript or offsite_content_url, needs sfvb_publish. An update cannot switch an offer on; that is the enable call, which needs approval. Settings the API does not show, such as the offer&#39;s screenshots, are kept.
11156
11915
  # @param storefront_oid [Integer]
11157
11916
  # @param upsell_offer_oid [Integer]
11158
11917
  # @param if_match [String] hash_sha256 from the last read. Required; 428 when absent, 412 when stale.
@@ -11227,7 +11986,7 @@ module UltracartClient
11227
11986
  end
11228
11987
 
11229
11988
  # Update an upsell path
11230
- # A full replace. Send back the whole path you read, changed, with its hash_sha256 in If-Match. Read only fields are ignored and a writable field left out is cleared. Order and archived keep their stored values; change them with the move, archive and unarchive calls. Changing a running path, or switching one on, needs sfvb_publish.
11989
+ # A full replace. Send back the whole path you read, changed, with its hash_sha256 in If-Match. Read only fields are ignored and a writable field left out is cleared. Order and archived keep their stored values; change them with the move, archive and unarchive calls. Changing a running path needs sfvb_publish. An update cannot switch a path on; that is the enable call, which needs approval.
11231
11990
  # @param storefront_oid [Integer]
11232
11991
  # @param upsell_path_oid [Integer]
11233
11992
  # @param if_match [String] hash_sha256 from the last read. Required; 428 when absent, 412 when stale.
@@ -11240,7 +11999,7 @@ module UltracartClient
11240
11999
  end
11241
12000
 
11242
12001
  # Update an upsell path
11243
- # A full replace. Send back the whole path you read, changed, with its hash_sha256 in If-Match. Read only fields are ignored and a writable field left out is cleared. Order and archived keep their stored values; change them with the move, archive and unarchive calls. Changing a running path, or switching one on, needs sfvb_publish.
12002
+ # A full replace. Send back the whole path you read, changed, with its hash_sha256 in If-Match. Read only fields are ignored and a writable field left out is cleared. Order and archived keep their stored values; change them with the move, archive and unarchive calls. Changing a running path needs sfvb_publish. An update cannot switch a path on; that is the enable call, which needs approval.
11244
12003
  # @param storefront_oid [Integer]
11245
12004
  # @param upsell_path_oid [Integer]
11246
12005
  # @param if_match [String] hash_sha256 from the last read. Required; 428 when absent, 412 when stale.