huginn_bigcommerce_product_agent 1.4.3 → 1.5.0
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.
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 728526f71b899d714ffeaf9cca25b150326ba889dc17c732ace2c41b7b92782e
         | 
| 4 | 
            +
              data.tar.gz: d237a9f1a6eb179f76679a7a870b56a7844239ee45f4fd32f56ba8a296201ca9
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 54e4aa00c7216da7c8d66ba4ea45cbcd1ec51339982686719505f2806761a91e601d807165c194975777e9b7ae0ee8327cde0d9ee966ccee264659d70b083ee1
         | 
| 7 | 
            +
              data.tar.gz: 9e9ff91a64dbab6ac8e0a1b599a5415ce2744d39cf00e3ca12d697fddde434dcf9aa174ecd89b0e67333838bd03cfe8585797c6d9e50c73cd57b936eb3ed8b9a
         | 
| @@ -124,6 +124,16 @@ module Agents | |
| 124 124 | 
             
                            wrapper_skus.map {|k,v| v},
         | 
| 125 125 | 
             
                            %w[custom_fields options]
         | 
| 126 126 | 
             
                        )
         | 
| 127 | 
            +
                        #save skus
         | 
| 128 | 
            +
                        digital_skus = []
         | 
| 129 | 
            +
                        physical_skus = []
         | 
| 130 | 
            +
                        if split[:digital] and split[:physical]
         | 
| 131 | 
            +
                            digital_skus.concat([wrapper_skus[:digital]])
         | 
| 132 | 
            +
                            digital_skus.concat(get_mapper(:ProductMapper).get_product_skus(split[:digital])).join(",")
         | 
| 133 | 
            +
                            physical_skus.concat([wrapper_skus[:physical]])
         | 
| 134 | 
            +
                            physical_skus.concat(get_mapper(:ProductMapper).get_product_skus(split[:physical])).join(",")
         | 
| 135 | 
            +
                        end
         | 
| 136 | 
            +
             | 
| 127 137 | 
             
                        # upsert wrapper products
         | 
| 128 138 | 
             
                        split.each do |type, product|
         | 
| 129 139 | 
             
                            is_digital = type == :digital ? true : false
         | 
| @@ -138,10 +148,11 @@ module Agents | |
| 138 148 | 
             
                            variant_option_name = get_mapper(:OptionMapper).variant_option_name
         | 
| 139 149 | 
             
                            bc_option = !bc_product.nil? ? bc_product['options'].select {|opt| opt['display_name'] === variant_option_name}.first : nil
         | 
| 140 150 |  | 
| 151 | 
            +
                            search_skus = is_digital ? physical_skus : digital_skus
         | 
| 141 152 | 
             
                            # ##############################
         | 
| 142 153 | 
             
                            # 1. update wrapper product
         | 
| 143 154 | 
             
                            # ##############################
         | 
| 144 | 
            -
                            upsert_result = upsert_product(wrapper_sku, product, bc_product, is_digital)
         | 
| 155 | 
            +
                            upsert_result = upsert_product(wrapper_sku, product, bc_product, is_digital, search_skus)
         | 
| 145 156 | 
             
                            bc_product = upsert_result[:product]
         | 
| 146 157 |  | 
| 147 158 | 
             
                            # clean up custom/meta fields. there are not batch operations so we might as well do them here.
         | 
| @@ -337,7 +348,7 @@ module Agents | |
| 337 348 | 
             
                        return ::BigcommerceProductAgent::Mapper.const_get(class_name.to_sym)
         | 
| 338 349 | 
             
                    end
         | 
| 339 350 |  | 
| 340 | 
            -
                    def upsert_product(sku, product, bc_product = nil, is_digital=false)
         | 
| 351 | 
            +
                    def upsert_product(sku, product, bc_product = nil, is_digital=false, search_skus=[])
         | 
| 341 352 | 
             
                        custom_fields_updates = get_mapper(:CustomFieldMapper).map(
         | 
| 342 353 | 
             
                            interpolated['custom_fields_map'],
         | 
| 343 354 | 
             
                            product,
         | 
| @@ -350,7 +361,10 @@ module Agents | |
| 350 361 | 
             
                            sku,
         | 
| 351 362 | 
             
                            product,
         | 
| 352 363 | 
             
                            product_id,
         | 
| 353 | 
            -
                            { | 
| 364 | 
            +
                            {
         | 
| 365 | 
            +
                                additional_search_terms: search_skus,
         | 
| 366 | 
            +
                                custom_fields: custom_fields_updates[:upsert]
         | 
| 367 | 
            +
                            },
         | 
| 354 368 | 
             
                            is_digital,
         | 
| 355 369 | 
             
                        )
         | 
| 356 370 |  | 
| @@ -38,7 +38,7 @@ module BigcommerceProductAgent | |
| 38 38 | 
             
                                height: product['height'] ? product['height']['value'] : '0',
         | 
| 39 39 | 
             
                                meta_keywords: self.meta_keywords(product),
         | 
| 40 40 | 
             
                                meta_description: self.meta_description(product) || '',
         | 
| 41 | 
            -
                                search_keywords: self. | 
| 41 | 
            +
                                search_keywords: self.get_search_keywords(additional_data.delete(:additional_search_terms), product),
         | 
| 42 42 | 
             
                                is_visible: variant ? false : true,
         | 
| 43 43 | 
             
                            }
         | 
| 44 44 | 
             
                            result[:upc] = product['gtin12'] if product['gtin12']
         | 
| @@ -182,6 +182,11 @@ module BigcommerceProductAgent | |
| 182 182 | 
             
                                end
         | 
| 183 183 | 
             
                            end
         | 
| 184 184 | 
             
                        end
         | 
| 185 | 
            +
             | 
| 186 | 
            +
                        # get a list of search keywords for the products
         | 
| 187 | 
            +
                        def self.get_search_keywords(additional_search_terms, product)
         | 
| 188 | 
            +
                            return (self.meta_keywords(product) + additional_search_terms.split(",")).join(",")
         | 
| 189 | 
            +
                        end
         | 
| 185 190 | 
             
                    end
         | 
| 186 191 | 
             
                end
         | 
| 187 192 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: huginn_bigcommerce_product_agent
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1. | 
| 4 | 
            +
              version: 1.5.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Jacob Spizziri
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2020-06- | 
| 11 | 
            +
            date: 2020-06-12 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: bundler
         |