Forms
LabReport
Errors
This form has no errors.
Default Data
| Property | Value |
|---|---|
| Model Format | same as normalized format |
| Normalized Format | App\Entity\LabReport {#854 -id: 843 -name: "Lab Report COA Part 3" -externalUrl: "https://purecbdnc.com/cdn/shop/files/Charlotte_sWeb_CBDFullSpectrumTincture60mg-30ml_OrangeCOA2025-04-253_98c7426c-419c-45dc-b5c7-3f7c31fba816.jpg?v=1747428923" -source: null -type: "jpg" -project: Proxies\__CG__\App\Entity\Project {#903 -id: 104 -name: "pure cbd" -url: "https://purecbdnc.com/" -prompt: null -chatJson: null -externalLabReportsUrl: null -spiderSourceUrls: Doctrine\ORM\PersistentCollection {#1521 …} -productMatchingUrl: null -productUrls: Doctrine\ORM\PersistentCollection {#1556 …} -labReportSources: Doctrine\ORM\PersistentCollection {#1527 …} -labReports: Doctrine\ORM\PersistentCollection {#1558 …} -createdAt: DateTime @1744068184 {#1495 : 2025-04-07 23:23:04.0 UTC (+00:00) } -updatedAt: DateTime @1768286193 {#1485 : 2026-01-13 06:36:33.0 UTC (+00:00) } -spiderSourceMatchingUrls: null -state: "ready_to_hunt" -products: Doctrine\ORM\PersistentCollection {#1560 …} -productPages: Doctrine\ORM\PersistentCollection {#1581 …} -websiteFramework: "shopify" -debugData: "{"error":{"message":"DOMDocument::loadHTML(): Argument #1 ($source) must not be empty","trace":"#0 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/FrameworkHelper.php(346): DOMDocument->loadHTML()\n#1 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Crawler\/ProductHuntCrawlerObserver.php(134): App\\Helper\\FrameworkHelper->is_shopify_product_page()\n#2 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/CrawlObservers\/CrawlObserverCollection.php(28): App\\Crawler\\ProductHuntCrawlerObserver->crawled()\n#3 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(104): Spatie\\Crawler\\CrawlObservers\\CrawlObserverCollection->crawled()\n#4 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(70): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->handleCrawled()\n#5 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(173): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->__invoke()\n#6 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(209): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#7 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(158): GuzzleHttp\\Promise\\Promise::callHandler()\n#8 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/TaskQueue.php(52): GuzzleHttp\\Promise\\Promise::GuzzleHttp\\Promise\\{closure}()\n#9 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(167): GuzzleHttp\\Promise\\TaskQueue->run()\n#10 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(206): GuzzleHttp\\Handler\\CurlMultiHandler->tick()\n#11 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Handler\\CurlMultiHandler->execute()\n#12 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#13 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(272): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#14 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(229): GuzzleHttp\\Promise\\Promise->invokeWaitList()\n#15 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#16 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(109): GuzzleHttp\\Promise\\Promise->wait()\n#17 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#18 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#19 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#20 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(494): GuzzleHttp\\Promise\\Promise->wait()\n#21 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(443): Spatie\\Crawler\\Crawler->startCrawlingQueue()\n#22 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/CrawlerHelper.php(181): Spatie\\Crawler\\Crawler->startCrawling()\n#23 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/ProjectHelper.php(250): App\\Helper\\CrawlerHelper->crawlProjectProducts()\n#24 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Command\/Cron\/ProductHuntCommand.php(60): App\\Helper\\ProjectHelper->huntProducts()\n#25 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Command\/Command.php(279): App\\Command\\Cron\\ProductHuntCommand->execute()\n#26 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(1047): Symfony\\Component\\Console\\Command\\Command->run()\n#27 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(123): Symfony\\Component\\Console\\Application->doRunCommand()\n#28 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(316): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRunCommand()\n#29 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(77): Symfony\\Component\\Console\\Application->doRun()\n#30 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(167): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRun()\n#31 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/runtime\/Runner\/Symfony\/ConsoleApplicationRunner.php(49): Symfony\\Component\\Console\\Application->run()\n#32 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/autoload_runtime.php(29): Symfony\\Component\\Runtime\\Runner\\Symfony\\ConsoleApplicationRunner->run()\n#33 \/home\/cbdextract\/cbdextract.nw.agency\/source\/bin\/console(15): require_once('...')\n#34 {main}"}}" -labReportFails: Doctrine\ORM\PersistentCollection {#1609 …} -productExcludePaths: null -aILogs: Doctrine\ORM\PersistentCollection {#1586 …} -user: null -aIBatchJobs: Doctrine\ORM\PersistentCollection {#1650 …} -lazyObjectState: Symfony\Component\VarExporter\Internal\LazyObjectState {#906 …} } -labReportSource: null -createdAt: DateTime @1748152551 {#848 : 2025-05-25 05:55:51.0 UTC (+00:00) } -updatedAt: DateTime @1748138197 {#845 : 2025-05-25 01:56:37.0 UTC (+00:00) } -category: null -state: "processed" -expiryDate: "2027-04-16" -extractionDate: "2025-04-25" -thcaPercentage: "0" -totalThcPercentage: "0" -deltaNinePercentage: "0" -deltaNineWithThcaCombined: "0" -comments: null -internalUrl: "https://cbdextract.nw.agency/lab-reports/LabReportCOAPart3.jpg" -markdownContent: ""# Certificate of Analysis\n\n**Charlotte's Web, Inc.** \n700 Tech Court \nLouisville Colorado 80027 United States\n\n**Report Number:** 4901775-0 \n**Report Date:** 25-Apr-2025 \n**Report Status:** Final\n\n----\n\n## Sample Information\n\n| Sample Name: | A01417 - Composite | Eurofins Sample: | 15217285 |\n| -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n| Project ID: | CHARLO\\_WEB-20250416-0138 | Receipt Date: | 21-Apr-2025 |\n| PO Number: | QC 325 | Receipt Condition: | Ambient temperature |\n| Sample Serving Size: | 0.5 mL | Login Date: | 16-Apr-2025 |\n| Description: | CW 60mg Organic Orange Blossom 30mL | Date Started: | 21-Apr-2025 |\n| | 60 | Sampled: | Sample results apply as received |\n| MFG: | April 16 2025 | Number Composited: | 3 |\n| EXP: | April 16 2027 | Online Order: | SO-2025-E03804 |\n\n\n----\n\n## Analysis\n\n### Residual Solvent Analysis in Cannabis and Hemp Matrices\n\nThe ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *\n\n#### Category I Residual Solvent or Processing Chemical\n\n| Analysis | Limit | Result | Pass\/Fail |\n| ------------------------------ | --------- | ------ | --------- |\n| Acetone | <180 ppm | | |\n| Acetonitrile | <180 ppm | | |\n| n-Butane | <500 ppm | | |\n| Ethanol | <1000 ppm | | |\n| Ethyl Acetate | <1000 ppm | | |\n| Ethyl Ether | <1000 ppm | | |\n| Heptane | <500 ppm | | |\n| n-Hexane | <30.0 ppm | | |\n| Methanol | <1000 ppm | | |\n| n-Pentane | <250 ppm | | |\n| Propane | <1000 ppm | | |\n| Isopropyl Alcohol | <1000 ppm | | |\n| Toluene | <85.0 ppm | | |\n| Xylenes (ortho-, meta-, para-) | <160 ppm | | |\n\n\nThe Pass\/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *\n\n### Multi-Residue Analysis for hemp products\n\n| Analysis | Limit | Result | Pass\/Fail |\n| ---------- | ----------- | ----------- | --------- |\n| Cyprodinil | <0.01 mg\/kg | <0.01 mg\/kg | Pass |\n| Dichlorvos | <0.05 mg\/kg | <0.05 mg\/kg | Pass |\n| Dimethoate | <0.01 mg\/kg | <0.01 mg\/kg | Pass |\n| Fluopyram | <0.01 mg\/kg | <0.01 mg\/kg | Pass |\n\n\n* This analysis or component is not ISO accredited.\n\nPrinted: 25-Apr-2025 6:32 pm \nPage 3 of 9"" -debugData: null -jsonContent: [ "pages" => [ [ "page" => 1 "md" => """ # Certificate of Analysis\n \n **Charlotte's Web, Inc.** \n 700 Tech Court \n Louisville Colorado 80027 United States\n \n **Report Number:** 4901775-0 \n **Report Date:** 25-Apr-2025 \n **Report Status:** Final\n \n ----\n \n ## Sample Information\n \n | Sample Name: | A01417 - Composite | Eurofins Sample: | 15217285 |\n | -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n | Project ID: | CHARLO\_WEB-20250416-0138 | Receipt Date: | 21-Apr-2025 |\n | PO Number: | QC 325 | Receipt Condition: | Ambient temperature |\n | Sample Serving Size: | 0.5 mL | Login Date: | 16-Apr-2025 |\n | Description: | CW 60mg Organic Orange Blossom 30mL | Date Started: | 21-Apr-2025 |\n | | 60 | Sampled: | Sample results apply as received |\n | MFG: | April 16 2025 | Number Composited: | 3 |\n | EXP: | April 16 2027 | Online Order: | SO-2025-E03804 |\n \n \n ----\n \n ## Analysis\n \n ### Residual Solvent Analysis in Cannabis and Hemp Matrices\n \n The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *\n \n #### Category I Residual Solvent or Processing Chemical\n \n | Analysis | Limit | Result | Pass/Fail |\n | ------------------------------ | --------- | ------ | --------- |\n | Acetone | <180 ppm | | |\n | Acetonitrile | <180 ppm | | |\n | n-Butane | <500 ppm | | |\n | Ethanol | <1000 ppm | | |\n | Ethyl Acetate | <1000 ppm | | |\n | Ethyl Ether | <1000 ppm | | |\n | Heptane | <500 ppm | | |\n | n-Hexane | <30.0 ppm | | |\n | Methanol | <1000 ppm | | |\n | n-Pentane | <250 ppm | | |\n | Propane | <1000 ppm | | |\n | Isopropyl Alcohol | <1000 ppm | | |\n | Toluene | <85.0 ppm | | |\n | Xylenes (ortho-, meta-, para-) | <160 ppm | | |\n \n \n The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *\n \n ### Multi-Residue Analysis for hemp products\n \n | Analysis | Limit | Result | Pass/Fail |\n | ---------- | ----------- | ----------- | --------- |\n | Cyprodinil | <0.01 mg/kg | <0.01 mg/kg | Pass |\n | Dichlorvos | <0.05 mg/kg | <0.05 mg/kg | Pass |\n | Dimethoate | <0.01 mg/kg | <0.01 mg/kg | Pass |\n | Fluopyram | <0.01 mg/kg | <0.01 mg/kg | Pass |\n \n \n * This analysis or component is not ISO accredited.\n \n Printed: 25-Apr-2025 6:32 pm \n Page 3 of 9 """ "images" => [ [ "name" => "page_1.jpg" "height" => 0 "width" => 0 "x" => 0 "y" => 0 "type" => "full_page_screenshot" ] ] "charts" => [] "items" => [ [ "type" => "heading" "lvl" => 1 "value" => "Certificate of Analysis" "md" => "# Certificate of Analysis" ] [ "type" => "text" "value" => """ **Charlotte's Web, Inc.** \n 700 Tech Court \n Louisville Colorado 80027 United States\n \n **Report Number:** 4901775-0 \n **Report Date:** 25-Apr-2025 \n **Report Status:** Final\n \n ---- """ "md" => """ **Charlotte's Web, Inc.** \n 700 Tech Court \n Louisville Colorado 80027 United States\n \n **Report Number:** 4901775-0 \n **Report Date:** 25-Apr-2025 \n **Report Status:** Final\n \n ---- """ ] [ "type" => "heading" "lvl" => 2 "value" => "Sample Information" "md" => "## Sample Information" ] [ "type" => "table" "rows" => [ [ "Sample Name:" "A01417 - Composite" "Eurofins Sample:" "15217285" ] [ "Project ID:" "CHARLO_WEB-20250416-0138" "Receipt Date:" "21-Apr-2025" ] [ "PO Number:" "QC 325" "Receipt Condition:" "Ambient temperature" ] [ "Sample Serving Size:" "0.5 mL" "Login Date:" "16-Apr-2025" ] [ "Description:" "CW 60mg Organic Orange Blossom 30mL" "Date Started:" "21-Apr-2025" ] [ "" "60" "Sampled:" "Sample results apply as received" ] [ "MFG:" "April 16 2025" "Number Composited:" "3" ] [ "EXP:" "April 16 2027" "Online Order:" "SO-2025-E03804" ] ] "md" => """ | Sample Name: | A01417 - Composite | Eurofins Sample: | 15217285 |\n | -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n | Project ID: | CHARLO\_WEB-20250416-0138 | Receipt Date: | 21-Apr-2025 |\n | PO Number: | QC 325 | Receipt Condition: | Ambient temperature |\n | Sample Serving Size: | 0.5 mL | Login Date: | 16-Apr-2025 |\n | Description: | CW 60mg Organic Orange Blossom 30mL | Date Started: | 21-Apr-2025 |\n | | 60 | Sampled: | Sample results apply as received |\n | MFG: | April 16 2025 | Number Composited: | 3 |\n | EXP: | April 16 2027 | Online Order: | SO-2025-E03804 | """ "isPerfectTable" => true "csv" => """ "Sample Name:","A01417 - Composite","Eurofins Sample:","15217285"\n "Project ID:","CHARLO_WEB-20250416-0138","Receipt Date:","21-Apr-2025"\n "PO Number:","QC 325","Receipt Condition:","Ambient temperature"\n "Sample Serving Size:","0.5 mL","Login Date:","16-Apr-2025"\n "Description:","CW 60mg Organic Orange Blossom 30mL","Date Started:","21-Apr-2025"\n "","60","Sampled:","Sample results apply as received"\n "MFG:","April 16 2025","Number Composited:","3"\n "EXP:","April 16 2027","Online Order:","SO-2025-E03804" """ ] [ "type" => "text" "value" => "----" "md" => "----" ] [ "type" => "heading" "lvl" => 2 "value" => "Analysis" "md" => "## Analysis" ] [ "type" => "heading" "lvl" => 3 "value" => "Residual Solvent Analysis in Cannabis and Hemp Matrices" "md" => "### Residual Solvent Analysis in Cannabis and Hemp Matrices" ] [ "type" => "text" "value" => "The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *" "md" => "The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *" ] [ "type" => "heading" "lvl" => 4 "value" => "Category I Residual Solvent or Processing Chemical" "md" => "#### Category I Residual Solvent or Processing Chemical" ] [ "type" => "table" "rows" => [ [ "Analysis" "Limit" "Result" "Pass/Fail" ] [ "Acetone" "<180 ppm" "" "" ] [ "Acetonitrile" "<180 ppm" "" "" ] [ "n-Butane" "<500 ppm" "" "" ] [ "Ethanol" "<1000 ppm" "" "" ] [ "Ethyl Acetate" "<1000 ppm" "" "" ] [ "Ethyl Ether" "<1000 ppm" "" "" ] [ "Heptane" "<500 ppm" "" "" ] [ "n-Hexane" "<30.0 ppm" "" "" ] [ "Methanol" "<1000 ppm" "" "" ] [ "n-Pentane" "<250 ppm" "" "" ] [ "Propane" "<1000 ppm" "" "" ] [ "Isopropyl Alcohol" "<1000 ppm" "" "" ] [ "Toluene" "<85.0 ppm" "" "" ] [ "Xylenes (ortho-, meta-, para-)" "<160 ppm" "" "" ] ] "md" => """ | Analysis | Limit | Result | Pass/Fail |\n | ------------------------------ | --------- | ------ | --------- |\n | Acetone | <180 ppm | | |\n | Acetonitrile | <180 ppm | | |\n | n-Butane | <500 ppm | | |\n | Ethanol | <1000 ppm | | |\n | Ethyl Acetate | <1000 ppm | | |\n | Ethyl Ether | <1000 ppm | | |\n | Heptane | <500 ppm | | |\n | n-Hexane | <30.0 ppm | | |\n | Methanol | <1000 ppm | | |\n | n-Pentane | <250 ppm | | |\n | Propane | <1000 ppm | | |\n | Isopropyl Alcohol | <1000 ppm | | |\n | Toluene | <85.0 ppm | | |\n | Xylenes (ortho-, meta-, para-) | <160 ppm | | | """ "isPerfectTable" => true "csv" => """ "Analysis","Limit","Result","Pass/Fail"\n "Acetone","<180 ppm","",""\n "Acetonitrile","<180 ppm","",""\n "n-Butane","<500 ppm","",""\n "Ethanol","<1000 ppm","",""\n "Ethyl Acetate","<1000 ppm","",""\n "Ethyl Ether","<1000 ppm","",""\n "Heptane","<500 ppm","",""\n "n-Hexane","<30.0 ppm","",""\n "Methanol","<1000 ppm","",""\n "n-Pentane","<250 ppm","",""\n "Propane","<1000 ppm","",""\n "Isopropyl Alcohol","<1000 ppm","",""\n "Toluene","<85.0 ppm","",""\n "Xylenes (ortho-, meta-, para-)","<160 ppm","","" """ ] [ "type" => "text" "value" => "The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *" "md" => "The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *" ] [ "type" => "heading" "lvl" => 3 "value" => "Multi-Residue Analysis for hemp products" "md" => "### Multi-Residue Analysis for hemp products" ] [ "type" => "table" "rows" => [ [ "Analysis" "Limit" "Result" "Pass/Fail" ] [ "Cyprodinil" "<0.01 mg/kg" "<0.01 mg/kg" "Pass" ] [ "Dichlorvos" "<0.05 mg/kg" "<0.05 mg/kg" "Pass" ] [ "Dimethoate" "<0.01 mg/kg" "<0.01 mg/kg" "Pass" ] [ "Fluopyram" "<0.01 mg/kg" "<0.01 mg/kg" "Pass" ] ] "md" => """ | Analysis | Limit | Result | Pass/Fail |\n | ---------- | ----------- | ----------- | --------- |\n | Cyprodinil | <0.01 mg/kg | <0.01 mg/kg | Pass |\n | Dichlorvos | <0.05 mg/kg | <0.05 mg/kg | Pass |\n | Dimethoate | <0.01 mg/kg | <0.01 mg/kg | Pass |\n | Fluopyram | <0.01 mg/kg | <0.01 mg/kg | Pass | """ "isPerfectTable" => true "csv" => """ "Analysis","Limit","Result","Pass/Fail"\n "Cyprodinil","<0.01 mg/kg","<0.01 mg/kg","Pass"\n "Dichlorvos","<0.05 mg/kg","<0.05 mg/kg","Pass"\n "Dimethoate","<0.01 mg/kg","<0.01 mg/kg","Pass"\n "Fluopyram","<0.01 mg/kg","<0.01 mg/kg","Pass" """ ] [ "type" => "text" "value" => """ * This analysis or component is not ISO accredited.\n \n Printed: 25-Apr-2025 6:32 pm \n Page 3 of 9 """ "md" => """ * This analysis or component is not ISO accredited.\n \n Printed: 25-Apr-2025 6:32 pm \n Page 3 of 9 """ ] ] "status" => "OK" "originalOrientationAngle" => 0 "links" => [] "triggeredAutoMode" => false "parsingMode" => "multimodal-openai-gpt4o" "structuredData" => null "noStructuredContent" => false "noTextContent" => false ] ] "job_metadata" => [ "credits_used" => 0 "job_credits_usage" => 0 "job_pages" => 1 "job_auto_mode_triggered_pages" => 0 "job_is_cache_hit" => false ] ] -labName: "Charlotte's Web, Inc." -sampleName: "CW 60mg Organic Orange Blossom 30mL" -sampleMatrix: "product" -internalPath: "/home/cbdextract/cbdextract.nw.agency/source/public/lab-reports/LabReportCOAPart3.jpg" -productType: "cannabis" -aILogs: Doctrine\ORM\PersistentCollection {#964 …} -products: Doctrine\ORM\PersistentCollection {#1018 …} } |
| View Format | same as normalized format |
Submitted Data
This form was not submitted.
Passed Options
| Option | Passed Value | Resolved Value |
|---|---|---|
| attr | [ "class" => "ea-edit-form" "id" => "edit-LabReport-form" ] |
[ "class" => "ea-edit-form" "id" => "edit-LabReport-form" ] |
| data | App\Entity\LabReport {#854 -id: 843 -name: "Lab Report COA Part 3" -externalUrl: "https://purecbdnc.com/cdn/shop/files/Charlotte_sWeb_CBDFullSpectrumTincture60mg-30ml_OrangeCOA2025-04-253_98c7426c-419c-45dc-b5c7-3f7c31fba816.jpg?v=1747428923" -source: null -type: "jpg" -project: Proxies\__CG__\App\Entity\Project {#903 -id: 104 -name: "pure cbd" -url: "https://purecbdnc.com/" -prompt: null -chatJson: null -externalLabReportsUrl: null -spiderSourceUrls: Doctrine\ORM\PersistentCollection {#1521 …} -productMatchingUrl: null -productUrls: Doctrine\ORM\PersistentCollection {#1556 …} -labReportSources: Doctrine\ORM\PersistentCollection {#1527 …} -labReports: Doctrine\ORM\PersistentCollection {#1558 …} -createdAt: DateTime @1744068184 {#1495 : 2025-04-07 23:23:04.0 UTC (+00:00) } -updatedAt: DateTime @1768286193 {#1485 : 2026-01-13 06:36:33.0 UTC (+00:00) } -spiderSourceMatchingUrls: null -state: "ready_to_hunt" -products: Doctrine\ORM\PersistentCollection {#1560 …} -productPages: Doctrine\ORM\PersistentCollection {#1581 …} -websiteFramework: "shopify" -debugData: "{"error":{"message":"DOMDocument::loadHTML(): Argument #1 ($source) must not be empty","trace":"#0 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/FrameworkHelper.php(346): DOMDocument->loadHTML()\n#1 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Crawler\/ProductHuntCrawlerObserver.php(134): App\\Helper\\FrameworkHelper->is_shopify_product_page()\n#2 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/CrawlObservers\/CrawlObserverCollection.php(28): App\\Crawler\\ProductHuntCrawlerObserver->crawled()\n#3 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(104): Spatie\\Crawler\\CrawlObservers\\CrawlObserverCollection->crawled()\n#4 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(70): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->handleCrawled()\n#5 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(173): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->__invoke()\n#6 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(209): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#7 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(158): GuzzleHttp\\Promise\\Promise::callHandler()\n#8 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/TaskQueue.php(52): GuzzleHttp\\Promise\\Promise::GuzzleHttp\\Promise\\{closure}()\n#9 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(167): GuzzleHttp\\Promise\\TaskQueue->run()\n#10 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(206): GuzzleHttp\\Handler\\CurlMultiHandler->tick()\n#11 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Handler\\CurlMultiHandler->execute()\n#12 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#13 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(272): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#14 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(229): GuzzleHttp\\Promise\\Promise->invokeWaitList()\n#15 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#16 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(109): GuzzleHttp\\Promise\\Promise->wait()\n#17 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#18 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#19 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#20 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(494): GuzzleHttp\\Promise\\Promise->wait()\n#21 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(443): Spatie\\Crawler\\Crawler->startCrawlingQueue()\n#22 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/CrawlerHelper.php(181): Spatie\\Crawler\\Crawler->startCrawling()\n#23 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/ProjectHelper.php(250): App\\Helper\\CrawlerHelper->crawlProjectProducts()\n#24 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Command\/Cron\/ProductHuntCommand.php(60): App\\Helper\\ProjectHelper->huntProducts()\n#25 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Command\/Command.php(279): App\\Command\\Cron\\ProductHuntCommand->execute()\n#26 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(1047): Symfony\\Component\\Console\\Command\\Command->run()\n#27 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(123): Symfony\\Component\\Console\\Application->doRunCommand()\n#28 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(316): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRunCommand()\n#29 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(77): Symfony\\Component\\Console\\Application->doRun()\n#30 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(167): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRun()\n#31 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/runtime\/Runner\/Symfony\/ConsoleApplicationRunner.php(49): Symfony\\Component\\Console\\Application->run()\n#32 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/autoload_runtime.php(29): Symfony\\Component\\Runtime\\Runner\\Symfony\\ConsoleApplicationRunner->run()\n#33 \/home\/cbdextract\/cbdextract.nw.agency\/source\/bin\/console(15): require_once('...')\n#34 {main}"}}" -labReportFails: Doctrine\ORM\PersistentCollection {#1609 …} -productExcludePaths: null -aILogs: Doctrine\ORM\PersistentCollection {#1586 …} -user: null -aIBatchJobs: Doctrine\ORM\PersistentCollection {#1650 …} -lazyObjectState: Symfony\Component\VarExporter\Internal\LazyObjectState {#906 …} } -labReportSource: null -createdAt: DateTime @1748152551 {#848 : 2025-05-25 05:55:51.0 UTC (+00:00) } -updatedAt: DateTime @1748138197 {#845 : 2025-05-25 01:56:37.0 UTC (+00:00) } -category: null -state: "processed" -expiryDate: "2027-04-16" -extractionDate: "2025-04-25" -thcaPercentage: "0" -totalThcPercentage: "0" -deltaNinePercentage: "0" -deltaNineWithThcaCombined: "0" -comments: null -internalUrl: "https://cbdextract.nw.agency/lab-reports/LabReportCOAPart3.jpg" -markdownContent: ""# Certificate of Analysis\n\n**Charlotte's Web, Inc.** \n700 Tech Court \nLouisville Colorado 80027 United States\n\n**Report Number:** 4901775-0 \n**Report Date:** 25-Apr-2025 \n**Report Status:** Final\n\n----\n\n## Sample Information\n\n| Sample Name: | A01417 - Composite | Eurofins Sample: | 15217285 |\n| -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n| Project ID: | CHARLO\\_WEB-20250416-0138 | Receipt Date: | 21-Apr-2025 |\n| PO Number: | QC 325 | Receipt Condition: | Ambient temperature |\n| Sample Serving Size: | 0.5 mL | Login Date: | 16-Apr-2025 |\n| Description: | CW 60mg Organic Orange Blossom 30mL | Date Started: | 21-Apr-2025 |\n| | 60 | Sampled: | Sample results apply as received |\n| MFG: | April 16 2025 | Number Composited: | 3 |\n| EXP: | April 16 2027 | Online Order: | SO-2025-E03804 |\n\n\n----\n\n## Analysis\n\n### Residual Solvent Analysis in Cannabis and Hemp Matrices\n\nThe ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *\n\n#### Category I Residual Solvent or Processing Chemical\n\n| Analysis | Limit | Result | Pass\/Fail |\n| ------------------------------ | --------- | ------ | --------- |\n| Acetone | <180 ppm | | |\n| Acetonitrile | <180 ppm | | |\n| n-Butane | <500 ppm | | |\n| Ethanol | <1000 ppm | | |\n| Ethyl Acetate | <1000 ppm | | |\n| Ethyl Ether | <1000 ppm | | |\n| Heptane | <500 ppm | | |\n| n-Hexane | <30.0 ppm | | |\n| Methanol | <1000 ppm | | |\n| n-Pentane | <250 ppm | | |\n| Propane | <1000 ppm | | |\n| Isopropyl Alcohol | <1000 ppm | | |\n| Toluene | <85.0 ppm | | |\n| Xylenes (ortho-, meta-, para-) | <160 ppm | | |\n\n\nThe Pass\/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *\n\n### Multi-Residue Analysis for hemp products\n\n| Analysis | Limit | Result | Pass\/Fail |\n| ---------- | ----------- | ----------- | --------- |\n| Cyprodinil | <0.01 mg\/kg | <0.01 mg\/kg | Pass |\n| Dichlorvos | <0.05 mg\/kg | <0.05 mg\/kg | Pass |\n| Dimethoate | <0.01 mg\/kg | <0.01 mg\/kg | Pass |\n| Fluopyram | <0.01 mg\/kg | <0.01 mg\/kg | Pass |\n\n\n* This analysis or component is not ISO accredited.\n\nPrinted: 25-Apr-2025 6:32 pm \nPage 3 of 9"" -debugData: null -jsonContent: [ "pages" => [ [ "page" => 1 "md" => """ # Certificate of Analysis\n \n **Charlotte's Web, Inc.** \n 700 Tech Court \n Louisville Colorado 80027 United States\n \n **Report Number:** 4901775-0 \n **Report Date:** 25-Apr-2025 \n **Report Status:** Final\n \n ----\n \n ## Sample Information\n \n | Sample Name: | A01417 - Composite | Eurofins Sample: | 15217285 |\n | -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n | Project ID: | CHARLO\_WEB-20250416-0138 | Receipt Date: | 21-Apr-2025 |\n | PO Number: | QC 325 | Receipt Condition: | Ambient temperature |\n | Sample Serving Size: | 0.5 mL | Login Date: | 16-Apr-2025 |\n | Description: | CW 60mg Organic Orange Blossom 30mL | Date Started: | 21-Apr-2025 |\n | | 60 | Sampled: | Sample results apply as received |\n | MFG: | April 16 2025 | Number Composited: | 3 |\n | EXP: | April 16 2027 | Online Order: | SO-2025-E03804 |\n \n \n ----\n \n ## Analysis\n \n ### Residual Solvent Analysis in Cannabis and Hemp Matrices\n \n The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *\n \n #### Category I Residual Solvent or Processing Chemical\n \n | Analysis | Limit | Result | Pass/Fail |\n | ------------------------------ | --------- | ------ | --------- |\n | Acetone | <180 ppm | | |\n | Acetonitrile | <180 ppm | | |\n | n-Butane | <500 ppm | | |\n | Ethanol | <1000 ppm | | |\n | Ethyl Acetate | <1000 ppm | | |\n | Ethyl Ether | <1000 ppm | | |\n | Heptane | <500 ppm | | |\n | n-Hexane | <30.0 ppm | | |\n | Methanol | <1000 ppm | | |\n | n-Pentane | <250 ppm | | |\n | Propane | <1000 ppm | | |\n | Isopropyl Alcohol | <1000 ppm | | |\n | Toluene | <85.0 ppm | | |\n | Xylenes (ortho-, meta-, para-) | <160 ppm | | |\n \n \n The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *\n \n ### Multi-Residue Analysis for hemp products\n \n | Analysis | Limit | Result | Pass/Fail |\n | ---------- | ----------- | ----------- | --------- |\n | Cyprodinil | <0.01 mg/kg | <0.01 mg/kg | Pass |\n | Dichlorvos | <0.05 mg/kg | <0.05 mg/kg | Pass |\n | Dimethoate | <0.01 mg/kg | <0.01 mg/kg | Pass |\n | Fluopyram | <0.01 mg/kg | <0.01 mg/kg | Pass |\n \n \n * This analysis or component is not ISO accredited.\n \n Printed: 25-Apr-2025 6:32 pm \n Page 3 of 9 """ "images" => [ [ "name" => "page_1.jpg" "height" => 0 "width" => 0 "x" => 0 "y" => 0 "type" => "full_page_screenshot" ] ] "charts" => [] "items" => [ [ "type" => "heading" "lvl" => 1 "value" => "Certificate of Analysis" "md" => "# Certificate of Analysis" ] [ "type" => "text" "value" => """ **Charlotte's Web, Inc.** \n 700 Tech Court \n Louisville Colorado 80027 United States\n \n **Report Number:** 4901775-0 \n **Report Date:** 25-Apr-2025 \n **Report Status:** Final\n \n ---- """ "md" => """ **Charlotte's Web, Inc.** \n 700 Tech Court \n Louisville Colorado 80027 United States\n \n **Report Number:** 4901775-0 \n **Report Date:** 25-Apr-2025 \n **Report Status:** Final\n \n ---- """ ] [ "type" => "heading" "lvl" => 2 "value" => "Sample Information" "md" => "## Sample Information" ] [ "type" => "table" "rows" => [ [ "Sample Name:" "A01417 - Composite" "Eurofins Sample:" "15217285" ] [ "Project ID:" "CHARLO_WEB-20250416-0138" "Receipt Date:" "21-Apr-2025" ] [ "PO Number:" "QC 325" "Receipt Condition:" "Ambient temperature" ] [ "Sample Serving Size:" "0.5 mL" "Login Date:" "16-Apr-2025" ] [ "Description:" "CW 60mg Organic Orange Blossom 30mL" "Date Started:" "21-Apr-2025" ] [ "" "60" "Sampled:" "Sample results apply as received" ] [ "MFG:" "April 16 2025" "Number Composited:" "3" ] [ "EXP:" "April 16 2027" "Online Order:" "SO-2025-E03804" ] ] "md" => """ | Sample Name: | A01417 - Composite | Eurofins Sample: | 15217285 |\n | -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n | Project ID: | CHARLO\_WEB-20250416-0138 | Receipt Date: | 21-Apr-2025 |\n | PO Number: | QC 325 | Receipt Condition: | Ambient temperature |\n | Sample Serving Size: | 0.5 mL | Login Date: | 16-Apr-2025 |\n | Description: | CW 60mg Organic Orange Blossom 30mL | Date Started: | 21-Apr-2025 |\n | | 60 | Sampled: | Sample results apply as received |\n | MFG: | April 16 2025 | Number Composited: | 3 |\n | EXP: | April 16 2027 | Online Order: | SO-2025-E03804 | """ "isPerfectTable" => true "csv" => """ "Sample Name:","A01417 - Composite","Eurofins Sample:","15217285"\n "Project ID:","CHARLO_WEB-20250416-0138","Receipt Date:","21-Apr-2025"\n "PO Number:","QC 325","Receipt Condition:","Ambient temperature"\n "Sample Serving Size:","0.5 mL","Login Date:","16-Apr-2025"\n "Description:","CW 60mg Organic Orange Blossom 30mL","Date Started:","21-Apr-2025"\n "","60","Sampled:","Sample results apply as received"\n "MFG:","April 16 2025","Number Composited:","3"\n "EXP:","April 16 2027","Online Order:","SO-2025-E03804" """ ] [ "type" => "text" "value" => "----" "md" => "----" ] [ "type" => "heading" "lvl" => 2 "value" => "Analysis" "md" => "## Analysis" ] [ "type" => "heading" "lvl" => 3 "value" => "Residual Solvent Analysis in Cannabis and Hemp Matrices" "md" => "### Residual Solvent Analysis in Cannabis and Hemp Matrices" ] [ "type" => "text" "value" => "The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *" "md" => "The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *" ] [ "type" => "heading" "lvl" => 4 "value" => "Category I Residual Solvent or Processing Chemical" "md" => "#### Category I Residual Solvent or Processing Chemical" ] [ "type" => "table" "rows" => [ [ "Analysis" "Limit" "Result" "Pass/Fail" ] [ "Acetone" "<180 ppm" "" "" ] [ "Acetonitrile" "<180 ppm" "" "" ] [ "n-Butane" "<500 ppm" "" "" ] [ "Ethanol" "<1000 ppm" "" "" ] [ "Ethyl Acetate" "<1000 ppm" "" "" ] [ "Ethyl Ether" "<1000 ppm" "" "" ] [ "Heptane" "<500 ppm" "" "" ] [ "n-Hexane" "<30.0 ppm" "" "" ] [ "Methanol" "<1000 ppm" "" "" ] [ "n-Pentane" "<250 ppm" "" "" ] [ "Propane" "<1000 ppm" "" "" ] [ "Isopropyl Alcohol" "<1000 ppm" "" "" ] [ "Toluene" "<85.0 ppm" "" "" ] [ "Xylenes (ortho-, meta-, para-)" "<160 ppm" "" "" ] ] "md" => """ | Analysis | Limit | Result | Pass/Fail |\n | ------------------------------ | --------- | ------ | --------- |\n | Acetone | <180 ppm | | |\n | Acetonitrile | <180 ppm | | |\n | n-Butane | <500 ppm | | |\n | Ethanol | <1000 ppm | | |\n | Ethyl Acetate | <1000 ppm | | |\n | Ethyl Ether | <1000 ppm | | |\n | Heptane | <500 ppm | | |\n | n-Hexane | <30.0 ppm | | |\n | Methanol | <1000 ppm | | |\n | n-Pentane | <250 ppm | | |\n | Propane | <1000 ppm | | |\n | Isopropyl Alcohol | <1000 ppm | | |\n | Toluene | <85.0 ppm | | |\n | Xylenes (ortho-, meta-, para-) | <160 ppm | | | """ "isPerfectTable" => true "csv" => """ "Analysis","Limit","Result","Pass/Fail"\n "Acetone","<180 ppm","",""\n "Acetonitrile","<180 ppm","",""\n "n-Butane","<500 ppm","",""\n "Ethanol","<1000 ppm","",""\n "Ethyl Acetate","<1000 ppm","",""\n "Ethyl Ether","<1000 ppm","",""\n "Heptane","<500 ppm","",""\n "n-Hexane","<30.0 ppm","",""\n "Methanol","<1000 ppm","",""\n "n-Pentane","<250 ppm","",""\n "Propane","<1000 ppm","",""\n "Isopropyl Alcohol","<1000 ppm","",""\n "Toluene","<85.0 ppm","",""\n "Xylenes (ortho-, meta-, para-)","<160 ppm","","" """ ] [ "type" => "text" "value" => "The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *" "md" => "The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *" ] [ "type" => "heading" "lvl" => 3 "value" => "Multi-Residue Analysis for hemp products" "md" => "### Multi-Residue Analysis for hemp products" ] [ "type" => "table" "rows" => [ [ "Analysis" "Limit" "Result" "Pass/Fail" ] [ "Cyprodinil" "<0.01 mg/kg" "<0.01 mg/kg" "Pass" ] [ "Dichlorvos" "<0.05 mg/kg" "<0.05 mg/kg" "Pass" ] [ "Dimethoate" "<0.01 mg/kg" "<0.01 mg/kg" "Pass" ] [ "Fluopyram" "<0.01 mg/kg" "<0.01 mg/kg" "Pass" ] ] "md" => """ | Analysis | Limit | Result | Pass/Fail |\n | ---------- | ----------- | ----------- | --------- |\n | Cyprodinil | <0.01 mg/kg | <0.01 mg/kg | Pass |\n | Dichlorvos | <0.05 mg/kg | <0.05 mg/kg | Pass |\n | Dimethoate | <0.01 mg/kg | <0.01 mg/kg | Pass |\n | Fluopyram | <0.01 mg/kg | <0.01 mg/kg | Pass | """ "isPerfectTable" => true "csv" => """ "Analysis","Limit","Result","Pass/Fail"\n "Cyprodinil","<0.01 mg/kg","<0.01 mg/kg","Pass"\n "Dichlorvos","<0.05 mg/kg","<0.05 mg/kg","Pass"\n "Dimethoate","<0.01 mg/kg","<0.01 mg/kg","Pass"\n "Fluopyram","<0.01 mg/kg","<0.01 mg/kg","Pass" """ ] [ "type" => "text" "value" => """ * This analysis or component is not ISO accredited.\n \n Printed: 25-Apr-2025 6:32 pm \n Page 3 of 9 """ "md" => """ * This analysis or component is not ISO accredited.\n \n Printed: 25-Apr-2025 6:32 pm \n Page 3 of 9 """ ] ] "status" => "OK" "originalOrientationAngle" => 0 "links" => [] "triggeredAutoMode" => false "parsingMode" => "multimodal-openai-gpt4o" "structuredData" => null "noStructuredContent" => false "noTextContent" => false ] ] "job_metadata" => [ "credits_used" => 0 "job_credits_usage" => 0 "job_pages" => 1 "job_auto_mode_triggered_pages" => 0 "job_is_cache_hit" => false ] ] -labName: "Charlotte's Web, Inc." -sampleName: "CW 60mg Organic Orange Blossom 30mL" -sampleMatrix: "product" -internalPath: "/home/cbdextract/cbdextract.nw.agency/source/public/lab-reports/LabReportCOAPart3.jpg" -productType: "cannabis" -aILogs: Doctrine\ORM\PersistentCollection {#964 …} -products: Doctrine\ORM\PersistentCollection {#1018 …} } |
same as passed value |
| entityDto | EasyCorp\Bundle\EasyAdminBundle\Dto\EntityDto {#844 -isAccessible: true -fqcn: "App\Entity\LabReport" -metadata: Doctrine\ORM\Mapping\ClassMetadata {#691 …} -instance: App\Entity\LabReport {#854 -id: 843 -name: "Lab Report COA Part 3" -externalUrl: "https://purecbdnc.com/cdn/shop/files/Charlotte_sWeb_CBDFullSpectrumTincture60mg-30ml_OrangeCOA2025-04-253_98c7426c-419c-45dc-b5c7-3f7c31fba816.jpg?v=1747428923" -source: null -type: "jpg" -project: Proxies\__CG__\App\Entity\Project {#903 -id: 104 -name: "pure cbd" -url: "https://purecbdnc.com/" -prompt: null -chatJson: null -externalLabReportsUrl: null -spiderSourceUrls: Doctrine\ORM\PersistentCollection {#1521 …} -productMatchingUrl: null -productUrls: Doctrine\ORM\PersistentCollection {#1556 …} -labReportSources: Doctrine\ORM\PersistentCollection {#1527 …} -labReports: Doctrine\ORM\PersistentCollection {#1558 …} -createdAt: DateTime @1744068184 {#1495 : 2025-04-07 23:23:04.0 UTC (+00:00) } -updatedAt: DateTime @1768286193 {#1485 : 2026-01-13 06:36:33.0 UTC (+00:00) } -spiderSourceMatchingUrls: null -state: "ready_to_hunt" -products: Doctrine\ORM\PersistentCollection {#1560 …} -productPages: Doctrine\ORM\PersistentCollection {#1581 …} -websiteFramework: "shopify" -debugData: "{"error":{"message":"DOMDocument::loadHTML(): Argument #1 ($source) must not be empty","trace":"#0 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/FrameworkHelper.php(346): DOMDocument->loadHTML()\n#1 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Crawler\/ProductHuntCrawlerObserver.php(134): App\\Helper\\FrameworkHelper->is_shopify_product_page()\n#2 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/CrawlObservers\/CrawlObserverCollection.php(28): App\\Crawler\\ProductHuntCrawlerObserver->crawled()\n#3 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(104): Spatie\\Crawler\\CrawlObservers\\CrawlObserverCollection->crawled()\n#4 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(70): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->handleCrawled()\n#5 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(173): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->__invoke()\n#6 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(209): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#7 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(158): GuzzleHttp\\Promise\\Promise::callHandler()\n#8 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/TaskQueue.php(52): GuzzleHttp\\Promise\\Promise::GuzzleHttp\\Promise\\{closure}()\n#9 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(167): GuzzleHttp\\Promise\\TaskQueue->run()\n#10 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(206): GuzzleHttp\\Handler\\CurlMultiHandler->tick()\n#11 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Handler\\CurlMultiHandler->execute()\n#12 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#13 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(272): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#14 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(229): GuzzleHttp\\Promise\\Promise->invokeWaitList()\n#15 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#16 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(109): GuzzleHttp\\Promise\\Promise->wait()\n#17 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#18 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#19 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#20 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(494): GuzzleHttp\\Promise\\Promise->wait()\n#21 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(443): Spatie\\Crawler\\Crawler->startCrawlingQueue()\n#22 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/CrawlerHelper.php(181): Spatie\\Crawler\\Crawler->startCrawling()\n#23 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/ProjectHelper.php(250): App\\Helper\\CrawlerHelper->crawlProjectProducts()\n#24 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Command\/Cron\/ProductHuntCommand.php(60): App\\Helper\\ProjectHelper->huntProducts()\n#25 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Command\/Command.php(279): App\\Command\\Cron\\ProductHuntCommand->execute()\n#26 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(1047): Symfony\\Component\\Console\\Command\\Command->run()\n#27 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(123): Symfony\\Component\\Console\\Application->doRunCommand()\n#28 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(316): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRunCommand()\n#29 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(77): Symfony\\Component\\Console\\Application->doRun()\n#30 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(167): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRun()\n#31 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/runtime\/Runner\/Symfony\/ConsoleApplicationRunner.php(49): Symfony\\Component\\Console\\Application->run()\n#32 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/autoload_runtime.php(29): Symfony\\Component\\Runtime\\Runner\\Symfony\\ConsoleApplicationRunner->run()\n#33 \/home\/cbdextract\/cbdextract.nw.agency\/source\/bin\/console(15): require_once('...')\n#34 {main}"}}" -labReportFails: Doctrine\ORM\PersistentCollection {#1609 …} -productExcludePaths: null -aILogs: Doctrine\ORM\PersistentCollection {#1586 …} -user: null -aIBatchJobs: Doctrine\ORM\PersistentCollection {#1650 …} -lazyObjectState: Symfony\Component\VarExporter\Internal\LazyObjectState {#906 …} } -labReportSource: null -createdAt: DateTime @1748152551 {#848 : 2025-05-25 05:55:51.0 UTC (+00:00) } -updatedAt: DateTime @1748138197 {#845 : 2025-05-25 01:56:37.0 UTC (+00:00) } -category: null -state: "processed" -expiryDate: "2027-04-16" -extractionDate: "2025-04-25" -thcaPercentage: "0" -totalThcPercentage: "0" -deltaNinePercentage: "0" -deltaNineWithThcaCombined: "0" -comments: null -internalUrl: "https://cbdextract.nw.agency/lab-reports/LabReportCOAPart3.jpg" -markdownContent: ""# Certificate of Analysis\n\n**Charlotte's Web, Inc.** \n700 Tech Court \nLouisville Colorado 80027 United States\n\n**Report Number:** 4901775-0 \n**Report Date:** 25-Apr-2025 \n**Report Status:** Final\n\n----\n\n## Sample Information\n\n| Sample Name: | A01417 - Composite | Eurofins Sample: | 15217285 |\n| -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n| Project ID: | CHARLO\\_WEB-20250416-0138 | Receipt Date: | 21-Apr-2025 |\n| PO Number: | QC 325 | Receipt Condition: | Ambient temperature |\n| Sample Serving Size: | 0.5 mL | Login Date: | 16-Apr-2025 |\n| Description: | CW 60mg Organic Orange Blossom 30mL | Date Started: | 21-Apr-2025 |\n| | 60 | Sampled: | Sample results apply as received |\n| MFG: | April 16 2025 | Number Composited: | 3 |\n| EXP: | April 16 2027 | Online Order: | SO-2025-E03804 |\n\n\n----\n\n## Analysis\n\n### Residual Solvent Analysis in Cannabis and Hemp Matrices\n\nThe ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *\n\n#### Category I Residual Solvent or Processing Chemical\n\n| Analysis | Limit | Result | Pass\/Fail |\n| ------------------------------ | --------- | ------ | --------- |\n| Acetone | <180 ppm | | |\n| Acetonitrile | <180 ppm | | |\n| n-Butane | <500 ppm | | |\n| Ethanol | <1000 ppm | | |\n| Ethyl Acetate | <1000 ppm | | |\n| Ethyl Ether | <1000 ppm | | |\n| Heptane | <500 ppm | | |\n| n-Hexane | <30.0 ppm | | |\n| Methanol | <1000 ppm | | |\n| n-Pentane | <250 ppm | | |\n| Propane | <1000 ppm | | |\n| Isopropyl Alcohol | <1000 ppm | | |\n| Toluene | <85.0 ppm | | |\n| Xylenes (ortho-, meta-, para-) | <160 ppm | | |\n\n\nThe Pass\/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *\n\n### Multi-Residue Analysis for hemp products\n\n| Analysis | Limit | Result | Pass\/Fail |\n| ---------- | ----------- | ----------- | --------- |\n| Cyprodinil | <0.01 mg\/kg | <0.01 mg\/kg | Pass |\n| Dichlorvos | <0.05 mg\/kg | <0.05 mg\/kg | Pass |\n| Dimethoate | <0.01 mg\/kg | <0.01 mg\/kg | Pass |\n| Fluopyram | <0.01 mg\/kg | <0.01 mg\/kg | Pass |\n\n\n* This analysis or component is not ISO accredited.\n\nPrinted: 25-Apr-2025 6:32 pm \nPage 3 of 9"" -debugData: null -jsonContent: [ "pages" => [ [ "page" => 1 "md" => """ # Certificate of Analysis\n \n **Charlotte's Web, Inc.** \n 700 Tech Court \n Louisville Colorado 80027 United States\n \n **Report Number:** 4901775-0 \n **Report Date:** 25-Apr-2025 \n **Report Status:** Final\n \n ----\n \n ## Sample Information\n \n | Sample Name: | A01417 - Composite | Eurofins Sample: | 15217285 |\n | -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n | Project ID: | CHARLO\_WEB-20250416-0138 | Receipt Date: | 21-Apr-2025 |\n | PO Number: | QC 325 | Receipt Condition: | Ambient temperature |\n | Sample Serving Size: | 0.5 mL | Login Date: | 16-Apr-2025 |\n | Description: | CW 60mg Organic Orange Blossom 30mL | Date Started: | 21-Apr-2025 |\n | | 60 | Sampled: | Sample results apply as received |\n | MFG: | April 16 2025 | Number Composited: | 3 |\n | EXP: | April 16 2027 | Online Order: | SO-2025-E03804 |\n \n \n ----\n \n ## Analysis\n \n ### Residual Solvent Analysis in Cannabis and Hemp Matrices\n \n The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *\n \n #### Category I Residual Solvent or Processing Chemical\n \n | Analysis | Limit | Result | Pass/Fail |\n | ------------------------------ | --------- | ------ | --------- |\n | Acetone | <180 ppm | | |\n | Acetonitrile | <180 ppm | | |\n | n-Butane | <500 ppm | | |\n | Ethanol | <1000 ppm | | |\n | Ethyl Acetate | <1000 ppm | | |\n | Ethyl Ether | <1000 ppm | | |\n | Heptane | <500 ppm | | |\n | n-Hexane | <30.0 ppm | | |\n | Methanol | <1000 ppm | | |\n | n-Pentane | <250 ppm | | |\n | Propane | <1000 ppm | | |\n | Isopropyl Alcohol | <1000 ppm | | |\n | Toluene | <85.0 ppm | | |\n | Xylenes (ortho-, meta-, para-) | <160 ppm | | |\n \n \n The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *\n \n ### Multi-Residue Analysis for hemp products\n \n | Analysis | Limit | Result | Pass/Fail |\n | ---------- | ----------- | ----------- | --------- |\n | Cyprodinil | <0.01 mg/kg | <0.01 mg/kg | Pass |\n | Dichlorvos | <0.05 mg/kg | <0.05 mg/kg | Pass |\n | Dimethoate | <0.01 mg/kg | <0.01 mg/kg | Pass |\n | Fluopyram | <0.01 mg/kg | <0.01 mg/kg | Pass |\n \n \n * This analysis or component is not ISO accredited.\n \n Printed: 25-Apr-2025 6:32 pm \n Page 3 of 9 """ "images" => [ [ "name" => "page_1.jpg" "height" => 0 "width" => 0 "x" => 0 "y" => 0 "type" => "full_page_screenshot" ] ] "charts" => [] "items" => [ [ "type" => "heading" "lvl" => 1 "value" => "Certificate of Analysis" "md" => "# Certificate of Analysis" ] [ "type" => "text" "value" => """ **Charlotte's Web, Inc.** \n 700 Tech Court \n Louisville Colorado 80027 United States\n \n **Report Number:** 4901775-0 \n **Report Date:** 25-Apr-2025 \n **Report Status:** Final\n \n ---- """ "md" => """ **Charlotte's Web, Inc.** \n 700 Tech Court \n Louisville Colorado 80027 United States\n \n **Report Number:** 4901775-0 \n **Report Date:** 25-Apr-2025 \n **Report Status:** Final\n \n ---- """ ] [ "type" => "heading" "lvl" => 2 "value" => "Sample Information" "md" => "## Sample Information" ] [ "type" => "table" "rows" => [ [ "Sample Name:" "A01417 - Composite" "Eurofins Sample:" "15217285" ] [ "Project ID:" "CHARLO_WEB-20250416-0138" "Receipt Date:" "21-Apr-2025" ] [ "PO Number:" "QC 325" "Receipt Condition:" "Ambient temperature" ] [ "Sample Serving Size:" "0.5 mL" "Login Date:" "16-Apr-2025" ] [ "Description:" "CW 60mg Organic Orange Blossom 30mL" "Date Started:" "21-Apr-2025" ] [ "" "60" "Sampled:" "Sample results apply as received" ] [ "MFG:" "April 16 2025" "Number Composited:" "3" ] [ "EXP:" "April 16 2027" "Online Order:" "SO-2025-E03804" ] ] "md" => """ | Sample Name: | A01417 - Composite | Eurofins Sample: | 15217285 |\n | -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n | Project ID: | CHARLO\_WEB-20250416-0138 | Receipt Date: | 21-Apr-2025 |\n | PO Number: | QC 325 | Receipt Condition: | Ambient temperature |\n | Sample Serving Size: | 0.5 mL | Login Date: | 16-Apr-2025 |\n | Description: | CW 60mg Organic Orange Blossom 30mL | Date Started: | 21-Apr-2025 |\n | | 60 | Sampled: | Sample results apply as received |\n | MFG: | April 16 2025 | Number Composited: | 3 |\n | EXP: | April 16 2027 | Online Order: | SO-2025-E03804 | """ "isPerfectTable" => true "csv" => """ "Sample Name:","A01417 - Composite","Eurofins Sample:","15217285"\n "Project ID:","CHARLO_WEB-20250416-0138","Receipt Date:","21-Apr-2025"\n "PO Number:","QC 325","Receipt Condition:","Ambient temperature"\n "Sample Serving Size:","0.5 mL","Login Date:","16-Apr-2025"\n "Description:","CW 60mg Organic Orange Blossom 30mL","Date Started:","21-Apr-2025"\n "","60","Sampled:","Sample results apply as received"\n "MFG:","April 16 2025","Number Composited:","3"\n "EXP:","April 16 2027","Online Order:","SO-2025-E03804" """ ] [ "type" => "text" "value" => "----" "md" => "----" ] [ "type" => "heading" "lvl" => 2 "value" => "Analysis" "md" => "## Analysis" ] [ "type" => "heading" "lvl" => 3 "value" => "Residual Solvent Analysis in Cannabis and Hemp Matrices" "md" => "### Residual Solvent Analysis in Cannabis and Hemp Matrices" ] [ "type" => "text" "value" => "The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *" "md" => "The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *" ] [ "type" => "heading" "lvl" => 4 "value" => "Category I Residual Solvent or Processing Chemical" "md" => "#### Category I Residual Solvent or Processing Chemical" ] [ "type" => "table" "rows" => [ [ "Analysis" "Limit" "Result" "Pass/Fail" ] [ "Acetone" "<180 ppm" "" "" ] [ "Acetonitrile" "<180 ppm" "" "" ] [ "n-Butane" "<500 ppm" "" "" ] [ "Ethanol" "<1000 ppm" "" "" ] [ "Ethyl Acetate" "<1000 ppm" "" "" ] [ "Ethyl Ether" "<1000 ppm" "" "" ] [ "Heptane" "<500 ppm" "" "" ] [ "n-Hexane" "<30.0 ppm" "" "" ] [ "Methanol" "<1000 ppm" "" "" ] [ "n-Pentane" "<250 ppm" "" "" ] [ "Propane" "<1000 ppm" "" "" ] [ "Isopropyl Alcohol" "<1000 ppm" "" "" ] [ "Toluene" "<85.0 ppm" "" "" ] [ "Xylenes (ortho-, meta-, para-)" "<160 ppm" "" "" ] ] "md" => """ | Analysis | Limit | Result | Pass/Fail |\n | ------------------------------ | --------- | ------ | --------- |\n | Acetone | <180 ppm | | |\n | Acetonitrile | <180 ppm | | |\n | n-Butane | <500 ppm | | |\n | Ethanol | <1000 ppm | | |\n | Ethyl Acetate | <1000 ppm | | |\n | Ethyl Ether | <1000 ppm | | |\n | Heptane | <500 ppm | | |\n | n-Hexane | <30.0 ppm | | |\n | Methanol | <1000 ppm | | |\n | n-Pentane | <250 ppm | | |\n | Propane | <1000 ppm | | |\n | Isopropyl Alcohol | <1000 ppm | | |\n | Toluene | <85.0 ppm | | |\n | Xylenes (ortho-, meta-, para-) | <160 ppm | | | """ "isPerfectTable" => true "csv" => """ "Analysis","Limit","Result","Pass/Fail"\n "Acetone","<180 ppm","",""\n "Acetonitrile","<180 ppm","",""\n "n-Butane","<500 ppm","",""\n "Ethanol","<1000 ppm","",""\n "Ethyl Acetate","<1000 ppm","",""\n "Ethyl Ether","<1000 ppm","",""\n "Heptane","<500 ppm","",""\n "n-Hexane","<30.0 ppm","",""\n "Methanol","<1000 ppm","",""\n "n-Pentane","<250 ppm","",""\n "Propane","<1000 ppm","",""\n "Isopropyl Alcohol","<1000 ppm","",""\n "Toluene","<85.0 ppm","",""\n "Xylenes (ortho-, meta-, para-)","<160 ppm","","" """ ] [ "type" => "text" "value" => "The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *" "md" => "The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *" ] [ "type" => "heading" "lvl" => 3 "value" => "Multi-Residue Analysis for hemp products" "md" => "### Multi-Residue Analysis for hemp products" ] [ "type" => "table" "rows" => [ [ "Analysis" "Limit" "Result" "Pass/Fail" ] [ "Cyprodinil" "<0.01 mg/kg" "<0.01 mg/kg" "Pass" ] [ "Dichlorvos" "<0.05 mg/kg" "<0.05 mg/kg" "Pass" ] [ "Dimethoate" "<0.01 mg/kg" "<0.01 mg/kg" "Pass" ] [ "Fluopyram" "<0.01 mg/kg" "<0.01 mg/kg" "Pass" ] ] "md" => """ | Analysis | Limit | Result | Pass/Fail |\n | ---------- | ----------- | ----------- | --------- |\n | Cyprodinil | <0.01 mg/kg | <0.01 mg/kg | Pass |\n | Dichlorvos | <0.05 mg/kg | <0.05 mg/kg | Pass |\n | Dimethoate | <0.01 mg/kg | <0.01 mg/kg | Pass |\n | Fluopyram | <0.01 mg/kg | <0.01 mg/kg | Pass | """ "isPerfectTable" => true "csv" => """ "Analysis","Limit","Result","Pass/Fail"\n "Cyprodinil","<0.01 mg/kg","<0.01 mg/kg","Pass"\n "Dichlorvos","<0.05 mg/kg","<0.05 mg/kg","Pass"\n "Dimethoate","<0.01 mg/kg","<0.01 mg/kg","Pass"\n "Fluopyram","<0.01 mg/kg","<0.01 mg/kg","Pass" """ ] [ "type" => "text" "value" => """ * This analysis or component is not ISO accredited.\n \n Printed: 25-Apr-2025 6:32 pm \n Page 3 of 9 """ "md" => """ * This analysis or component is not ISO accredited.\n \n Printed: 25-Apr-2025 6:32 pm \n Page 3 of 9 """ ] ] "status" => "OK" "originalOrientationAngle" => 0 "links" => [] "triggeredAutoMode" => false "parsingMode" => "multimodal-openai-gpt4o" "structuredData" => null "noStructuredContent" => false "noTextContent" => false ] ] "job_metadata" => [ "credits_used" => 0 "job_credits_usage" => 0 "job_pages" => 1 "job_auto_mode_triggered_pages" => 0 "job_is_cache_hit" => false ] ] -labName: "Charlotte's Web, Inc." -sampleName: "CW 60mg Organic Orange Blossom 30mL" -sampleMatrix: "product" -internalPath: "/home/cbdextract/cbdextract.nw.agency/source/public/lab-reports/LabReportCOAPart3.jpg" -productType: "cannabis" -aILogs: Doctrine\ORM\PersistentCollection {#964 …} -products: Doctrine\ORM\PersistentCollection {#1018 …} } -primaryKeyName: "id" -primaryKeyValue: 843 -permission: null -fields: EasyCorp\Bundle\EasyAdminBundle\Collection\FieldCollection {#1343 …} -actions: EasyCorp\Bundle\EasyAdminBundle\Collection\ActionCollection {#1719 …} } |
same as passed value |
| translation_domain | "messages" |
same as passed value |
Resolved Options
| Option | Value |
|---|---|
| action | "" |
| allow_extra_fields | true |
| allow_file_upload | false |
| attr | [ "class" => "ea-edit-form" "id" => "edit-LabReport-form" ] |
| attr_translation_parameters | [] |
| auto_initialize | true |
| block_name | null |
| block_prefix | null |
| by_reference | true |
| compound | true |
| constraints | [] |
| csrf_field_name | "_token" |
| csrf_message | "The CSRF token is invalid. Please try to resubmit the form." |
| csrf_protection | true |
| csrf_token_id | null |
| csrf_token_manager | Symfony\Component\Security\Csrf\CsrfTokenManager {#395 -generator: Symfony\Component\Security\Csrf\TokenGenerator\UriSafeTokenGenerator {#396 …} -storage: Symfony\Component\Security\Csrf\TokenStorage\SessionTokenStorage {#397 …} -namespace: Closure() {#399 …} } |
| data | App\Entity\LabReport {#854 -id: 843 -name: "Lab Report COA Part 3" -externalUrl: "https://purecbdnc.com/cdn/shop/files/Charlotte_sWeb_CBDFullSpectrumTincture60mg-30ml_OrangeCOA2025-04-253_98c7426c-419c-45dc-b5c7-3f7c31fba816.jpg?v=1747428923" -source: null -type: "jpg" -project: Proxies\__CG__\App\Entity\Project {#903 -id: 104 -name: "pure cbd" -url: "https://purecbdnc.com/" -prompt: null -chatJson: null -externalLabReportsUrl: null -spiderSourceUrls: Doctrine\ORM\PersistentCollection {#1521 …} -productMatchingUrl: null -productUrls: Doctrine\ORM\PersistentCollection {#1556 …} -labReportSources: Doctrine\ORM\PersistentCollection {#1527 …} -labReports: Doctrine\ORM\PersistentCollection {#1558 …} -createdAt: DateTime @1744068184 {#1495 : 2025-04-07 23:23:04.0 UTC (+00:00) } -updatedAt: DateTime @1768286193 {#1485 : 2026-01-13 06:36:33.0 UTC (+00:00) } -spiderSourceMatchingUrls: null -state: "ready_to_hunt" -products: Doctrine\ORM\PersistentCollection {#1560 …} -productPages: Doctrine\ORM\PersistentCollection {#1581 …} -websiteFramework: "shopify" -debugData: "{"error":{"message":"DOMDocument::loadHTML(): Argument #1 ($source) must not be empty","trace":"#0 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/FrameworkHelper.php(346): DOMDocument->loadHTML()\n#1 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Crawler\/ProductHuntCrawlerObserver.php(134): App\\Helper\\FrameworkHelper->is_shopify_product_page()\n#2 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/CrawlObservers\/CrawlObserverCollection.php(28): App\\Crawler\\ProductHuntCrawlerObserver->crawled()\n#3 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(104): Spatie\\Crawler\\CrawlObservers\\CrawlObserverCollection->crawled()\n#4 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(70): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->handleCrawled()\n#5 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(173): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->__invoke()\n#6 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(209): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#7 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(158): GuzzleHttp\\Promise\\Promise::callHandler()\n#8 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/TaskQueue.php(52): GuzzleHttp\\Promise\\Promise::GuzzleHttp\\Promise\\{closure}()\n#9 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(167): GuzzleHttp\\Promise\\TaskQueue->run()\n#10 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(206): GuzzleHttp\\Handler\\CurlMultiHandler->tick()\n#11 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Handler\\CurlMultiHandler->execute()\n#12 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#13 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(272): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#14 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(229): GuzzleHttp\\Promise\\Promise->invokeWaitList()\n#15 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#16 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(109): GuzzleHttp\\Promise\\Promise->wait()\n#17 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#18 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#19 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#20 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(494): GuzzleHttp\\Promise\\Promise->wait()\n#21 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(443): Spatie\\Crawler\\Crawler->startCrawlingQueue()\n#22 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/CrawlerHelper.php(181): Spatie\\Crawler\\Crawler->startCrawling()\n#23 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/ProjectHelper.php(250): App\\Helper\\CrawlerHelper->crawlProjectProducts()\n#24 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Command\/Cron\/ProductHuntCommand.php(60): App\\Helper\\ProjectHelper->huntProducts()\n#25 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Command\/Command.php(279): App\\Command\\Cron\\ProductHuntCommand->execute()\n#26 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(1047): Symfony\\Component\\Console\\Command\\Command->run()\n#27 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(123): Symfony\\Component\\Console\\Application->doRunCommand()\n#28 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(316): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRunCommand()\n#29 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(77): Symfony\\Component\\Console\\Application->doRun()\n#30 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(167): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRun()\n#31 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/runtime\/Runner\/Symfony\/ConsoleApplicationRunner.php(49): Symfony\\Component\\Console\\Application->run()\n#32 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/autoload_runtime.php(29): Symfony\\Component\\Runtime\\Runner\\Symfony\\ConsoleApplicationRunner->run()\n#33 \/home\/cbdextract\/cbdextract.nw.agency\/source\/bin\/console(15): require_once('...')\n#34 {main}"}}" -labReportFails: Doctrine\ORM\PersistentCollection {#1609 …} -productExcludePaths: null -aILogs: Doctrine\ORM\PersistentCollection {#1586 …} -user: null -aIBatchJobs: Doctrine\ORM\PersistentCollection {#1650 …} -lazyObjectState: Symfony\Component\VarExporter\Internal\LazyObjectState {#906 …} } -labReportSource: null -createdAt: DateTime @1748152551 {#848 : 2025-05-25 05:55:51.0 UTC (+00:00) } -updatedAt: DateTime @1748138197 {#845 : 2025-05-25 01:56:37.0 UTC (+00:00) } -category: null -state: "processed" -expiryDate: "2027-04-16" -extractionDate: "2025-04-25" -thcaPercentage: "0" -totalThcPercentage: "0" -deltaNinePercentage: "0" -deltaNineWithThcaCombined: "0" -comments: null -internalUrl: "https://cbdextract.nw.agency/lab-reports/LabReportCOAPart3.jpg" -markdownContent: ""# Certificate of Analysis\n\n**Charlotte's Web, Inc.** \n700 Tech Court \nLouisville Colorado 80027 United States\n\n**Report Number:** 4901775-0 \n**Report Date:** 25-Apr-2025 \n**Report Status:** Final\n\n----\n\n## Sample Information\n\n| Sample Name: | A01417 - Composite | Eurofins Sample: | 15217285 |\n| -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n| Project ID: | CHARLO\\_WEB-20250416-0138 | Receipt Date: | 21-Apr-2025 |\n| PO Number: | QC 325 | Receipt Condition: | Ambient temperature |\n| Sample Serving Size: | 0.5 mL | Login Date: | 16-Apr-2025 |\n| Description: | CW 60mg Organic Orange Blossom 30mL | Date Started: | 21-Apr-2025 |\n| | 60 | Sampled: | Sample results apply as received |\n| MFG: | April 16 2025 | Number Composited: | 3 |\n| EXP: | April 16 2027 | Online Order: | SO-2025-E03804 |\n\n\n----\n\n## Analysis\n\n### Residual Solvent Analysis in Cannabis and Hemp Matrices\n\nThe ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *\n\n#### Category I Residual Solvent or Processing Chemical\n\n| Analysis | Limit | Result | Pass\/Fail |\n| ------------------------------ | --------- | ------ | --------- |\n| Acetone | <180 ppm | | |\n| Acetonitrile | <180 ppm | | |\n| n-Butane | <500 ppm | | |\n| Ethanol | <1000 ppm | | |\n| Ethyl Acetate | <1000 ppm | | |\n| Ethyl Ether | <1000 ppm | | |\n| Heptane | <500 ppm | | |\n| n-Hexane | <30.0 ppm | | |\n| Methanol | <1000 ppm | | |\n| n-Pentane | <250 ppm | | |\n| Propane | <1000 ppm | | |\n| Isopropyl Alcohol | <1000 ppm | | |\n| Toluene | <85.0 ppm | | |\n| Xylenes (ortho-, meta-, para-) | <160 ppm | | |\n\n\nThe Pass\/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *\n\n### Multi-Residue Analysis for hemp products\n\n| Analysis | Limit | Result | Pass\/Fail |\n| ---------- | ----------- | ----------- | --------- |\n| Cyprodinil | <0.01 mg\/kg | <0.01 mg\/kg | Pass |\n| Dichlorvos | <0.05 mg\/kg | <0.05 mg\/kg | Pass |\n| Dimethoate | <0.01 mg\/kg | <0.01 mg\/kg | Pass |\n| Fluopyram | <0.01 mg\/kg | <0.01 mg\/kg | Pass |\n\n\n* This analysis or component is not ISO accredited.\n\nPrinted: 25-Apr-2025 6:32 pm \nPage 3 of 9"" -debugData: null -jsonContent: [ "pages" => [ [ "page" => 1 "md" => """ # Certificate of Analysis\n \n **Charlotte's Web, Inc.** \n 700 Tech Court \n Louisville Colorado 80027 United States\n \n **Report Number:** 4901775-0 \n **Report Date:** 25-Apr-2025 \n **Report Status:** Final\n \n ----\n \n ## Sample Information\n \n | Sample Name: | A01417 - Composite | Eurofins Sample: | 15217285 |\n | -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n | Project ID: | CHARLO\_WEB-20250416-0138 | Receipt Date: | 21-Apr-2025 |\n | PO Number: | QC 325 | Receipt Condition: | Ambient temperature |\n | Sample Serving Size: | 0.5 mL | Login Date: | 16-Apr-2025 |\n | Description: | CW 60mg Organic Orange Blossom 30mL | Date Started: | 21-Apr-2025 |\n | | 60 | Sampled: | Sample results apply as received |\n | MFG: | April 16 2025 | Number Composited: | 3 |\n | EXP: | April 16 2027 | Online Order: | SO-2025-E03804 |\n \n \n ----\n \n ## Analysis\n \n ### Residual Solvent Analysis in Cannabis and Hemp Matrices\n \n The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *\n \n #### Category I Residual Solvent or Processing Chemical\n \n | Analysis | Limit | Result | Pass/Fail |\n | ------------------------------ | --------- | ------ | --------- |\n | Acetone | <180 ppm | | |\n | Acetonitrile | <180 ppm | | |\n | n-Butane | <500 ppm | | |\n | Ethanol | <1000 ppm | | |\n | Ethyl Acetate | <1000 ppm | | |\n | Ethyl Ether | <1000 ppm | | |\n | Heptane | <500 ppm | | |\n | n-Hexane | <30.0 ppm | | |\n | Methanol | <1000 ppm | | |\n | n-Pentane | <250 ppm | | |\n | Propane | <1000 ppm | | |\n | Isopropyl Alcohol | <1000 ppm | | |\n | Toluene | <85.0 ppm | | |\n | Xylenes (ortho-, meta-, para-) | <160 ppm | | |\n \n \n The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *\n \n ### Multi-Residue Analysis for hemp products\n \n | Analysis | Limit | Result | Pass/Fail |\n | ---------- | ----------- | ----------- | --------- |\n | Cyprodinil | <0.01 mg/kg | <0.01 mg/kg | Pass |\n | Dichlorvos | <0.05 mg/kg | <0.05 mg/kg | Pass |\n | Dimethoate | <0.01 mg/kg | <0.01 mg/kg | Pass |\n | Fluopyram | <0.01 mg/kg | <0.01 mg/kg | Pass |\n \n \n * This analysis or component is not ISO accredited.\n \n Printed: 25-Apr-2025 6:32 pm \n Page 3 of 9 """ "images" => [ [ "name" => "page_1.jpg" "height" => 0 "width" => 0 "x" => 0 "y" => 0 "type" => "full_page_screenshot" ] ] "charts" => [] "items" => [ [ "type" => "heading" "lvl" => 1 "value" => "Certificate of Analysis" "md" => "# Certificate of Analysis" ] [ "type" => "text" "value" => """ **Charlotte's Web, Inc.** \n 700 Tech Court \n Louisville Colorado 80027 United States\n \n **Report Number:** 4901775-0 \n **Report Date:** 25-Apr-2025 \n **Report Status:** Final\n \n ---- """ "md" => """ **Charlotte's Web, Inc.** \n 700 Tech Court \n Louisville Colorado 80027 United States\n \n **Report Number:** 4901775-0 \n **Report Date:** 25-Apr-2025 \n **Report Status:** Final\n \n ---- """ ] [ "type" => "heading" "lvl" => 2 "value" => "Sample Information" "md" => "## Sample Information" ] [ "type" => "table" "rows" => [ [ "Sample Name:" "A01417 - Composite" "Eurofins Sample:" "15217285" ] [ "Project ID:" "CHARLO_WEB-20250416-0138" "Receipt Date:" "21-Apr-2025" ] [ "PO Number:" "QC 325" "Receipt Condition:" "Ambient temperature" ] [ "Sample Serving Size:" "0.5 mL" "Login Date:" "16-Apr-2025" ] [ "Description:" "CW 60mg Organic Orange Blossom 30mL" "Date Started:" "21-Apr-2025" ] [ "" "60" "Sampled:" "Sample results apply as received" ] [ "MFG:" "April 16 2025" "Number Composited:" "3" ] [ "EXP:" "April 16 2027" "Online Order:" "SO-2025-E03804" ] ] "md" => """ | Sample Name: | A01417 - Composite | Eurofins Sample: | 15217285 |\n | -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n | Project ID: | CHARLO\_WEB-20250416-0138 | Receipt Date: | 21-Apr-2025 |\n | PO Number: | QC 325 | Receipt Condition: | Ambient temperature |\n | Sample Serving Size: | 0.5 mL | Login Date: | 16-Apr-2025 |\n | Description: | CW 60mg Organic Orange Blossom 30mL | Date Started: | 21-Apr-2025 |\n | | 60 | Sampled: | Sample results apply as received |\n | MFG: | April 16 2025 | Number Composited: | 3 |\n | EXP: | April 16 2027 | Online Order: | SO-2025-E03804 | """ "isPerfectTable" => true "csv" => """ "Sample Name:","A01417 - Composite","Eurofins Sample:","15217285"\n "Project ID:","CHARLO_WEB-20250416-0138","Receipt Date:","21-Apr-2025"\n "PO Number:","QC 325","Receipt Condition:","Ambient temperature"\n "Sample Serving Size:","0.5 mL","Login Date:","16-Apr-2025"\n "Description:","CW 60mg Organic Orange Blossom 30mL","Date Started:","21-Apr-2025"\n "","60","Sampled:","Sample results apply as received"\n "MFG:","April 16 2025","Number Composited:","3"\n "EXP:","April 16 2027","Online Order:","SO-2025-E03804" """ ] [ "type" => "text" "value" => "----" "md" => "----" ] [ "type" => "heading" "lvl" => 2 "value" => "Analysis" "md" => "## Analysis" ] [ "type" => "heading" "lvl" => 3 "value" => "Residual Solvent Analysis in Cannabis and Hemp Matrices" "md" => "### Residual Solvent Analysis in Cannabis and Hemp Matrices" ] [ "type" => "text" "value" => "The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *" "md" => "The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *" ] [ "type" => "heading" "lvl" => 4 "value" => "Category I Residual Solvent or Processing Chemical" "md" => "#### Category I Residual Solvent or Processing Chemical" ] [ "type" => "table" "rows" => [ [ "Analysis" "Limit" "Result" "Pass/Fail" ] [ "Acetone" "<180 ppm" "" "" ] [ "Acetonitrile" "<180 ppm" "" "" ] [ "n-Butane" "<500 ppm" "" "" ] [ "Ethanol" "<1000 ppm" "" "" ] [ "Ethyl Acetate" "<1000 ppm" "" "" ] [ "Ethyl Ether" "<1000 ppm" "" "" ] [ "Heptane" "<500 ppm" "" "" ] [ "n-Hexane" "<30.0 ppm" "" "" ] [ "Methanol" "<1000 ppm" "" "" ] [ "n-Pentane" "<250 ppm" "" "" ] [ "Propane" "<1000 ppm" "" "" ] [ "Isopropyl Alcohol" "<1000 ppm" "" "" ] [ "Toluene" "<85.0 ppm" "" "" ] [ "Xylenes (ortho-, meta-, para-)" "<160 ppm" "" "" ] ] "md" => """ | Analysis | Limit | Result | Pass/Fail |\n | ------------------------------ | --------- | ------ | --------- |\n | Acetone | <180 ppm | | |\n | Acetonitrile | <180 ppm | | |\n | n-Butane | <500 ppm | | |\n | Ethanol | <1000 ppm | | |\n | Ethyl Acetate | <1000 ppm | | |\n | Ethyl Ether | <1000 ppm | | |\n | Heptane | <500 ppm | | |\n | n-Hexane | <30.0 ppm | | |\n | Methanol | <1000 ppm | | |\n | n-Pentane | <250 ppm | | |\n | Propane | <1000 ppm | | |\n | Isopropyl Alcohol | <1000 ppm | | |\n | Toluene | <85.0 ppm | | |\n | Xylenes (ortho-, meta-, para-) | <160 ppm | | | """ "isPerfectTable" => true "csv" => """ "Analysis","Limit","Result","Pass/Fail"\n "Acetone","<180 ppm","",""\n "Acetonitrile","<180 ppm","",""\n "n-Butane","<500 ppm","",""\n "Ethanol","<1000 ppm","",""\n "Ethyl Acetate","<1000 ppm","",""\n "Ethyl Ether","<1000 ppm","",""\n "Heptane","<500 ppm","",""\n "n-Hexane","<30.0 ppm","",""\n "Methanol","<1000 ppm","",""\n "n-Pentane","<250 ppm","",""\n "Propane","<1000 ppm","",""\n "Isopropyl Alcohol","<1000 ppm","",""\n "Toluene","<85.0 ppm","",""\n "Xylenes (ortho-, meta-, para-)","<160 ppm","","" """ ] [ "type" => "text" "value" => "The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *" "md" => "The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *" ] [ "type" => "heading" "lvl" => 3 "value" => "Multi-Residue Analysis for hemp products" "md" => "### Multi-Residue Analysis for hemp products" ] [ "type" => "table" "rows" => [ [ "Analysis" "Limit" "Result" "Pass/Fail" ] [ "Cyprodinil" "<0.01 mg/kg" "<0.01 mg/kg" "Pass" ] [ "Dichlorvos" "<0.05 mg/kg" "<0.05 mg/kg" "Pass" ] [ "Dimethoate" "<0.01 mg/kg" "<0.01 mg/kg" "Pass" ] [ "Fluopyram" "<0.01 mg/kg" "<0.01 mg/kg" "Pass" ] ] "md" => """ | Analysis | Limit | Result | Pass/Fail |\n | ---------- | ----------- | ----------- | --------- |\n | Cyprodinil | <0.01 mg/kg | <0.01 mg/kg | Pass |\n | Dichlorvos | <0.05 mg/kg | <0.05 mg/kg | Pass |\n | Dimethoate | <0.01 mg/kg | <0.01 mg/kg | Pass |\n | Fluopyram | <0.01 mg/kg | <0.01 mg/kg | Pass | """ "isPerfectTable" => true "csv" => """ "Analysis","Limit","Result","Pass/Fail"\n "Cyprodinil","<0.01 mg/kg","<0.01 mg/kg","Pass"\n "Dichlorvos","<0.05 mg/kg","<0.05 mg/kg","Pass"\n "Dimethoate","<0.01 mg/kg","<0.01 mg/kg","Pass"\n "Fluopyram","<0.01 mg/kg","<0.01 mg/kg","Pass" """ ] [ "type" => "text" "value" => """ * This analysis or component is not ISO accredited.\n \n Printed: 25-Apr-2025 6:32 pm \n Page 3 of 9 """ "md" => """ * This analysis or component is not ISO accredited.\n \n Printed: 25-Apr-2025 6:32 pm \n Page 3 of 9 """ ] ] "status" => "OK" "originalOrientationAngle" => 0 "links" => [] "triggeredAutoMode" => false "parsingMode" => "multimodal-openai-gpt4o" "structuredData" => null "noStructuredContent" => false "noTextContent" => false ] ] "job_metadata" => [ "credits_used" => 0 "job_credits_usage" => 0 "job_pages" => 1 "job_auto_mode_triggered_pages" => 0 "job_is_cache_hit" => false ] ] -labName: "Charlotte's Web, Inc." -sampleName: "CW 60mg Organic Orange Blossom 30mL" -sampleMatrix: "product" -internalPath: "/home/cbdextract/cbdextract.nw.agency/source/public/lab-reports/LabReportCOAPart3.jpg" -productType: "cannabis" -aILogs: Doctrine\ORM\PersistentCollection {#964 …} -products: Doctrine\ORM\PersistentCollection {#1018 …} } |
| data_class | "App\Entity\LabReport" |
| disabled | false |
| empty_data | Closure(FormInterface $form) {#1771 : "Symfony\Component\Form\Extension\Core\Type\FormType" : { : "App\Entity\LabReport" } } |
| entityDto | EasyCorp\Bundle\EasyAdminBundle\Dto\EntityDto {#844 -isAccessible: true -fqcn: "App\Entity\LabReport" -metadata: Doctrine\ORM\Mapping\ClassMetadata {#691 …} -instance: App\Entity\LabReport {#854 -id: 843 -name: "Lab Report COA Part 3" -externalUrl: "https://purecbdnc.com/cdn/shop/files/Charlotte_sWeb_CBDFullSpectrumTincture60mg-30ml_OrangeCOA2025-04-253_98c7426c-419c-45dc-b5c7-3f7c31fba816.jpg?v=1747428923" -source: null -type: "jpg" -project: Proxies\__CG__\App\Entity\Project {#903 -id: 104 -name: "pure cbd" -url: "https://purecbdnc.com/" -prompt: null -chatJson: null -externalLabReportsUrl: null -spiderSourceUrls: Doctrine\ORM\PersistentCollection {#1521 …} -productMatchingUrl: null -productUrls: Doctrine\ORM\PersistentCollection {#1556 …} -labReportSources: Doctrine\ORM\PersistentCollection {#1527 …} -labReports: Doctrine\ORM\PersistentCollection {#1558 …} -createdAt: DateTime @1744068184 {#1495 : 2025-04-07 23:23:04.0 UTC (+00:00) } -updatedAt: DateTime @1768286193 {#1485 : 2026-01-13 06:36:33.0 UTC (+00:00) } -spiderSourceMatchingUrls: null -state: "ready_to_hunt" -products: Doctrine\ORM\PersistentCollection {#1560 …} -productPages: Doctrine\ORM\PersistentCollection {#1581 …} -websiteFramework: "shopify" -debugData: "{"error":{"message":"DOMDocument::loadHTML(): Argument #1 ($source) must not be empty","trace":"#0 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/FrameworkHelper.php(346): DOMDocument->loadHTML()\n#1 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Crawler\/ProductHuntCrawlerObserver.php(134): App\\Helper\\FrameworkHelper->is_shopify_product_page()\n#2 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/CrawlObservers\/CrawlObserverCollection.php(28): App\\Crawler\\ProductHuntCrawlerObserver->crawled()\n#3 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(104): Spatie\\Crawler\\CrawlObservers\\CrawlObserverCollection->crawled()\n#4 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(70): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->handleCrawled()\n#5 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(173): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->__invoke()\n#6 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(209): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#7 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(158): GuzzleHttp\\Promise\\Promise::callHandler()\n#8 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/TaskQueue.php(52): GuzzleHttp\\Promise\\Promise::GuzzleHttp\\Promise\\{closure}()\n#9 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(167): GuzzleHttp\\Promise\\TaskQueue->run()\n#10 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(206): GuzzleHttp\\Handler\\CurlMultiHandler->tick()\n#11 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Handler\\CurlMultiHandler->execute()\n#12 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#13 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(272): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#14 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(229): GuzzleHttp\\Promise\\Promise->invokeWaitList()\n#15 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#16 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(109): GuzzleHttp\\Promise\\Promise->wait()\n#17 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#18 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#19 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#20 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(494): GuzzleHttp\\Promise\\Promise->wait()\n#21 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(443): Spatie\\Crawler\\Crawler->startCrawlingQueue()\n#22 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/CrawlerHelper.php(181): Spatie\\Crawler\\Crawler->startCrawling()\n#23 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/ProjectHelper.php(250): App\\Helper\\CrawlerHelper->crawlProjectProducts()\n#24 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Command\/Cron\/ProductHuntCommand.php(60): App\\Helper\\ProjectHelper->huntProducts()\n#25 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Command\/Command.php(279): App\\Command\\Cron\\ProductHuntCommand->execute()\n#26 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(1047): Symfony\\Component\\Console\\Command\\Command->run()\n#27 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(123): Symfony\\Component\\Console\\Application->doRunCommand()\n#28 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(316): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRunCommand()\n#29 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(77): Symfony\\Component\\Console\\Application->doRun()\n#30 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(167): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRun()\n#31 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/runtime\/Runner\/Symfony\/ConsoleApplicationRunner.php(49): Symfony\\Component\\Console\\Application->run()\n#32 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/autoload_runtime.php(29): Symfony\\Component\\Runtime\\Runner\\Symfony\\ConsoleApplicationRunner->run()\n#33 \/home\/cbdextract\/cbdextract.nw.agency\/source\/bin\/console(15): require_once('...')\n#34 {main}"}}" -labReportFails: Doctrine\ORM\PersistentCollection {#1609 …} -productExcludePaths: null -aILogs: Doctrine\ORM\PersistentCollection {#1586 …} -user: null -aIBatchJobs: Doctrine\ORM\PersistentCollection {#1650 …} -lazyObjectState: Symfony\Component\VarExporter\Internal\LazyObjectState {#906 …} } -labReportSource: null -createdAt: DateTime @1748152551 {#848 : 2025-05-25 05:55:51.0 UTC (+00:00) } -updatedAt: DateTime @1748138197 {#845 : 2025-05-25 01:56:37.0 UTC (+00:00) } -category: null -state: "processed" -expiryDate: "2027-04-16" -extractionDate: "2025-04-25" -thcaPercentage: "0" -totalThcPercentage: "0" -deltaNinePercentage: "0" -deltaNineWithThcaCombined: "0" -comments: null -internalUrl: "https://cbdextract.nw.agency/lab-reports/LabReportCOAPart3.jpg" -markdownContent: ""# Certificate of Analysis\n\n**Charlotte's Web, Inc.** \n700 Tech Court \nLouisville Colorado 80027 United States\n\n**Report Number:** 4901775-0 \n**Report Date:** 25-Apr-2025 \n**Report Status:** Final\n\n----\n\n## Sample Information\n\n| Sample Name: | A01417 - Composite | Eurofins Sample: | 15217285 |\n| -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n| Project ID: | CHARLO\\_WEB-20250416-0138 | Receipt Date: | 21-Apr-2025 |\n| PO Number: | QC 325 | Receipt Condition: | Ambient temperature |\n| Sample Serving Size: | 0.5 mL | Login Date: | 16-Apr-2025 |\n| Description: | CW 60mg Organic Orange Blossom 30mL | Date Started: | 21-Apr-2025 |\n| | 60 | Sampled: | Sample results apply as received |\n| MFG: | April 16 2025 | Number Composited: | 3 |\n| EXP: | April 16 2027 | Online Order: | SO-2025-E03804 |\n\n\n----\n\n## Analysis\n\n### Residual Solvent Analysis in Cannabis and Hemp Matrices\n\nThe ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *\n\n#### Category I Residual Solvent or Processing Chemical\n\n| Analysis | Limit | Result | Pass\/Fail |\n| ------------------------------ | --------- | ------ | --------- |\n| Acetone | <180 ppm | | |\n| Acetonitrile | <180 ppm | | |\n| n-Butane | <500 ppm | | |\n| Ethanol | <1000 ppm | | |\n| Ethyl Acetate | <1000 ppm | | |\n| Ethyl Ether | <1000 ppm | | |\n| Heptane | <500 ppm | | |\n| n-Hexane | <30.0 ppm | | |\n| Methanol | <1000 ppm | | |\n| n-Pentane | <250 ppm | | |\n| Propane | <1000 ppm | | |\n| Isopropyl Alcohol | <1000 ppm | | |\n| Toluene | <85.0 ppm | | |\n| Xylenes (ortho-, meta-, para-) | <160 ppm | | |\n\n\nThe Pass\/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *\n\n### Multi-Residue Analysis for hemp products\n\n| Analysis | Limit | Result | Pass\/Fail |\n| ---------- | ----------- | ----------- | --------- |\n| Cyprodinil | <0.01 mg\/kg | <0.01 mg\/kg | Pass |\n| Dichlorvos | <0.05 mg\/kg | <0.05 mg\/kg | Pass |\n| Dimethoate | <0.01 mg\/kg | <0.01 mg\/kg | Pass |\n| Fluopyram | <0.01 mg\/kg | <0.01 mg\/kg | Pass |\n\n\n* This analysis or component is not ISO accredited.\n\nPrinted: 25-Apr-2025 6:32 pm \nPage 3 of 9"" -debugData: null -jsonContent: [ "pages" => [ [ "page" => 1 "md" => """ # Certificate of Analysis\n \n **Charlotte's Web, Inc.** \n 700 Tech Court \n Louisville Colorado 80027 United States\n \n **Report Number:** 4901775-0 \n **Report Date:** 25-Apr-2025 \n **Report Status:** Final\n \n ----\n \n ## Sample Information\n \n | Sample Name: | A01417 - Composite | Eurofins Sample: | 15217285 |\n | -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n | Project ID: | CHARLO\_WEB-20250416-0138 | Receipt Date: | 21-Apr-2025 |\n | PO Number: | QC 325 | Receipt Condition: | Ambient temperature |\n | Sample Serving Size: | 0.5 mL | Login Date: | 16-Apr-2025 |\n | Description: | CW 60mg Organic Orange Blossom 30mL | Date Started: | 21-Apr-2025 |\n | | 60 | Sampled: | Sample results apply as received |\n | MFG: | April 16 2025 | Number Composited: | 3 |\n | EXP: | April 16 2027 | Online Order: | SO-2025-E03804 |\n \n \n ----\n \n ## Analysis\n \n ### Residual Solvent Analysis in Cannabis and Hemp Matrices\n \n The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *\n \n #### Category I Residual Solvent or Processing Chemical\n \n | Analysis | Limit | Result | Pass/Fail |\n | ------------------------------ | --------- | ------ | --------- |\n | Acetone | <180 ppm | | |\n | Acetonitrile | <180 ppm | | |\n | n-Butane | <500 ppm | | |\n | Ethanol | <1000 ppm | | |\n | Ethyl Acetate | <1000 ppm | | |\n | Ethyl Ether | <1000 ppm | | |\n | Heptane | <500 ppm | | |\n | n-Hexane | <30.0 ppm | | |\n | Methanol | <1000 ppm | | |\n | n-Pentane | <250 ppm | | |\n | Propane | <1000 ppm | | |\n | Isopropyl Alcohol | <1000 ppm | | |\n | Toluene | <85.0 ppm | | |\n | Xylenes (ortho-, meta-, para-) | <160 ppm | | |\n \n \n The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *\n \n ### Multi-Residue Analysis for hemp products\n \n | Analysis | Limit | Result | Pass/Fail |\n | ---------- | ----------- | ----------- | --------- |\n | Cyprodinil | <0.01 mg/kg | <0.01 mg/kg | Pass |\n | Dichlorvos | <0.05 mg/kg | <0.05 mg/kg | Pass |\n | Dimethoate | <0.01 mg/kg | <0.01 mg/kg | Pass |\n | Fluopyram | <0.01 mg/kg | <0.01 mg/kg | Pass |\n \n \n * This analysis or component is not ISO accredited.\n \n Printed: 25-Apr-2025 6:32 pm \n Page 3 of 9 """ "images" => [ [ "name" => "page_1.jpg" "height" => 0 "width" => 0 "x" => 0 "y" => 0 "type" => "full_page_screenshot" ] ] "charts" => [] "items" => [ [ "type" => "heading" "lvl" => 1 "value" => "Certificate of Analysis" "md" => "# Certificate of Analysis" ] [ "type" => "text" "value" => """ **Charlotte's Web, Inc.** \n 700 Tech Court \n Louisville Colorado 80027 United States\n \n **Report Number:** 4901775-0 \n **Report Date:** 25-Apr-2025 \n **Report Status:** Final\n \n ---- """ "md" => """ **Charlotte's Web, Inc.** \n 700 Tech Court \n Louisville Colorado 80027 United States\n \n **Report Number:** 4901775-0 \n **Report Date:** 25-Apr-2025 \n **Report Status:** Final\n \n ---- """ ] [ "type" => "heading" "lvl" => 2 "value" => "Sample Information" "md" => "## Sample Information" ] [ "type" => "table" "rows" => [ [ "Sample Name:" "A01417 - Composite" "Eurofins Sample:" "15217285" ] [ "Project ID:" "CHARLO_WEB-20250416-0138" "Receipt Date:" "21-Apr-2025" ] [ "PO Number:" "QC 325" "Receipt Condition:" "Ambient temperature" ] [ "Sample Serving Size:" "0.5 mL" "Login Date:" "16-Apr-2025" ] [ "Description:" "CW 60mg Organic Orange Blossom 30mL" "Date Started:" "21-Apr-2025" ] [ "" "60" "Sampled:" "Sample results apply as received" ] [ "MFG:" "April 16 2025" "Number Composited:" "3" ] [ "EXP:" "April 16 2027" "Online Order:" "SO-2025-E03804" ] ] "md" => """ | Sample Name: | A01417 - Composite | Eurofins Sample: | 15217285 |\n | -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n | Project ID: | CHARLO\_WEB-20250416-0138 | Receipt Date: | 21-Apr-2025 |\n | PO Number: | QC 325 | Receipt Condition: | Ambient temperature |\n | Sample Serving Size: | 0.5 mL | Login Date: | 16-Apr-2025 |\n | Description: | CW 60mg Organic Orange Blossom 30mL | Date Started: | 21-Apr-2025 |\n | | 60 | Sampled: | Sample results apply as received |\n | MFG: | April 16 2025 | Number Composited: | 3 |\n | EXP: | April 16 2027 | Online Order: | SO-2025-E03804 | """ "isPerfectTable" => true "csv" => """ "Sample Name:","A01417 - Composite","Eurofins Sample:","15217285"\n "Project ID:","CHARLO_WEB-20250416-0138","Receipt Date:","21-Apr-2025"\n "PO Number:","QC 325","Receipt Condition:","Ambient temperature"\n "Sample Serving Size:","0.5 mL","Login Date:","16-Apr-2025"\n "Description:","CW 60mg Organic Orange Blossom 30mL","Date Started:","21-Apr-2025"\n "","60","Sampled:","Sample results apply as received"\n "MFG:","April 16 2025","Number Composited:","3"\n "EXP:","April 16 2027","Online Order:","SO-2025-E03804" """ ] [ "type" => "text" "value" => "----" "md" => "----" ] [ "type" => "heading" "lvl" => 2 "value" => "Analysis" "md" => "## Analysis" ] [ "type" => "heading" "lvl" => 3 "value" => "Residual Solvent Analysis in Cannabis and Hemp Matrices" "md" => "### Residual Solvent Analysis in Cannabis and Hemp Matrices" ] [ "type" => "text" "value" => "The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *" "md" => "The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *" ] [ "type" => "heading" "lvl" => 4 "value" => "Category I Residual Solvent or Processing Chemical" "md" => "#### Category I Residual Solvent or Processing Chemical" ] [ "type" => "table" "rows" => [ [ "Analysis" "Limit" "Result" "Pass/Fail" ] [ "Acetone" "<180 ppm" "" "" ] [ "Acetonitrile" "<180 ppm" "" "" ] [ "n-Butane" "<500 ppm" "" "" ] [ "Ethanol" "<1000 ppm" "" "" ] [ "Ethyl Acetate" "<1000 ppm" "" "" ] [ "Ethyl Ether" "<1000 ppm" "" "" ] [ "Heptane" "<500 ppm" "" "" ] [ "n-Hexane" "<30.0 ppm" "" "" ] [ "Methanol" "<1000 ppm" "" "" ] [ "n-Pentane" "<250 ppm" "" "" ] [ "Propane" "<1000 ppm" "" "" ] [ "Isopropyl Alcohol" "<1000 ppm" "" "" ] [ "Toluene" "<85.0 ppm" "" "" ] [ "Xylenes (ortho-, meta-, para-)" "<160 ppm" "" "" ] ] "md" => """ | Analysis | Limit | Result | Pass/Fail |\n | ------------------------------ | --------- | ------ | --------- |\n | Acetone | <180 ppm | | |\n | Acetonitrile | <180 ppm | | |\n | n-Butane | <500 ppm | | |\n | Ethanol | <1000 ppm | | |\n | Ethyl Acetate | <1000 ppm | | |\n | Ethyl Ether | <1000 ppm | | |\n | Heptane | <500 ppm | | |\n | n-Hexane | <30.0 ppm | | |\n | Methanol | <1000 ppm | | |\n | n-Pentane | <250 ppm | | |\n | Propane | <1000 ppm | | |\n | Isopropyl Alcohol | <1000 ppm | | |\n | Toluene | <85.0 ppm | | |\n | Xylenes (ortho-, meta-, para-) | <160 ppm | | | """ "isPerfectTable" => true "csv" => """ "Analysis","Limit","Result","Pass/Fail"\n "Acetone","<180 ppm","",""\n "Acetonitrile","<180 ppm","",""\n "n-Butane","<500 ppm","",""\n "Ethanol","<1000 ppm","",""\n "Ethyl Acetate","<1000 ppm","",""\n "Ethyl Ether","<1000 ppm","",""\n "Heptane","<500 ppm","",""\n "n-Hexane","<30.0 ppm","",""\n "Methanol","<1000 ppm","",""\n "n-Pentane","<250 ppm","",""\n "Propane","<1000 ppm","",""\n "Isopropyl Alcohol","<1000 ppm","",""\n "Toluene","<85.0 ppm","",""\n "Xylenes (ortho-, meta-, para-)","<160 ppm","","" """ ] [ "type" => "text" "value" => "The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *" "md" => "The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *" ] [ "type" => "heading" "lvl" => 3 "value" => "Multi-Residue Analysis for hemp products" "md" => "### Multi-Residue Analysis for hemp products" ] [ "type" => "table" "rows" => [ [ "Analysis" "Limit" "Result" "Pass/Fail" ] [ "Cyprodinil" "<0.01 mg/kg" "<0.01 mg/kg" "Pass" ] [ "Dichlorvos" "<0.05 mg/kg" "<0.05 mg/kg" "Pass" ] [ "Dimethoate" "<0.01 mg/kg" "<0.01 mg/kg" "Pass" ] [ "Fluopyram" "<0.01 mg/kg" "<0.01 mg/kg" "Pass" ] ] "md" => """ | Analysis | Limit | Result | Pass/Fail |\n | ---------- | ----------- | ----------- | --------- |\n | Cyprodinil | <0.01 mg/kg | <0.01 mg/kg | Pass |\n | Dichlorvos | <0.05 mg/kg | <0.05 mg/kg | Pass |\n | Dimethoate | <0.01 mg/kg | <0.01 mg/kg | Pass |\n | Fluopyram | <0.01 mg/kg | <0.01 mg/kg | Pass | """ "isPerfectTable" => true "csv" => """ "Analysis","Limit","Result","Pass/Fail"\n "Cyprodinil","<0.01 mg/kg","<0.01 mg/kg","Pass"\n "Dichlorvos","<0.05 mg/kg","<0.05 mg/kg","Pass"\n "Dimethoate","<0.01 mg/kg","<0.01 mg/kg","Pass"\n "Fluopyram","<0.01 mg/kg","<0.01 mg/kg","Pass" """ ] [ "type" => "text" "value" => """ * This analysis or component is not ISO accredited.\n \n Printed: 25-Apr-2025 6:32 pm \n Page 3 of 9 """ "md" => """ * This analysis or component is not ISO accredited.\n \n Printed: 25-Apr-2025 6:32 pm \n Page 3 of 9 """ ] ] "status" => "OK" "originalOrientationAngle" => 0 "links" => [] "triggeredAutoMode" => false "parsingMode" => "multimodal-openai-gpt4o" "structuredData" => null "noStructuredContent" => false "noTextContent" => false ] ] "job_metadata" => [ "credits_used" => 0 "job_credits_usage" => 0 "job_pages" => 1 "job_auto_mode_triggered_pages" => 0 "job_is_cache_hit" => false ] ] -labName: "Charlotte's Web, Inc." -sampleName: "CW 60mg Organic Orange Blossom 30mL" -sampleMatrix: "product" -internalPath: "/home/cbdextract/cbdextract.nw.agency/source/public/lab-reports/LabReportCOAPart3.jpg" -productType: "cannabis" -aILogs: Doctrine\ORM\PersistentCollection {#964 …} -products: Doctrine\ORM\PersistentCollection {#1018 …} } -primaryKeyName: "id" -primaryKeyValue: 843 -permission: null -fields: EasyCorp\Bundle\EasyAdminBundle\Collection\FieldCollection {#1343 …} -actions: EasyCorp\Bundle\EasyAdminBundle\Collection\ActionCollection {#1719 …} } |
| error_bubbling | true |
| error_mapping | [] |
| extra_fields_message | "This form should not contain extra fields." |
| form_attr | false |
| getter | null |
| help | null |
| help_attr | [] |
| help_html | false |
| help_translation_parameters | [] |
| inherit_data | false |
| invalid_message | "This value is not valid." |
| invalid_message_parameters | [] |
| is_empty_callback | null |
| label | null |
| label_attr | [] |
| label_format | null |
| label_html | false |
| label_translation_parameters | [] |
| mapped | true |
| method | "POST" |
| post_max_size_message | "The uploaded file was too large. Please try to upload a smaller file." |
| priority | 0 |
| property_path | null |
| required | true |
| row_attr | [] |
| setter | null |
| translation_domain | "messages" |
| trim | true |
| upload_max_size_message | Closure() {#1773 : "Symfony\Component\Form\Extension\Validator\Type\UploadValidatorExtension" : { : Symfony\Component\Translation\DataCollectorTranslator {#65 …} : Closure() {#1770 …} : "validators" } } |
| validation_groups | null |
View Vars
| Variable | Value |
|---|---|
| action | "" |
| attr | [ "class" => "ea-edit-form" "id" => "edit-LabReport-form" ] |
| attr_translation_parameters | [] |
| block_prefixes | [ "form" "ea_crud" "_LabReport" ] |
| cache_key | "_LabReport_ea_crud" |
| compound | true |
| data | App\Entity\LabReport {#854 -id: 843 -name: "Lab Report COA Part 3" -externalUrl: "https://purecbdnc.com/cdn/shop/files/Charlotte_sWeb_CBDFullSpectrumTincture60mg-30ml_OrangeCOA2025-04-253_98c7426c-419c-45dc-b5c7-3f7c31fba816.jpg?v=1747428923" -source: null -type: "jpg" -project: Proxies\__CG__\App\Entity\Project {#903 -id: 104 -name: "pure cbd" -url: "https://purecbdnc.com/" -prompt: null -chatJson: null -externalLabReportsUrl: null -spiderSourceUrls: Doctrine\ORM\PersistentCollection {#1521 …} -productMatchingUrl: null -productUrls: Doctrine\ORM\PersistentCollection {#1556 …} -labReportSources: Doctrine\ORM\PersistentCollection {#1527 …} -labReports: Doctrine\ORM\PersistentCollection {#1558 …} -createdAt: DateTime @1744068184 {#1495 : 2025-04-07 23:23:04.0 UTC (+00:00) } -updatedAt: DateTime @1768286193 {#1485 : 2026-01-13 06:36:33.0 UTC (+00:00) } -spiderSourceMatchingUrls: null -state: "ready_to_hunt" -products: Doctrine\ORM\PersistentCollection {#1560 …} -productPages: Doctrine\ORM\PersistentCollection {#1581 …} -websiteFramework: "shopify" -debugData: "{"error":{"message":"DOMDocument::loadHTML(): Argument #1 ($source) must not be empty","trace":"#0 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/FrameworkHelper.php(346): DOMDocument->loadHTML()\n#1 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Crawler\/ProductHuntCrawlerObserver.php(134): App\\Helper\\FrameworkHelper->is_shopify_product_page()\n#2 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/CrawlObservers\/CrawlObserverCollection.php(28): App\\Crawler\\ProductHuntCrawlerObserver->crawled()\n#3 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(104): Spatie\\Crawler\\CrawlObservers\\CrawlObserverCollection->crawled()\n#4 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(70): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->handleCrawled()\n#5 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(173): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->__invoke()\n#6 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(209): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#7 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(158): GuzzleHttp\\Promise\\Promise::callHandler()\n#8 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/TaskQueue.php(52): GuzzleHttp\\Promise\\Promise::GuzzleHttp\\Promise\\{closure}()\n#9 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(167): GuzzleHttp\\Promise\\TaskQueue->run()\n#10 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(206): GuzzleHttp\\Handler\\CurlMultiHandler->tick()\n#11 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Handler\\CurlMultiHandler->execute()\n#12 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#13 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(272): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#14 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(229): GuzzleHttp\\Promise\\Promise->invokeWaitList()\n#15 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#16 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(109): GuzzleHttp\\Promise\\Promise->wait()\n#17 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#18 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#19 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#20 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(494): GuzzleHttp\\Promise\\Promise->wait()\n#21 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(443): Spatie\\Crawler\\Crawler->startCrawlingQueue()\n#22 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/CrawlerHelper.php(181): Spatie\\Crawler\\Crawler->startCrawling()\n#23 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/ProjectHelper.php(250): App\\Helper\\CrawlerHelper->crawlProjectProducts()\n#24 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Command\/Cron\/ProductHuntCommand.php(60): App\\Helper\\ProjectHelper->huntProducts()\n#25 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Command\/Command.php(279): App\\Command\\Cron\\ProductHuntCommand->execute()\n#26 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(1047): Symfony\\Component\\Console\\Command\\Command->run()\n#27 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(123): Symfony\\Component\\Console\\Application->doRunCommand()\n#28 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(316): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRunCommand()\n#29 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(77): Symfony\\Component\\Console\\Application->doRun()\n#30 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(167): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRun()\n#31 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/runtime\/Runner\/Symfony\/ConsoleApplicationRunner.php(49): Symfony\\Component\\Console\\Application->run()\n#32 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/autoload_runtime.php(29): Symfony\\Component\\Runtime\\Runner\\Symfony\\ConsoleApplicationRunner->run()\n#33 \/home\/cbdextract\/cbdextract.nw.agency\/source\/bin\/console(15): require_once('...')\n#34 {main}"}}" -labReportFails: Doctrine\ORM\PersistentCollection {#1609 …} -productExcludePaths: null -aILogs: Doctrine\ORM\PersistentCollection {#1586 …} -user: null -aIBatchJobs: Doctrine\ORM\PersistentCollection {#1650 …} -lazyObjectState: Symfony\Component\VarExporter\Internal\LazyObjectState {#906 …} } -labReportSource: null -createdAt: DateTime @1748152551 {#848 : 2025-05-25 05:55:51.0 UTC (+00:00) } -updatedAt: DateTime @1748138197 {#845 : 2025-05-25 01:56:37.0 UTC (+00:00) } -category: null -state: "processed" -expiryDate: "2027-04-16" -extractionDate: "2025-04-25" -thcaPercentage: "0" -totalThcPercentage: "0" -deltaNinePercentage: "0" -deltaNineWithThcaCombined: "0" -comments: null -internalUrl: "https://cbdextract.nw.agency/lab-reports/LabReportCOAPart3.jpg" -markdownContent: ""# Certificate of Analysis\n\n**Charlotte's Web, Inc.** \n700 Tech Court \nLouisville Colorado 80027 United States\n\n**Report Number:** 4901775-0 \n**Report Date:** 25-Apr-2025 \n**Report Status:** Final\n\n----\n\n## Sample Information\n\n| Sample Name: | A01417 - Composite | Eurofins Sample: | 15217285 |\n| -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n| Project ID: | CHARLO\\_WEB-20250416-0138 | Receipt Date: | 21-Apr-2025 |\n| PO Number: | QC 325 | Receipt Condition: | Ambient temperature |\n| Sample Serving Size: | 0.5 mL | Login Date: | 16-Apr-2025 |\n| Description: | CW 60mg Organic Orange Blossom 30mL | Date Started: | 21-Apr-2025 |\n| | 60 | Sampled: | Sample results apply as received |\n| MFG: | April 16 2025 | Number Composited: | 3 |\n| EXP: | April 16 2027 | Online Order: | SO-2025-E03804 |\n\n\n----\n\n## Analysis\n\n### Residual Solvent Analysis in Cannabis and Hemp Matrices\n\nThe ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *\n\n#### Category I Residual Solvent or Processing Chemical\n\n| Analysis | Limit | Result | Pass\/Fail |\n| ------------------------------ | --------- | ------ | --------- |\n| Acetone | <180 ppm | | |\n| Acetonitrile | <180 ppm | | |\n| n-Butane | <500 ppm | | |\n| Ethanol | <1000 ppm | | |\n| Ethyl Acetate | <1000 ppm | | |\n| Ethyl Ether | <1000 ppm | | |\n| Heptane | <500 ppm | | |\n| n-Hexane | <30.0 ppm | | |\n| Methanol | <1000 ppm | | |\n| n-Pentane | <250 ppm | | |\n| Propane | <1000 ppm | | |\n| Isopropyl Alcohol | <1000 ppm | | |\n| Toluene | <85.0 ppm | | |\n| Xylenes (ortho-, meta-, para-) | <160 ppm | | |\n\n\nThe Pass\/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *\n\n### Multi-Residue Analysis for hemp products\n\n| Analysis | Limit | Result | Pass\/Fail |\n| ---------- | ----------- | ----------- | --------- |\n| Cyprodinil | <0.01 mg\/kg | <0.01 mg\/kg | Pass |\n| Dichlorvos | <0.05 mg\/kg | <0.05 mg\/kg | Pass |\n| Dimethoate | <0.01 mg\/kg | <0.01 mg\/kg | Pass |\n| Fluopyram | <0.01 mg\/kg | <0.01 mg\/kg | Pass |\n\n\n* This analysis or component is not ISO accredited.\n\nPrinted: 25-Apr-2025 6:32 pm \nPage 3 of 9"" -debugData: null -jsonContent: [ "pages" => [ [ "page" => 1 "md" => """ # Certificate of Analysis\n \n **Charlotte's Web, Inc.** \n 700 Tech Court \n Louisville Colorado 80027 United States\n \n **Report Number:** 4901775-0 \n **Report Date:** 25-Apr-2025 \n **Report Status:** Final\n \n ----\n \n ## Sample Information\n \n | Sample Name: | A01417 - Composite | Eurofins Sample: | 15217285 |\n | -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n | Project ID: | CHARLO\_WEB-20250416-0138 | Receipt Date: | 21-Apr-2025 |\n | PO Number: | QC 325 | Receipt Condition: | Ambient temperature |\n | Sample Serving Size: | 0.5 mL | Login Date: | 16-Apr-2025 |\n | Description: | CW 60mg Organic Orange Blossom 30mL | Date Started: | 21-Apr-2025 |\n | | 60 | Sampled: | Sample results apply as received |\n | MFG: | April 16 2025 | Number Composited: | 3 |\n | EXP: | April 16 2027 | Online Order: | SO-2025-E03804 |\n \n \n ----\n \n ## Analysis\n \n ### Residual Solvent Analysis in Cannabis and Hemp Matrices\n \n The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *\n \n #### Category I Residual Solvent or Processing Chemical\n \n | Analysis | Limit | Result | Pass/Fail |\n | ------------------------------ | --------- | ------ | --------- |\n | Acetone | <180 ppm | | |\n | Acetonitrile | <180 ppm | | |\n | n-Butane | <500 ppm | | |\n | Ethanol | <1000 ppm | | |\n | Ethyl Acetate | <1000 ppm | | |\n | Ethyl Ether | <1000 ppm | | |\n | Heptane | <500 ppm | | |\n | n-Hexane | <30.0 ppm | | |\n | Methanol | <1000 ppm | | |\n | n-Pentane | <250 ppm | | |\n | Propane | <1000 ppm | | |\n | Isopropyl Alcohol | <1000 ppm | | |\n | Toluene | <85.0 ppm | | |\n | Xylenes (ortho-, meta-, para-) | <160 ppm | | |\n \n \n The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *\n \n ### Multi-Residue Analysis for hemp products\n \n | Analysis | Limit | Result | Pass/Fail |\n | ---------- | ----------- | ----------- | --------- |\n | Cyprodinil | <0.01 mg/kg | <0.01 mg/kg | Pass |\n | Dichlorvos | <0.05 mg/kg | <0.05 mg/kg | Pass |\n | Dimethoate | <0.01 mg/kg | <0.01 mg/kg | Pass |\n | Fluopyram | <0.01 mg/kg | <0.01 mg/kg | Pass |\n \n \n * This analysis or component is not ISO accredited.\n \n Printed: 25-Apr-2025 6:32 pm \n Page 3 of 9 """ "images" => [ [ "name" => "page_1.jpg" "height" => 0 "width" => 0 "x" => 0 "y" => 0 "type" => "full_page_screenshot" ] ] "charts" => [] "items" => [ [ "type" => "heading" "lvl" => 1 "value" => "Certificate of Analysis" "md" => "# Certificate of Analysis" ] [ "type" => "text" "value" => """ **Charlotte's Web, Inc.** \n 700 Tech Court \n Louisville Colorado 80027 United States\n \n **Report Number:** 4901775-0 \n **Report Date:** 25-Apr-2025 \n **Report Status:** Final\n \n ---- """ "md" => """ **Charlotte's Web, Inc.** \n 700 Tech Court \n Louisville Colorado 80027 United States\n \n **Report Number:** 4901775-0 \n **Report Date:** 25-Apr-2025 \n **Report Status:** Final\n \n ---- """ ] [ "type" => "heading" "lvl" => 2 "value" => "Sample Information" "md" => "## Sample Information" ] [ "type" => "table" "rows" => [ [ "Sample Name:" "A01417 - Composite" "Eurofins Sample:" "15217285" ] [ "Project ID:" "CHARLO_WEB-20250416-0138" "Receipt Date:" "21-Apr-2025" ] [ "PO Number:" "QC 325" "Receipt Condition:" "Ambient temperature" ] [ "Sample Serving Size:" "0.5 mL" "Login Date:" "16-Apr-2025" ] [ "Description:" "CW 60mg Organic Orange Blossom 30mL" "Date Started:" "21-Apr-2025" ] [ "" "60" "Sampled:" "Sample results apply as received" ] [ "MFG:" "April 16 2025" "Number Composited:" "3" ] [ "EXP:" "April 16 2027" "Online Order:" "SO-2025-E03804" ] ] "md" => """ | Sample Name: | A01417 - Composite | Eurofins Sample: | 15217285 |\n | -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n | Project ID: | CHARLO\_WEB-20250416-0138 | Receipt Date: | 21-Apr-2025 |\n | PO Number: | QC 325 | Receipt Condition: | Ambient temperature |\n | Sample Serving Size: | 0.5 mL | Login Date: | 16-Apr-2025 |\n | Description: | CW 60mg Organic Orange Blossom 30mL | Date Started: | 21-Apr-2025 |\n | | 60 | Sampled: | Sample results apply as received |\n | MFG: | April 16 2025 | Number Composited: | 3 |\n | EXP: | April 16 2027 | Online Order: | SO-2025-E03804 | """ "isPerfectTable" => true "csv" => """ "Sample Name:","A01417 - Composite","Eurofins Sample:","15217285"\n "Project ID:","CHARLO_WEB-20250416-0138","Receipt Date:","21-Apr-2025"\n "PO Number:","QC 325","Receipt Condition:","Ambient temperature"\n "Sample Serving Size:","0.5 mL","Login Date:","16-Apr-2025"\n "Description:","CW 60mg Organic Orange Blossom 30mL","Date Started:","21-Apr-2025"\n "","60","Sampled:","Sample results apply as received"\n "MFG:","April 16 2025","Number Composited:","3"\n "EXP:","April 16 2027","Online Order:","SO-2025-E03804" """ ] [ "type" => "text" "value" => "----" "md" => "----" ] [ "type" => "heading" "lvl" => 2 "value" => "Analysis" "md" => "## Analysis" ] [ "type" => "heading" "lvl" => 3 "value" => "Residual Solvent Analysis in Cannabis and Hemp Matrices" "md" => "### Residual Solvent Analysis in Cannabis and Hemp Matrices" ] [ "type" => "text" "value" => "The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *" "md" => "The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *" ] [ "type" => "heading" "lvl" => 4 "value" => "Category I Residual Solvent or Processing Chemical" "md" => "#### Category I Residual Solvent or Processing Chemical" ] [ "type" => "table" "rows" => [ [ "Analysis" "Limit" "Result" "Pass/Fail" ] [ "Acetone" "<180 ppm" "" "" ] [ "Acetonitrile" "<180 ppm" "" "" ] [ "n-Butane" "<500 ppm" "" "" ] [ "Ethanol" "<1000 ppm" "" "" ] [ "Ethyl Acetate" "<1000 ppm" "" "" ] [ "Ethyl Ether" "<1000 ppm" "" "" ] [ "Heptane" "<500 ppm" "" "" ] [ "n-Hexane" "<30.0 ppm" "" "" ] [ "Methanol" "<1000 ppm" "" "" ] [ "n-Pentane" "<250 ppm" "" "" ] [ "Propane" "<1000 ppm" "" "" ] [ "Isopropyl Alcohol" "<1000 ppm" "" "" ] [ "Toluene" "<85.0 ppm" "" "" ] [ "Xylenes (ortho-, meta-, para-)" "<160 ppm" "" "" ] ] "md" => """ | Analysis | Limit | Result | Pass/Fail |\n | ------------------------------ | --------- | ------ | --------- |\n | Acetone | <180 ppm | | |\n | Acetonitrile | <180 ppm | | |\n | n-Butane | <500 ppm | | |\n | Ethanol | <1000 ppm | | |\n | Ethyl Acetate | <1000 ppm | | |\n | Ethyl Ether | <1000 ppm | | |\n | Heptane | <500 ppm | | |\n | n-Hexane | <30.0 ppm | | |\n | Methanol | <1000 ppm | | |\n | n-Pentane | <250 ppm | | |\n | Propane | <1000 ppm | | |\n | Isopropyl Alcohol | <1000 ppm | | |\n | Toluene | <85.0 ppm | | |\n | Xylenes (ortho-, meta-, para-) | <160 ppm | | | """ "isPerfectTable" => true "csv" => """ "Analysis","Limit","Result","Pass/Fail"\n "Acetone","<180 ppm","",""\n "Acetonitrile","<180 ppm","",""\n "n-Butane","<500 ppm","",""\n "Ethanol","<1000 ppm","",""\n "Ethyl Acetate","<1000 ppm","",""\n "Ethyl Ether","<1000 ppm","",""\n "Heptane","<500 ppm","",""\n "n-Hexane","<30.0 ppm","",""\n "Methanol","<1000 ppm","",""\n "n-Pentane","<250 ppm","",""\n "Propane","<1000 ppm","",""\n "Isopropyl Alcohol","<1000 ppm","",""\n "Toluene","<85.0 ppm","",""\n "Xylenes (ortho-, meta-, para-)","<160 ppm","","" """ ] [ "type" => "text" "value" => "The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *" "md" => "The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *" ] [ "type" => "heading" "lvl" => 3 "value" => "Multi-Residue Analysis for hemp products" "md" => "### Multi-Residue Analysis for hemp products" ] [ "type" => "table" "rows" => [ [ "Analysis" "Limit" "Result" "Pass/Fail" ] [ "Cyprodinil" "<0.01 mg/kg" "<0.01 mg/kg" "Pass" ] [ "Dichlorvos" "<0.05 mg/kg" "<0.05 mg/kg" "Pass" ] [ "Dimethoate" "<0.01 mg/kg" "<0.01 mg/kg" "Pass" ] [ "Fluopyram" "<0.01 mg/kg" "<0.01 mg/kg" "Pass" ] ] "md" => """ | Analysis | Limit | Result | Pass/Fail |\n | ---------- | ----------- | ----------- | --------- |\n | Cyprodinil | <0.01 mg/kg | <0.01 mg/kg | Pass |\n | Dichlorvos | <0.05 mg/kg | <0.05 mg/kg | Pass |\n | Dimethoate | <0.01 mg/kg | <0.01 mg/kg | Pass |\n | Fluopyram | <0.01 mg/kg | <0.01 mg/kg | Pass | """ "isPerfectTable" => true "csv" => """ "Analysis","Limit","Result","Pass/Fail"\n "Cyprodinil","<0.01 mg/kg","<0.01 mg/kg","Pass"\n "Dichlorvos","<0.05 mg/kg","<0.05 mg/kg","Pass"\n "Dimethoate","<0.01 mg/kg","<0.01 mg/kg","Pass"\n "Fluopyram","<0.01 mg/kg","<0.01 mg/kg","Pass" """ ] [ "type" => "text" "value" => """ * This analysis or component is not ISO accredited.\n \n Printed: 25-Apr-2025 6:32 pm \n Page 3 of 9 """ "md" => """ * This analysis or component is not ISO accredited.\n \n Printed: 25-Apr-2025 6:32 pm \n Page 3 of 9 """ ] ] "status" => "OK" "originalOrientationAngle" => 0 "links" => [] "triggeredAutoMode" => false "parsingMode" => "multimodal-openai-gpt4o" "structuredData" => null "noStructuredContent" => false "noTextContent" => false ] ] "job_metadata" => [ "credits_used" => 0 "job_credits_usage" => 0 "job_pages" => 1 "job_auto_mode_triggered_pages" => 0 "job_is_cache_hit" => false ] ] -labName: "Charlotte's Web, Inc." -sampleName: "CW 60mg Organic Orange Blossom 30mL" -sampleMatrix: "product" -internalPath: "/home/cbdextract/cbdextract.nw.agency/source/public/lab-reports/LabReportCOAPart3.jpg" -productType: "cannabis" -aILogs: Doctrine\ORM\PersistentCollection {#964 …} -products: Doctrine\ORM\PersistentCollection {#1018 …} } |
| disabled | false |
| ea_crud_form | [ "assets" => "** This variable no longer stores field assets. Instead, use "ea.crud.fieldAssets()" in your Twig template." "entity" => EasyCorp\Bundle\EasyAdminBundle\Dto\EntityDto {#844 -isAccessible: true -fqcn: "App\Entity\LabReport" -metadata: Doctrine\ORM\Mapping\ClassMetadata {#691 …} -instance: App\Entity\LabReport {#854 -id: 843 -name: "Lab Report COA Part 3" -externalUrl: "https://purecbdnc.com/cdn/shop/files/Charlotte_sWeb_CBDFullSpectrumTincture60mg-30ml_OrangeCOA2025-04-253_98c7426c-419c-45dc-b5c7-3f7c31fba816.jpg?v=1747428923" -source: null -type: "jpg" -project: Proxies\__CG__\App\Entity\Project {#903 -id: 104 -name: "pure cbd" -url: "https://purecbdnc.com/" -prompt: null -chatJson: null -externalLabReportsUrl: null -spiderSourceUrls: Doctrine\ORM\PersistentCollection {#1521 …} -productMatchingUrl: null -productUrls: Doctrine\ORM\PersistentCollection {#1556 …} -labReportSources: Doctrine\ORM\PersistentCollection {#1527 …} -labReports: Doctrine\ORM\PersistentCollection {#1558 …} -createdAt: DateTime @1744068184 {#1495 : 2025-04-07 23:23:04.0 UTC (+00:00) } -updatedAt: DateTime @1768286193 {#1485 : 2026-01-13 06:36:33.0 UTC (+00:00) } -spiderSourceMatchingUrls: null -state: "ready_to_hunt" -products: Doctrine\ORM\PersistentCollection {#1560 …} -productPages: Doctrine\ORM\PersistentCollection {#1581 …} -websiteFramework: "shopify" -debugData: "{"error":{"message":"DOMDocument::loadHTML(): Argument #1 ($source) must not be empty","trace":"#0 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/FrameworkHelper.php(346): DOMDocument->loadHTML()\n#1 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Crawler\/ProductHuntCrawlerObserver.php(134): App\\Helper\\FrameworkHelper->is_shopify_product_page()\n#2 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/CrawlObservers\/CrawlObserverCollection.php(28): App\\Crawler\\ProductHuntCrawlerObserver->crawled()\n#3 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(104): Spatie\\Crawler\\CrawlObservers\\CrawlObserverCollection->crawled()\n#4 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(70): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->handleCrawled()\n#5 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(173): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->__invoke()\n#6 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(209): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#7 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(158): GuzzleHttp\\Promise\\Promise::callHandler()\n#8 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/TaskQueue.php(52): GuzzleHttp\\Promise\\Promise::GuzzleHttp\\Promise\\{closure}()\n#9 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(167): GuzzleHttp\\Promise\\TaskQueue->run()\n#10 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(206): GuzzleHttp\\Handler\\CurlMultiHandler->tick()\n#11 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Handler\\CurlMultiHandler->execute()\n#12 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#13 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(272): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#14 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(229): GuzzleHttp\\Promise\\Promise->invokeWaitList()\n#15 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#16 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(109): GuzzleHttp\\Promise\\Promise->wait()\n#17 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#18 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#19 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#20 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(494): GuzzleHttp\\Promise\\Promise->wait()\n#21 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(443): Spatie\\Crawler\\Crawler->startCrawlingQueue()\n#22 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/CrawlerHelper.php(181): Spatie\\Crawler\\Crawler->startCrawling()\n#23 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/ProjectHelper.php(250): App\\Helper\\CrawlerHelper->crawlProjectProducts()\n#24 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Command\/Cron\/ProductHuntCommand.php(60): App\\Helper\\ProjectHelper->huntProducts()\n#25 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Command\/Command.php(279): App\\Command\\Cron\\ProductHuntCommand->execute()\n#26 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(1047): Symfony\\Component\\Console\\Command\\Command->run()\n#27 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(123): Symfony\\Component\\Console\\Application->doRunCommand()\n#28 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(316): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRunCommand()\n#29 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(77): Symfony\\Component\\Console\\Application->doRun()\n#30 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(167): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRun()\n#31 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/runtime\/Runner\/Symfony\/ConsoleApplicationRunner.php(49): Symfony\\Component\\Console\\Application->run()\n#32 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/autoload_runtime.php(29): Symfony\\Component\\Runtime\\Runner\\Symfony\\ConsoleApplicationRunner->run()\n#33 \/home\/cbdextract\/cbdextract.nw.agency\/source\/bin\/console(15): require_once('...')\n#34 {main}"}}" -labReportFails: Doctrine\ORM\PersistentCollection {#1609 …} -productExcludePaths: null -aILogs: Doctrine\ORM\PersistentCollection {#1586 …} -user: null -aIBatchJobs: Doctrine\ORM\PersistentCollection {#1650 …} -lazyObjectState: Symfony\Component\VarExporter\Internal\LazyObjectState {#906 …} } -labReportSource: null -createdAt: DateTime @1748152551 {#848 : 2025-05-25 05:55:51.0 UTC (+00:00) } -updatedAt: DateTime @1748138197 {#845 : 2025-05-25 01:56:37.0 UTC (+00:00) } -category: null -state: "processed" -expiryDate: "2027-04-16" -extractionDate: "2025-04-25" -thcaPercentage: "0" -totalThcPercentage: "0" -deltaNinePercentage: "0" -deltaNineWithThcaCombined: "0" -comments: null -internalUrl: "https://cbdextract.nw.agency/lab-reports/LabReportCOAPart3.jpg" -markdownContent: ""# Certificate of Analysis\n\n**Charlotte's Web, Inc.** \n700 Tech Court \nLouisville Colorado 80027 United States\n\n**Report Number:** 4901775-0 \n**Report Date:** 25-Apr-2025 \n**Report Status:** Final\n\n----\n\n## Sample Information\n\n| Sample Name: | A01417 - Composite | Eurofins Sample: | 15217285 |\n| -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n| Project ID: | CHARLO\\_WEB-20250416-0138 | Receipt Date: | 21-Apr-2025 |\n| PO Number: | QC 325 | Receipt Condition: | Ambient temperature |\n| Sample Serving Size: | 0.5 mL | Login Date: | 16-Apr-2025 |\n| Description: | CW 60mg Organic Orange Blossom 30mL | Date Started: | 21-Apr-2025 |\n| | 60 | Sampled: | Sample results apply as received |\n| MFG: | April 16 2025 | Number Composited: | 3 |\n| EXP: | April 16 2027 | Online Order: | SO-2025-E03804 |\n\n\n----\n\n## Analysis\n\n### Residual Solvent Analysis in Cannabis and Hemp Matrices\n\nThe ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *\n\n#### Category I Residual Solvent or Processing Chemical\n\n| Analysis | Limit | Result | Pass\/Fail |\n| ------------------------------ | --------- | ------ | --------- |\n| Acetone | <180 ppm | | |\n| Acetonitrile | <180 ppm | | |\n| n-Butane | <500 ppm | | |\n| Ethanol | <1000 ppm | | |\n| Ethyl Acetate | <1000 ppm | | |\n| Ethyl Ether | <1000 ppm | | |\n| Heptane | <500 ppm | | |\n| n-Hexane | <30.0 ppm | | |\n| Methanol | <1000 ppm | | |\n| n-Pentane | <250 ppm | | |\n| Propane | <1000 ppm | | |\n| Isopropyl Alcohol | <1000 ppm | | |\n| Toluene | <85.0 ppm | | |\n| Xylenes (ortho-, meta-, para-) | <160 ppm | | |\n\n\nThe Pass\/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *\n\n### Multi-Residue Analysis for hemp products\n\n| Analysis | Limit | Result | Pass\/Fail |\n| ---------- | ----------- | ----------- | --------- |\n| Cyprodinil | <0.01 mg\/kg | <0.01 mg\/kg | Pass |\n| Dichlorvos | <0.05 mg\/kg | <0.05 mg\/kg | Pass |\n| Dimethoate | <0.01 mg\/kg | <0.01 mg\/kg | Pass |\n| Fluopyram | <0.01 mg\/kg | <0.01 mg\/kg | Pass |\n\n\n* This analysis or component is not ISO accredited.\n\nPrinted: 25-Apr-2025 6:32 pm \nPage 3 of 9"" -debugData: null -jsonContent: [ "pages" => [ [ "page" => 1 "md" => """ # Certificate of Analysis\n \n **Charlotte's Web, Inc.** \n 700 Tech Court \n Louisville Colorado 80027 United States\n \n **Report Number:** 4901775-0 \n **Report Date:** 25-Apr-2025 \n **Report Status:** Final\n \n ----\n \n ## Sample Information\n \n | Sample Name: | A01417 - Composite | Eurofins Sample: | 15217285 |\n | -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n | Project ID: | CHARLO\_WEB-20250416-0138 | Receipt Date: | 21-Apr-2025 |\n | PO Number: | QC 325 | Receipt Condition: | Ambient temperature |\n | Sample Serving Size: | 0.5 mL | Login Date: | 16-Apr-2025 |\n | Description: | CW 60mg Organic Orange Blossom 30mL | Date Started: | 21-Apr-2025 |\n | | 60 | Sampled: | Sample results apply as received |\n | MFG: | April 16 2025 | Number Composited: | 3 |\n | EXP: | April 16 2027 | Online Order: | SO-2025-E03804 |\n \n \n ----\n \n ## Analysis\n \n ### Residual Solvent Analysis in Cannabis and Hemp Matrices\n \n The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *\n \n #### Category I Residual Solvent or Processing Chemical\n \n | Analysis | Limit | Result | Pass/Fail |\n | ------------------------------ | --------- | ------ | --------- |\n | Acetone | <180 ppm | | |\n | Acetonitrile | <180 ppm | | |\n | n-Butane | <500 ppm | | |\n | Ethanol | <1000 ppm | | |\n | Ethyl Acetate | <1000 ppm | | |\n | Ethyl Ether | <1000 ppm | | |\n | Heptane | <500 ppm | | |\n | n-Hexane | <30.0 ppm | | |\n | Methanol | <1000 ppm | | |\n | n-Pentane | <250 ppm | | |\n | Propane | <1000 ppm | | |\n | Isopropyl Alcohol | <1000 ppm | | |\n | Toluene | <85.0 ppm | | |\n | Xylenes (ortho-, meta-, para-) | <160 ppm | | |\n \n \n The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *\n \n ### Multi-Residue Analysis for hemp products\n \n | Analysis | Limit | Result | Pass/Fail |\n | ---------- | ----------- | ----------- | --------- |\n | Cyprodinil | <0.01 mg/kg | <0.01 mg/kg | Pass |\n | Dichlorvos | <0.05 mg/kg | <0.05 mg/kg | Pass |\n | Dimethoate | <0.01 mg/kg | <0.01 mg/kg | Pass |\n | Fluopyram | <0.01 mg/kg | <0.01 mg/kg | Pass |\n \n \n * This analysis or component is not ISO accredited.\n \n Printed: 25-Apr-2025 6:32 pm \n Page 3 of 9 """ "images" => [ [ "name" => "page_1.jpg" "height" => 0 "width" => 0 "x" => 0 "y" => 0 "type" => "full_page_screenshot" ] ] "charts" => [] "items" => [ [ "type" => "heading" "lvl" => 1 "value" => "Certificate of Analysis" "md" => "# Certificate of Analysis" ] [ "type" => "text" "value" => """ **Charlotte's Web, Inc.** \n 700 Tech Court \n Louisville Colorado 80027 United States\n \n **Report Number:** 4901775-0 \n **Report Date:** 25-Apr-2025 \n **Report Status:** Final\n \n ---- """ "md" => """ **Charlotte's Web, Inc.** \n 700 Tech Court \n Louisville Colorado 80027 United States\n \n **Report Number:** 4901775-0 \n **Report Date:** 25-Apr-2025 \n **Report Status:** Final\n \n ---- """ ] [ "type" => "heading" "lvl" => 2 "value" => "Sample Information" "md" => "## Sample Information" ] [ "type" => "table" "rows" => [ [ "Sample Name:" "A01417 - Composite" "Eurofins Sample:" "15217285" ] [ "Project ID:" "CHARLO_WEB-20250416-0138" "Receipt Date:" "21-Apr-2025" ] [ "PO Number:" "QC 325" "Receipt Condition:" "Ambient temperature" ] [ "Sample Serving Size:" "0.5 mL" "Login Date:" "16-Apr-2025" ] [ "Description:" "CW 60mg Organic Orange Blossom 30mL" "Date Started:" "21-Apr-2025" ] [ "" "60" "Sampled:" "Sample results apply as received" ] [ "MFG:" "April 16 2025" "Number Composited:" "3" ] [ "EXP:" "April 16 2027" "Online Order:" "SO-2025-E03804" ] ] "md" => """ | Sample Name: | A01417 - Composite | Eurofins Sample: | 15217285 |\n | -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n | Project ID: | CHARLO\_WEB-20250416-0138 | Receipt Date: | 21-Apr-2025 |\n | PO Number: | QC 325 | Receipt Condition: | Ambient temperature |\n | Sample Serving Size: | 0.5 mL | Login Date: | 16-Apr-2025 |\n | Description: | CW 60mg Organic Orange Blossom 30mL | Date Started: | 21-Apr-2025 |\n | | 60 | Sampled: | Sample results apply as received |\n | MFG: | April 16 2025 | Number Composited: | 3 |\n | EXP: | April 16 2027 | Online Order: | SO-2025-E03804 | """ "isPerfectTable" => true "csv" => """ "Sample Name:","A01417 - Composite","Eurofins Sample:","15217285"\n "Project ID:","CHARLO_WEB-20250416-0138","Receipt Date:","21-Apr-2025"\n "PO Number:","QC 325","Receipt Condition:","Ambient temperature"\n "Sample Serving Size:","0.5 mL","Login Date:","16-Apr-2025"\n "Description:","CW 60mg Organic Orange Blossom 30mL","Date Started:","21-Apr-2025"\n "","60","Sampled:","Sample results apply as received"\n "MFG:","April 16 2025","Number Composited:","3"\n "EXP:","April 16 2027","Online Order:","SO-2025-E03804" """ ] [ "type" => "text" "value" => "----" "md" => "----" ] [ "type" => "heading" "lvl" => 2 "value" => "Analysis" "md" => "## Analysis" ] [ "type" => "heading" "lvl" => 3 "value" => "Residual Solvent Analysis in Cannabis and Hemp Matrices" "md" => "### Residual Solvent Analysis in Cannabis and Hemp Matrices" ] [ "type" => "text" "value" => "The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *" "md" => "The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *" ] [ "type" => "heading" "lvl" => 4 "value" => "Category I Residual Solvent or Processing Chemical" "md" => "#### Category I Residual Solvent or Processing Chemical" ] [ "type" => "table" "rows" => [ [ "Analysis" "Limit" "Result" "Pass/Fail" ] [ "Acetone" "<180 ppm" "" "" ] [ "Acetonitrile" "<180 ppm" "" "" ] [ "n-Butane" "<500 ppm" "" "" ] [ "Ethanol" "<1000 ppm" "" "" ] [ "Ethyl Acetate" "<1000 ppm" "" "" ] [ "Ethyl Ether" "<1000 ppm" "" "" ] [ "Heptane" "<500 ppm" "" "" ] [ "n-Hexane" "<30.0 ppm" "" "" ] [ "Methanol" "<1000 ppm" "" "" ] [ "n-Pentane" "<250 ppm" "" "" ] [ "Propane" "<1000 ppm" "" "" ] [ "Isopropyl Alcohol" "<1000 ppm" "" "" ] [ "Toluene" "<85.0 ppm" "" "" ] [ "Xylenes (ortho-, meta-, para-)" "<160 ppm" "" "" ] ] "md" => """ | Analysis | Limit | Result | Pass/Fail |\n | ------------------------------ | --------- | ------ | --------- |\n | Acetone | <180 ppm | | |\n | Acetonitrile | <180 ppm | | |\n | n-Butane | <500 ppm | | |\n | Ethanol | <1000 ppm | | |\n | Ethyl Acetate | <1000 ppm | | |\n | Ethyl Ether | <1000 ppm | | |\n | Heptane | <500 ppm | | |\n | n-Hexane | <30.0 ppm | | |\n | Methanol | <1000 ppm | | |\n | n-Pentane | <250 ppm | | |\n | Propane | <1000 ppm | | |\n | Isopropyl Alcohol | <1000 ppm | | |\n | Toluene | <85.0 ppm | | |\n | Xylenes (ortho-, meta-, para-) | <160 ppm | | | """ "isPerfectTable" => true "csv" => """ "Analysis","Limit","Result","Pass/Fail"\n "Acetone","<180 ppm","",""\n "Acetonitrile","<180 ppm","",""\n "n-Butane","<500 ppm","",""\n "Ethanol","<1000 ppm","",""\n "Ethyl Acetate","<1000 ppm","",""\n "Ethyl Ether","<1000 ppm","",""\n "Heptane","<500 ppm","",""\n "n-Hexane","<30.0 ppm","",""\n "Methanol","<1000 ppm","",""\n "n-Pentane","<250 ppm","",""\n "Propane","<1000 ppm","",""\n "Isopropyl Alcohol","<1000 ppm","",""\n "Toluene","<85.0 ppm","",""\n "Xylenes (ortho-, meta-, para-)","<160 ppm","","" """ ] [ "type" => "text" "value" => "The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *" "md" => "The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *" ] [ "type" => "heading" "lvl" => 3 "value" => "Multi-Residue Analysis for hemp products" "md" => "### Multi-Residue Analysis for hemp products" ] [ "type" => "table" "rows" => [ [ "Analysis" "Limit" "Result" "Pass/Fail" ] [ "Cyprodinil" "<0.01 mg/kg" "<0.01 mg/kg" "Pass" ] [ "Dichlorvos" "<0.05 mg/kg" "<0.05 mg/kg" "Pass" ] [ "Dimethoate" "<0.01 mg/kg" "<0.01 mg/kg" "Pass" ] [ "Fluopyram" "<0.01 mg/kg" "<0.01 mg/kg" "Pass" ] ] "md" => """ | Analysis | Limit | Result | Pass/Fail |\n | ---------- | ----------- | ----------- | --------- |\n | Cyprodinil | <0.01 mg/kg | <0.01 mg/kg | Pass |\n | Dichlorvos | <0.05 mg/kg | <0.05 mg/kg | Pass |\n | Dimethoate | <0.01 mg/kg | <0.01 mg/kg | Pass |\n | Fluopyram | <0.01 mg/kg | <0.01 mg/kg | Pass | """ "isPerfectTable" => true "csv" => """ "Analysis","Limit","Result","Pass/Fail"\n "Cyprodinil","<0.01 mg/kg","<0.01 mg/kg","Pass"\n "Dichlorvos","<0.05 mg/kg","<0.05 mg/kg","Pass"\n "Dimethoate","<0.01 mg/kg","<0.01 mg/kg","Pass"\n "Fluopyram","<0.01 mg/kg","<0.01 mg/kg","Pass" """ ] [ "type" => "text" "value" => """ * This analysis or component is not ISO accredited.\n \n Printed: 25-Apr-2025 6:32 pm \n Page 3 of 9 """ "md" => """ * This analysis or component is not ISO accredited.\n \n Printed: 25-Apr-2025 6:32 pm \n Page 3 of 9 """ ] ] "status" => "OK" "originalOrientationAngle" => 0 "links" => [] "triggeredAutoMode" => false "parsingMode" => "multimodal-openai-gpt4o" "structuredData" => null "noStructuredContent" => false "noTextContent" => false ] ] "job_metadata" => [ "credits_used" => 0 "job_credits_usage" => 0 "job_pages" => 1 "job_auto_mode_triggered_pages" => 0 "job_is_cache_hit" => false ] ] -labName: "Charlotte's Web, Inc." -sampleName: "CW 60mg Organic Orange Blossom 30mL" -sampleMatrix: "product" -internalPath: "/home/cbdextract/cbdextract.nw.agency/source/public/lab-reports/LabReportCOAPart3.jpg" -productType: "cannabis" -aILogs: Doctrine\ORM\PersistentCollection {#964 …} -products: Doctrine\ORM\PersistentCollection {#1018 …} } -primaryKeyName: "id" -primaryKeyValue: 843 -permission: null -fields: EasyCorp\Bundle\EasyAdminBundle\Collection\FieldCollection {#1343 …} -actions: EasyCorp\Bundle\EasyAdminBundle\Collection\ActionCollection {#1719 …} } "form_tabs" => [] "form_fieldsets" => [] ] |
| ea_vars | EasyCorp\Bundle\EasyAdminBundle\Dto\FormVarsDto {#4043 -fieldDto: null -entityDto: null } |
| errors | Symfony\Component\Form\FormErrorIterator {#1829 -errors: [] -form: Symfony\Component\Form\Form {#1779 …} } |
| form | Symfony\Component\Form\FormView {#1838 …5} |
| full_name | "LabReport" |
| help | null |
| help_attr | [] |
| help_html | false |
| help_translation_parameters | [] |
| id | "LabReport" |
| label | null |
| label_attr | [] |
| label_format | null |
| label_html | false |
| label_translation_parameters | [] |
| method | "POST" |
| multipart | false |
| name | "LabReport" |
| priority | 0 |
| required | true |
| row_attr | [] |
| submitted | false |
| translation_domain | "messages" |
| unique_block_prefix | "_LabReport" |
| valid | true |
| value | App\Entity\LabReport {#854 -id: 843 -name: "Lab Report COA Part 3" -externalUrl: "https://purecbdnc.com/cdn/shop/files/Charlotte_sWeb_CBDFullSpectrumTincture60mg-30ml_OrangeCOA2025-04-253_98c7426c-419c-45dc-b5c7-3f7c31fba816.jpg?v=1747428923" -source: null -type: "jpg" -project: Proxies\__CG__\App\Entity\Project {#903 -id: 104 -name: "pure cbd" -url: "https://purecbdnc.com/" -prompt: null -chatJson: null -externalLabReportsUrl: null -spiderSourceUrls: Doctrine\ORM\PersistentCollection {#1521 …} -productMatchingUrl: null -productUrls: Doctrine\ORM\PersistentCollection {#1556 …} -labReportSources: Doctrine\ORM\PersistentCollection {#1527 …} -labReports: Doctrine\ORM\PersistentCollection {#1558 …} -createdAt: DateTime @1744068184 {#1495 : 2025-04-07 23:23:04.0 UTC (+00:00) } -updatedAt: DateTime @1768286193 {#1485 : 2026-01-13 06:36:33.0 UTC (+00:00) } -spiderSourceMatchingUrls: null -state: "ready_to_hunt" -products: Doctrine\ORM\PersistentCollection {#1560 …} -productPages: Doctrine\ORM\PersistentCollection {#1581 …} -websiteFramework: "shopify" -debugData: "{"error":{"message":"DOMDocument::loadHTML(): Argument #1 ($source) must not be empty","trace":"#0 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/FrameworkHelper.php(346): DOMDocument->loadHTML()\n#1 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Crawler\/ProductHuntCrawlerObserver.php(134): App\\Helper\\FrameworkHelper->is_shopify_product_page()\n#2 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/CrawlObservers\/CrawlObserverCollection.php(28): App\\Crawler\\ProductHuntCrawlerObserver->crawled()\n#3 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(104): Spatie\\Crawler\\CrawlObservers\\CrawlObserverCollection->crawled()\n#4 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(70): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->handleCrawled()\n#5 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(173): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->__invoke()\n#6 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(209): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#7 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(158): GuzzleHttp\\Promise\\Promise::callHandler()\n#8 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/TaskQueue.php(52): GuzzleHttp\\Promise\\Promise::GuzzleHttp\\Promise\\{closure}()\n#9 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(167): GuzzleHttp\\Promise\\TaskQueue->run()\n#10 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(206): GuzzleHttp\\Handler\\CurlMultiHandler->tick()\n#11 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Handler\\CurlMultiHandler->execute()\n#12 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#13 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(272): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#14 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(229): GuzzleHttp\\Promise\\Promise->invokeWaitList()\n#15 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#16 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(109): GuzzleHttp\\Promise\\Promise->wait()\n#17 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#18 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#19 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#20 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(494): GuzzleHttp\\Promise\\Promise->wait()\n#21 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(443): Spatie\\Crawler\\Crawler->startCrawlingQueue()\n#22 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/CrawlerHelper.php(181): Spatie\\Crawler\\Crawler->startCrawling()\n#23 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/ProjectHelper.php(250): App\\Helper\\CrawlerHelper->crawlProjectProducts()\n#24 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Command\/Cron\/ProductHuntCommand.php(60): App\\Helper\\ProjectHelper->huntProducts()\n#25 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Command\/Command.php(279): App\\Command\\Cron\\ProductHuntCommand->execute()\n#26 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(1047): Symfony\\Component\\Console\\Command\\Command->run()\n#27 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(123): Symfony\\Component\\Console\\Application->doRunCommand()\n#28 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(316): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRunCommand()\n#29 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(77): Symfony\\Component\\Console\\Application->doRun()\n#30 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(167): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRun()\n#31 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/runtime\/Runner\/Symfony\/ConsoleApplicationRunner.php(49): Symfony\\Component\\Console\\Application->run()\n#32 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/autoload_runtime.php(29): Symfony\\Component\\Runtime\\Runner\\Symfony\\ConsoleApplicationRunner->run()\n#33 \/home\/cbdextract\/cbdextract.nw.agency\/source\/bin\/console(15): require_once('...')\n#34 {main}"}}" -labReportFails: Doctrine\ORM\PersistentCollection {#1609 …} -productExcludePaths: null -aILogs: Doctrine\ORM\PersistentCollection {#1586 …} -user: null -aIBatchJobs: Doctrine\ORM\PersistentCollection {#1650 …} -lazyObjectState: Symfony\Component\VarExporter\Internal\LazyObjectState {#906 …} } -labReportSource: null -createdAt: DateTime @1748152551 {#848 : 2025-05-25 05:55:51.0 UTC (+00:00) } -updatedAt: DateTime @1748138197 {#845 : 2025-05-25 01:56:37.0 UTC (+00:00) } -category: null -state: "processed" -expiryDate: "2027-04-16" -extractionDate: "2025-04-25" -thcaPercentage: "0" -totalThcPercentage: "0" -deltaNinePercentage: "0" -deltaNineWithThcaCombined: "0" -comments: null -internalUrl: "https://cbdextract.nw.agency/lab-reports/LabReportCOAPart3.jpg" -markdownContent: ""# Certificate of Analysis\n\n**Charlotte's Web, Inc.** \n700 Tech Court \nLouisville Colorado 80027 United States\n\n**Report Number:** 4901775-0 \n**Report Date:** 25-Apr-2025 \n**Report Status:** Final\n\n----\n\n## Sample Information\n\n| Sample Name: | A01417 - Composite | Eurofins Sample: | 15217285 |\n| -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n| Project ID: | CHARLO\\_WEB-20250416-0138 | Receipt Date: | 21-Apr-2025 |\n| PO Number: | QC 325 | Receipt Condition: | Ambient temperature |\n| Sample Serving Size: | 0.5 mL | Login Date: | 16-Apr-2025 |\n| Description: | CW 60mg Organic Orange Blossom 30mL | Date Started: | 21-Apr-2025 |\n| | 60 | Sampled: | Sample results apply as received |\n| MFG: | April 16 2025 | Number Composited: | 3 |\n| EXP: | April 16 2027 | Online Order: | SO-2025-E03804 |\n\n\n----\n\n## Analysis\n\n### Residual Solvent Analysis in Cannabis and Hemp Matrices\n\nThe ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *\n\n#### Category I Residual Solvent or Processing Chemical\n\n| Analysis | Limit | Result | Pass\/Fail |\n| ------------------------------ | --------- | ------ | --------- |\n| Acetone | <180 ppm | | |\n| Acetonitrile | <180 ppm | | |\n| n-Butane | <500 ppm | | |\n| Ethanol | <1000 ppm | | |\n| Ethyl Acetate | <1000 ppm | | |\n| Ethyl Ether | <1000 ppm | | |\n| Heptane | <500 ppm | | |\n| n-Hexane | <30.0 ppm | | |\n| Methanol | <1000 ppm | | |\n| n-Pentane | <250 ppm | | |\n| Propane | <1000 ppm | | |\n| Isopropyl Alcohol | <1000 ppm | | |\n| Toluene | <85.0 ppm | | |\n| Xylenes (ortho-, meta-, para-) | <160 ppm | | |\n\n\nThe Pass\/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *\n\n### Multi-Residue Analysis for hemp products\n\n| Analysis | Limit | Result | Pass\/Fail |\n| ---------- | ----------- | ----------- | --------- |\n| Cyprodinil | <0.01 mg\/kg | <0.01 mg\/kg | Pass |\n| Dichlorvos | <0.05 mg\/kg | <0.05 mg\/kg | Pass |\n| Dimethoate | <0.01 mg\/kg | <0.01 mg\/kg | Pass |\n| Fluopyram | <0.01 mg\/kg | <0.01 mg\/kg | Pass |\n\n\n* This analysis or component is not ISO accredited.\n\nPrinted: 25-Apr-2025 6:32 pm \nPage 3 of 9"" -debugData: null -jsonContent: [ "pages" => [ [ "page" => 1 "md" => """ # Certificate of Analysis\n \n **Charlotte's Web, Inc.** \n 700 Tech Court \n Louisville Colorado 80027 United States\n \n **Report Number:** 4901775-0 \n **Report Date:** 25-Apr-2025 \n **Report Status:** Final\n \n ----\n \n ## Sample Information\n \n | Sample Name: | A01417 - Composite | Eurofins Sample: | 15217285 |\n | -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n | Project ID: | CHARLO\_WEB-20250416-0138 | Receipt Date: | 21-Apr-2025 |\n | PO Number: | QC 325 | Receipt Condition: | Ambient temperature |\n | Sample Serving Size: | 0.5 mL | Login Date: | 16-Apr-2025 |\n | Description: | CW 60mg Organic Orange Blossom 30mL | Date Started: | 21-Apr-2025 |\n | | 60 | Sampled: | Sample results apply as received |\n | MFG: | April 16 2025 | Number Composited: | 3 |\n | EXP: | April 16 2027 | Online Order: | SO-2025-E03804 |\n \n \n ----\n \n ## Analysis\n \n ### Residual Solvent Analysis in Cannabis and Hemp Matrices\n \n The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *\n \n #### Category I Residual Solvent or Processing Chemical\n \n | Analysis | Limit | Result | Pass/Fail |\n | ------------------------------ | --------- | ------ | --------- |\n | Acetone | <180 ppm | | |\n | Acetonitrile | <180 ppm | | |\n | n-Butane | <500 ppm | | |\n | Ethanol | <1000 ppm | | |\n | Ethyl Acetate | <1000 ppm | | |\n | Ethyl Ether | <1000 ppm | | |\n | Heptane | <500 ppm | | |\n | n-Hexane | <30.0 ppm | | |\n | Methanol | <1000 ppm | | |\n | n-Pentane | <250 ppm | | |\n | Propane | <1000 ppm | | |\n | Isopropyl Alcohol | <1000 ppm | | |\n | Toluene | <85.0 ppm | | |\n | Xylenes (ortho-, meta-, para-) | <160 ppm | | |\n \n \n The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *\n \n ### Multi-Residue Analysis for hemp products\n \n | Analysis | Limit | Result | Pass/Fail |\n | ---------- | ----------- | ----------- | --------- |\n | Cyprodinil | <0.01 mg/kg | <0.01 mg/kg | Pass |\n | Dichlorvos | <0.05 mg/kg | <0.05 mg/kg | Pass |\n | Dimethoate | <0.01 mg/kg | <0.01 mg/kg | Pass |\n | Fluopyram | <0.01 mg/kg | <0.01 mg/kg | Pass |\n \n \n * This analysis or component is not ISO accredited.\n \n Printed: 25-Apr-2025 6:32 pm \n Page 3 of 9 """ "images" => [ [ "name" => "page_1.jpg" "height" => 0 "width" => 0 "x" => 0 "y" => 0 "type" => "full_page_screenshot" ] ] "charts" => [] "items" => [ [ "type" => "heading" "lvl" => 1 "value" => "Certificate of Analysis" "md" => "# Certificate of Analysis" ] [ "type" => "text" "value" => """ **Charlotte's Web, Inc.** \n 700 Tech Court \n Louisville Colorado 80027 United States\n \n **Report Number:** 4901775-0 \n **Report Date:** 25-Apr-2025 \n **Report Status:** Final\n \n ---- """ "md" => """ **Charlotte's Web, Inc.** \n 700 Tech Court \n Louisville Colorado 80027 United States\n \n **Report Number:** 4901775-0 \n **Report Date:** 25-Apr-2025 \n **Report Status:** Final\n \n ---- """ ] [ "type" => "heading" "lvl" => 2 "value" => "Sample Information" "md" => "## Sample Information" ] [ "type" => "table" "rows" => [ [ "Sample Name:" "A01417 - Composite" "Eurofins Sample:" "15217285" ] [ "Project ID:" "CHARLO_WEB-20250416-0138" "Receipt Date:" "21-Apr-2025" ] [ "PO Number:" "QC 325" "Receipt Condition:" "Ambient temperature" ] [ "Sample Serving Size:" "0.5 mL" "Login Date:" "16-Apr-2025" ] [ "Description:" "CW 60mg Organic Orange Blossom 30mL" "Date Started:" "21-Apr-2025" ] [ "" "60" "Sampled:" "Sample results apply as received" ] [ "MFG:" "April 16 2025" "Number Composited:" "3" ] [ "EXP:" "April 16 2027" "Online Order:" "SO-2025-E03804" ] ] "md" => """ | Sample Name: | A01417 - Composite | Eurofins Sample: | 15217285 |\n | -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n | Project ID: | CHARLO\_WEB-20250416-0138 | Receipt Date: | 21-Apr-2025 |\n | PO Number: | QC 325 | Receipt Condition: | Ambient temperature |\n | Sample Serving Size: | 0.5 mL | Login Date: | 16-Apr-2025 |\n | Description: | CW 60mg Organic Orange Blossom 30mL | Date Started: | 21-Apr-2025 |\n | | 60 | Sampled: | Sample results apply as received |\n | MFG: | April 16 2025 | Number Composited: | 3 |\n | EXP: | April 16 2027 | Online Order: | SO-2025-E03804 | """ "isPerfectTable" => true "csv" => """ "Sample Name:","A01417 - Composite","Eurofins Sample:","15217285"\n "Project ID:","CHARLO_WEB-20250416-0138","Receipt Date:","21-Apr-2025"\n "PO Number:","QC 325","Receipt Condition:","Ambient temperature"\n "Sample Serving Size:","0.5 mL","Login Date:","16-Apr-2025"\n "Description:","CW 60mg Organic Orange Blossom 30mL","Date Started:","21-Apr-2025"\n "","60","Sampled:","Sample results apply as received"\n "MFG:","April 16 2025","Number Composited:","3"\n "EXP:","April 16 2027","Online Order:","SO-2025-E03804" """ ] [ "type" => "text" "value" => "----" "md" => "----" ] [ "type" => "heading" "lvl" => 2 "value" => "Analysis" "md" => "## Analysis" ] [ "type" => "heading" "lvl" => 3 "value" => "Residual Solvent Analysis in Cannabis and Hemp Matrices" "md" => "### Residual Solvent Analysis in Cannabis and Hemp Matrices" ] [ "type" => "text" "value" => "The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *" "md" => "The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *" ] [ "type" => "heading" "lvl" => 4 "value" => "Category I Residual Solvent or Processing Chemical" "md" => "#### Category I Residual Solvent or Processing Chemical" ] [ "type" => "table" "rows" => [ [ "Analysis" "Limit" "Result" "Pass/Fail" ] [ "Acetone" "<180 ppm" "" "" ] [ "Acetonitrile" "<180 ppm" "" "" ] [ "n-Butane" "<500 ppm" "" "" ] [ "Ethanol" "<1000 ppm" "" "" ] [ "Ethyl Acetate" "<1000 ppm" "" "" ] [ "Ethyl Ether" "<1000 ppm" "" "" ] [ "Heptane" "<500 ppm" "" "" ] [ "n-Hexane" "<30.0 ppm" "" "" ] [ "Methanol" "<1000 ppm" "" "" ] [ "n-Pentane" "<250 ppm" "" "" ] [ "Propane" "<1000 ppm" "" "" ] [ "Isopropyl Alcohol" "<1000 ppm" "" "" ] [ "Toluene" "<85.0 ppm" "" "" ] [ "Xylenes (ortho-, meta-, para-)" "<160 ppm" "" "" ] ] "md" => """ | Analysis | Limit | Result | Pass/Fail |\n | ------------------------------ | --------- | ------ | --------- |\n | Acetone | <180 ppm | | |\n | Acetonitrile | <180 ppm | | |\n | n-Butane | <500 ppm | | |\n | Ethanol | <1000 ppm | | |\n | Ethyl Acetate | <1000 ppm | | |\n | Ethyl Ether | <1000 ppm | | |\n | Heptane | <500 ppm | | |\n | n-Hexane | <30.0 ppm | | |\n | Methanol | <1000 ppm | | |\n | n-Pentane | <250 ppm | | |\n | Propane | <1000 ppm | | |\n | Isopropyl Alcohol | <1000 ppm | | |\n | Toluene | <85.0 ppm | | |\n | Xylenes (ortho-, meta-, para-) | <160 ppm | | | """ "isPerfectTable" => true "csv" => """ "Analysis","Limit","Result","Pass/Fail"\n "Acetone","<180 ppm","",""\n "Acetonitrile","<180 ppm","",""\n "n-Butane","<500 ppm","",""\n "Ethanol","<1000 ppm","",""\n "Ethyl Acetate","<1000 ppm","",""\n "Ethyl Ether","<1000 ppm","",""\n "Heptane","<500 ppm","",""\n "n-Hexane","<30.0 ppm","",""\n "Methanol","<1000 ppm","",""\n "n-Pentane","<250 ppm","",""\n "Propane","<1000 ppm","",""\n "Isopropyl Alcohol","<1000 ppm","",""\n "Toluene","<85.0 ppm","",""\n "Xylenes (ortho-, meta-, para-)","<160 ppm","","" """ ] [ "type" => "text" "value" => "The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *" "md" => "The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *" ] [ "type" => "heading" "lvl" => 3 "value" => "Multi-Residue Analysis for hemp products" "md" => "### Multi-Residue Analysis for hemp products" ] [ "type" => "table" "rows" => [ [ "Analysis" "Limit" "Result" "Pass/Fail" ] [ "Cyprodinil" "<0.01 mg/kg" "<0.01 mg/kg" "Pass" ] [ "Dichlorvos" "<0.05 mg/kg" "<0.05 mg/kg" "Pass" ] [ "Dimethoate" "<0.01 mg/kg" "<0.01 mg/kg" "Pass" ] [ "Fluopyram" "<0.01 mg/kg" "<0.01 mg/kg" "Pass" ] ] "md" => """ | Analysis | Limit | Result | Pass/Fail |\n | ---------- | ----------- | ----------- | --------- |\n | Cyprodinil | <0.01 mg/kg | <0.01 mg/kg | Pass |\n | Dichlorvos | <0.05 mg/kg | <0.05 mg/kg | Pass |\n | Dimethoate | <0.01 mg/kg | <0.01 mg/kg | Pass |\n | Fluopyram | <0.01 mg/kg | <0.01 mg/kg | Pass | """ "isPerfectTable" => true "csv" => """ "Analysis","Limit","Result","Pass/Fail"\n "Cyprodinil","<0.01 mg/kg","<0.01 mg/kg","Pass"\n "Dichlorvos","<0.05 mg/kg","<0.05 mg/kg","Pass"\n "Dimethoate","<0.01 mg/kg","<0.01 mg/kg","Pass"\n "Fluopyram","<0.01 mg/kg","<0.01 mg/kg","Pass" """ ] [ "type" => "text" "value" => """ * This analysis or component is not ISO accredited.\n \n Printed: 25-Apr-2025 6:32 pm \n Page 3 of 9 """ "md" => """ * This analysis or component is not ISO accredited.\n \n Printed: 25-Apr-2025 6:32 pm \n Page 3 of 9 """ ] ] "status" => "OK" "originalOrientationAngle" => 0 "links" => [] "triggeredAutoMode" => false "parsingMode" => "multimodal-openai-gpt4o" "structuredData" => null "noStructuredContent" => false "noTextContent" => false ] ] "job_metadata" => [ "credits_used" => 0 "job_credits_usage" => 0 "job_pages" => 1 "job_auto_mode_triggered_pages" => 0 "job_is_cache_hit" => false ] ] -labName: "Charlotte's Web, Inc." -sampleName: "CW 60mg Organic Orange Blossom 30mL" -sampleMatrix: "product" -internalPath: "/home/cbdextract/cbdextract.nw.agency/source/public/lab-reports/LabReportCOAPart3.jpg" -productType: "cannabis" -aILogs: Doctrine\ORM\PersistentCollection {#964 …} -products: Doctrine\ORM\PersistentCollection {#1018 …} } |