PageSourceSearch

https://plankton-app-lfzxs.ondigitalocean.app/mishi-net/assets/ProductsImportPage-VVL74UsU.js

js plankton-app-lfzxs.ondigitalocean.app collected 2026-10-03 14:54:37 UTC 14,467 bytes, 1 lines download raw bytes

1import{Q as fe}from"./QPage-kDkMqWY5.js";import{cC as ge,b$ as y,ae as x,bN as ye,bQ as m,ah as b,di as u,aq as o,w as I,ag as i,t as v,O as oe,cy as r,bF as Pe,b5 as _e,ap as M,cu as W,al as q,F as Q,c2 as O,x as z,ai as C,u as we,cn as le,cm as ke,cj as Ve}from"./index-Codnu_h3.js";import{a as K}from"./QSelect-C7LBr_ib.js";import{Q as xe}from"./QChip-D36q83iL.js";import{Q as se,b as A,a as R}from"./QItem-BHBy0dVO.js";import{Q as ae}from"./QExpansionItem-BpQzV5Wj.js";import{Q as re}from"./QBadge-CY5qakVp.js";import{Q as Ie}from"./QLinearProgress-OfGLQMCl.js";import{Q as qe}from"./QList-2UNm8BjH.js";import{a as ie,_ as he}from"./ConfigurableProductModal-CjNlZ8by.js";import{y as Ce,C as Se,P as Ue}from"./products-DQXRvep3.js";import{u as $e}from"./attributes-Bb5K5H65.js";import{_ as Te}from"./TimelineNotifications-CPKVZeMh.js";import{_ as Qe}from"./PartsHubPartSearchPanel-D-zzPp00.js";import{u as Oe}from"./partsHub-FVn55YD8.js";import"./QMenu-CB4_zYeX.js";import"./position-engine-Dos08rdk.js";import"./rtl-DFPa-2ov.js";import"./format-DyQxkAtJ.js";import"./QSlideTransition-4ckb1o2T.js";import"./QInnerLoading-qdWdBJT0.js";import"./QBanner-C1f4Thuo.js";import"./QImg-zVH-9mRD.js";import"./QCarousel-B7wAjI1e.js";import"./use-panel-DMzgZygm.js";import"./TouchSwipe-DhtiJfhC.js";import"./touch-BjYP5sR0.js";import"./use-render-cache-DLxPkVnQ.js";import"./use-fullscreen-DbKljfqc.js";import"./QDate-BrmVgPSk.js";import"./dateFormats-Cyd4MXDd.js";import"./QPopupProxy-C4ZqiICr.js";import"./QTooltip-DWK3i8Xn.js";import"./ClosePopup-BhpB_lld.js";import"./WysiwygEditor--Kd3bKmG.js";import"./QBtnDropdown-CIXtyTaJ.js";import"./QBtnGroup-fqhGuPgw.js";import"./extend-DTfK50KV.js";import"./ProductSearchWidget-aUiLFERD.js";import"./_plugin-vue_export-helper-DlAUqK2U.js";import"./useProductsApi-DkK-3vrA.js";import"./magentoErrors-BGewbvBh.js";import"./timeline-Ck5vbPeC.js";import"./QTimeline-CBfD2ggM.js";import"./use-quasar-BlKnoFD8.js";import"./QSpinnerDots-Cw14dwis.js";import"./pimCatalog-n0yKd5gb.js";import"./gatewayCaller-WOCsdenS.js";import"./dexie.min-Bn9xpPyG.js";import"./meilisearch-BO2Ag1mE.js";import"./meilisearch-C3jdNgsP.js";import"./useMeilisearchSyncWebhooks-B7U5XYYo.js";const Ae={class:"row"},Fe={class:"col col-12 col-sm-6"},Ne={class:"row"},Le={class:"row"},Ee={class:"row"},Be={class:"row"},Me={class:"col col-12 col-sm-6 q-px-md"},We={class:"row justify-between"},ze={class:"absolute-full flex flex-center"},Ke=1e3,Re={__name:"ImportProductsWidget",setup(S){var Z;const s=Ce(),w=ge(),h=$e(),k=Se(),V=y(!1),P=y({}),a=y(!1),p=x(()=>k.isLoading||s.isLoading||a.value||V.value||h.isLoading),j=x(()=>h.attributeSets),f=x(()=>{var l;return(l=s.importProducts)==null?void 0:l.items}),F=y((Z=f.value)==null?void 0:Z.map(()=>!1)),N=y(0),ue=x(()=>{var l;return(l=f.value)==null?void 0:l.length}),D=JSON.parse(JSON.stringify(Ue)),d=y({...D,name:"Product Name",sku:"product-template"}),H=y(!1),J=y(!1),G=y(!1),X=y(!1);function U(l){l.value=!0,setTimeout(()=>{l.value=!1},Ke)}const Y=(l,e)=>{const _=f.value.findIndex(T=>T.sku===l);_!==-1&&(F.value[_]=e)},L=x(()=>{var l;return(l=f.value)==null?void 0:l.filter((e,_)=>F.value[_])}),E=x(()=>{var l;return(l=f.value)==null?void 0:l.filter((e,_)=>!F.value[_])}),$=()=>{N.value++},B=x(()=>j.value.filter(l=>l.entity_type_id===4).map(l=>({label:l.attribute_set_name,value:l.attribute_set_id}))),ne=()=>{a.value=!0,f.value.forEach(l=>{l.status=d.value.status}),U(H),$(),a.value=!1},de=()=>{a.value=!0,f.value.forEach(l=>{l.attribute_set_id=d.value.attribute_set_id}),U(J),$(),a.value=!1},me=()=>{a.value=!0,f.value.forEach(l=>{l.visibility=d.value.visibility}),U(G),$(),a.value=!1},pe=()=>{a.value=!0,f.value.forEach(l=>{var e;l.extension_attributes||(l.extension_attributes={}),(e=l.extension_attributes)!=null&&e.website_ids||(l.extension_attributes.website_ids=[]),l.extension_attributes.website_ids=d.value.extension_attributes.website_ids}),U(X),$(),a.value=!1},ce=async()=>{V.value=!0,await s.importProductsToMagento(),V.value=!1},ve=()=>{d.value={...D,name:"Product Name",sku:"product-template"}},be=()=>{d.value.name=`Product ${f.value.length+1}`,d.value.sku=`product-${f.value.length+1}`,s.addProductToImport({...d.value,guid:`new-${Date.now()}`})};return ye(async()=>{a.value=!0,s.resetProgress(),w.targetEnv=null;try{await h.fetchAttributeSets(),await k.fetchStoreOptions(),await k.fetchWebsiteOptions()}catch(l){console.error(l)}finally{a.value=!1}}),(l,e)=>(m(),b(we,{class:"q-my-md"},{default:u(()=>{var _,T,ee,te;return[o(I,{class:"row justify-between"},{default:u(()=>[e[12]||(e[12]=i("div",{class:"text-h6"},"Import New Product(s)",-1)),o(v,{dense:"",icon:"add",color:"primary",onClick:be,label:"Add Product"})]),_:1}),o(I,null,{default:u(()=>[i("div",Ae,[i("div",Fe,[e[17]||(e[17]=i("div",{class:"text-center text-bold"},"Product Template Values",-1)),e[18]||(e[18]=i("p",{class:"text-italic"}," Here you can set values for the 'Add product' button, as well as copy the values to items already in the import below. ",-1)),i("div",Ne,[e[13]||(e[13]=i("div",{class:"q-mt-sm col-3"},"Status:",-1)),o(oe,{class:"col",filled:"",square:"",modelValue:d.value.status,"onUpdate:modelValue":e[0]||(e[0]=t=>d.value.status=t),"true-value":1,"false-value":2,label:d.value.status==1?"Enabled":"Disabled","emit-value":"","map-options":""},null,8,["modelValue","label"]),o(v,{dense:"",size:"sm",class:"q-ma-sm",icon:H.value?"thumb_up":"content_copy",onClick:ne,label:"Copy to all",loading:p.value},null,8,["icon","loading"])]),i("div",Le,[e[14]||(e[14]=i("div",{class:"q-mt-sm col-3"},"Attribute Set:",-1)),o(K,{class:"col q-my-xs",dense:"",filled:"",square:"",modelValue:d.value.attribute_set_id,"onUpdate:modelValue":e[1]||(e[1]=t=>d.value.attribute_set_id=t),options:B.value,"emit-value":"","map-options":"",clearable:""},null,8,["modelValue","options"]),o(v,{dense:"",size:"sm",class:"q-ma-sm",icon:J.value?"thumb_up":"content_copy",onClick:de,label:"Copy to all",loading:p.value},null,8,["icon","loading"])]),i("div",Ee,[e[15]||(e[15]=i("div",{class:"q-mt-sm col-3"},"Visibility:",-1)),o(K,{class:"col q-my-xs",filled:"",square:"",modelValue:d.value.visibility,"onUpdate:modelValue":e[2]||(e[2]=t=>d.value.visibility=t),options:r(k).visibilityOptions,"emit-value":"","map-options":"",clearable:""},null,8,["modelValue","options"]),o(v,{dense:"",size:"sm",class:"q-ma-sm",icon:G.value?"thumb_up":"content_copy",onClick:me,label:"Copy to all",loading:p.value},null,8,["icon","loading"])]),i("div",Be,[e[16]||(e[16]=i("div",{class:"q-mt-sm col-3"},"Websites:",-1)),o(K,{class:"col q-my-xs",filled:"",square:"",multiple:"",modelValue:d.value.extension_attributes.website_ids,"onUpdate:modelValue":e[3]||(e[3]=t=>d.value.extension_attributes.website_ids=t),options:r(k).websiteOptions.filter(t=>t.value!==0),"emit-value":"","map-options":"",clearable:""},{selected:u(()=>{var t;return[(m(!0),q(Q,null,O((t=d.value.extension_attributes)==null?void 0:t.website_ids,c=>{var n;return m(),b(xe,{key:c,label:(n=r(k).websiteOptions.filter(g=>g.value!==0).find(g=>g.value===c))==null?void 0:n.label,dense:""},null,8,["label"])}),128))]}),option:u(({itemProps:t,opt:c,selected:n,toggleOption:g})=>[o(se,Pe(_e(t)),{default:u(()=>[o(A,null,{default:u(()=>[o(R,null,{default:u(()=>[M(W(c.label),1)]),_:2},1024)]),_:2},1024),o(A,{side:""},{default:u(()=>[o(oe,{"model-value":n,"onUpdate:modelValue":Je=>g(c)},null,8,["model-value","onUpdate:modelValue"])]),_:2},1024)]),_:2},1040)]),_:1},8,["modelValue","options"]),o(v,{dense:"",size:"sm",class:"q-ma-sm",icon:X.value?"thumb_up":"content_copy",onClick:pe,label:"Copy to all",loading:p.value},null,8,["icon","loading"])]),o(v,{dense:"",color:"red",class:"q-mt-sm",icon:"delete",onClick:ve,label:"Reset"})]),i("div",Me,[e[19]||(e[19]=i("div",{class:"text-center text-bold"},"Import Options",-1)),o(z,{modelValue:r(s).importProducts.settings.importImages,"onUpdate:modelValue":e[4]||(e[4]=t=>r(s).importProducts.settings.importImages=t),label:"Transfer Images",color:"primary",class:"q-mt-sm"},null,8,["modelValue"]),e[20]||(e[20]=i("p",{class:"text-caption q-mb-none"}," This will attempt to transfer images from Partshub to Magento. ",-1)),o(z,{modelValue:r(s).importProducts.settings.buildOptions,"onUpdate:modelValue":e[5]||(e[5]=t=>r(s).importProducts.settings.buildOptions=t),label:"Build Options",color:"primary",class:"q-mt-sm"},null,8,["modelValue"]),e[21]||(e[21]=i("p",{class:"text-caption q-mb-none"}," Create missing values for dropdowns and multi-select fields including mapping partshubs 'Option Label' to the 'Option' attribute values in Magento. ",-1)),o(z,{modelValue:r(s).importProducts.settings.updateOnly,"onUpdate:modelValue":e[6]||(e[6]=t=>r(s).importProducts.settings.updateOnly=t),label:"Update Only",color:"primary",class:"q-mt-sm"},null,8,["modelValue"]),e[22]||(e[22]=i("p",{class:"text-caption q-mb-none"}," This will only update existing products, and not create new ones. ",-1))])])]),_:1}),((_=L.value)==null?void 0:_.length)>0?(m(),b(I,{key:0},{default:u(()=>[e[23]||(e[23]=i("div",{class:"text-h6 text-primary"},"Valid Products",-1)),(m(!0),q(Q,null,O(L.value,t=>{var c;return m(),q("div",{key:t.sku,class:"row q-my-sm"},[o(ae,{modelValue:P.value[(c=t.guid)!=null?c:t.sku],"onUpdate:modelValue":n=>{var g;return P.value[(g=t.guid)!=null?g:t.sku]=n},label:t.sku,caption:t.name,"header-class":"text-h6",class:"col shadow-1 bg-green"},{default:u(()=>[o(v,{dense:"",color:"negative",icon:"delete",onClick:n=>r(s).removeProductFromImport(t.sku),label:"Remove from Import",class:"q-ml-md",square:"",loading:p.value},null,8,["onClick","loading"]),(m(),b(ie,{key:`newProductForm-${t.sku}-${N.value}`,"model-value":t,"attribute-set-options":B.value,loading:p.value,"onUpdate:valid":n=>
1Y(t.sku,n),"onUpdate:modelValue":e[7]||(e[7]=n=>r(s).updateProductInImport(n)),errors:r(s).importProducts.errors[t.sku],"onUpdate:errors":n=>r(s).importProducts.errors[t.sku]=n},null,8,["model-value","attribute-set-options","loading","onUpdate:valid","errors","onUpdate:errors"]))]),_:2},1032,["modelValue","onUpdate:modelValue","label","caption"])])}),128))]),_:1})):C("",!0),((T=E.value)==null?void 0:T.length)>0?(m(),b(I,{key:1},{default:u(()=>[e[24]||(e[24]=i("div",{class:"text-h6 text-negative"},"Invalid Products",-1)),(m(!0),q(Q,null,O(E.value,t=>{var c;return m(),q("div",{key:t.sku,class:"row q-my-sm"},[o(ae,{modelValue:P.value[(c=t.guid)!=null?c:t.sku],"onUpdate:modelValue":n=>{var g;return P.value[(g=t.guid)!=null?g:t.sku]=n},label:t.sku,caption:t.name,"header-class":"text-h6",class:"col shadow-1 bg-warning"},{default:u(()=>[o(v,{dense:"",color:"negative",icon:"delete",onClick:n=>r(s).removeProductFromImport(t.sku),label:"Remove from Import",class:"q-ml-md",square:"",loading:p.value},null,8,["onClick","loading"]),(m(),b(ie,{key:`newProductForm-${t.sku}-${N.value}`,"model-value":t,"attribute-set-options":B.value,loading:p.value,"onUpdate:valid":n=>Y(t.sku,n),"onUpdate:modelValue":e[8]||(e[8]=n=>r(s).updateProductInImport(n)),errors:r(s).importProducts.errors[t.sku],"onUpdate:errors":n=>r(s).importProducts.errors[t.sku]=n},null,8,["model-value","attribute-set-options","loading","onUpdate:valid","errors","onUpdate:errors"]))]),_:2},1032,["modelValue","onUpdate:modelValue","label","caption"])])}),128))]),_:1})):C("",!0),((ee=r(s).progressMessage)==null?void 0:ee.length)>0?(m(),b(I,{key:2},{default:u(()=>{var t;return[i("div",We,[o(Ie,{class:"col",value:r(s).progress,"buffer-value":r(s).progress/2,color:r(s).progress<1?"primary":"green",stripe:"",size:"35px"},{default:u(()=>[i("div",ze,[o(re,{color:"white","text-color":"accent",label:r(s).progressMessage},null,8,["label"])])]),_:1},8,["value","buffer-value","color"]),((t=r(s).progressMessage)==null?void 0:t.length)>0?(m(),b(v,{key:0,dense:"",color:"secondary",icon:"close",onClick:e[9]||(e[9]=c=>r(s).resetProgress())})):C("",!0)])]}),_:1})):C("",!0),(te=r(s).itemProgress)!=null&&te.length?(m(),b(I,{key:3},{default:u(()=>[e[25]||(e[25]=i("div",{class:"text-subtitle2 q-mb-sm"},"Per-product progress",-1)),o(qe,{dense:"",bordered:"",separator:"",style:{"max-height":"280px",overflow:"auto"}},{default:u(()=>[(m(!0),q(Q,null,O(r(s).itemProgress,t=>(m(),b(se,{key:t.sku},{default:u(()=>[o(A,null,{default:u(()=>[o(R,null,{default:u(()=>[M(W(t.sku),1)]),_:2},1024),o(R,{caption:""},{default:u(()=>[M(W(t.message),1)]),_:2},1024)]),_:2},1024),o(A,{side:""},{default:u(()=>[o(re,{label:t.status},null,8,["label"])]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})):C("",!0),o(I,{class:"row justify-between"},{default:u(()=>[o(v,{dense:"",color:"primary",loading:p.value,label:"Import Products",icon:"cloud_upload",onClick:e[10]||(e[10]=t=>ce()),disable:!L.value.length||p.value||E.value.length>0},null,8,["loading","disable"]),o(v,{dense:"",color:"negative",loading:p.value,label:"Remove All",icon:"delete",onClick:e[11]||(e[11]=t=>r(s).resetProductImportItems()),disable:!ue.value||p.value},null,8,["loading","disable"])]),_:1}),o(Te)]}),_:1}))}},je={__name:"PartsHubImportSearchWidget",props:{required:Boolean,modelValue:Number},emits:["update:modelValue"],setup(S,{emit:s}){const w=s,h=Oe();async function k(V,P){try{const a=await h.addPartsToProductsImport(V);if(a===0){le("No parts were added. Try searching again, or check that selected SKUs match the results.");return}a<V.length?le(`Added ${a} of ${V.length} parts to the import queue (some SKUs were not found).`):ke(`Added ${a} parts to import queue`)}catch(a){console.error("addPartsToProductsImport:",a),Ve(a!=null&&a.message?`Could not add parts to import: ${a.message}`:"Could not add parts to import. Check the console for details.")}finally{P()}}return(V,P)=>(m(),b(Qe,{title:"Partshub parts",caption:"Search for parts by SKU. Results are powered by Meilisearch for instant, comprehensive results with full details.","input-label":"Search Parts by SKU",required:S.required,"model-value":S.modelValue,"onUpdate:modelValue":P[0]||(P[0]=a=>w("update:modelValue",a))},{actionBelow:u(({selectedSkus:a,clearSelection:p})=>[o(v,{disable:a.length===0,dense:"",color:"primary",label:"Add to Import",icon:"add",onClick:j=>k(a,p)},null,8,["disable","onClick"])]),_:1},8,["required","model-value"]))}},De={class:"row"},He={class:"col"},Ht={__name:"ProductsImportPage",setup(S){return(s,w)=>(m(),b(fe,{padding:""},{default:u(()=>[i("div",De,[i("div",He,[w[0]||(w[0]=i("h1",{class:"text-h4"},"Products -- Import(s)",-1)),o(je),o(Re),w[1]||(w[1]=i("div",{class:"mt-40"},null,-1))])]),o(he)]),_:1}))}};export{Ht as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.