← back to Kravet Sheet Sync 2026 04 20

__pycache__/fix_audit_issues.cpython-314.pyc

84 lines

+
x
Yjc!���	�Rt^RIt^RIt^RIt^RIt^RIt]PPRR4t	Rt
R]
R2tRtRR	.t
.RoOtR
RRR
RRRRRR/R
RRRRRRRRR/R
RRRRRRRRR/.tRpRlt]!R4R t]!]R!]R"]/4t]R#,R$,t]!R%]!]4R&2]'dR']R(2MR,4]!R)4]Fmt]P.!]
R*]R,R+2.,R,R,R-7tR.]P29]R/&]!R0]R
,R1]R,R2]R/,'dR3MR424Ko	^RIt^RIt]F�t]R/,'dK]R,P9R5R64t]P.!]
R7]R82.,R,R,R-7t]P<!]P>!]P244Uu.uFq'gKV^,NK	upt ]!R0]R
,R9]!] 4R:24] Ft!]!R;]!R<,24K	] ]R=&K�	R>t"R?t#R@t$RAt%RBt&RqRClt'^RItRDt(]PR!](R,RE7]EFNt]R
,]R,ut*t+]!RF]*RG]R,24]!RHR!]+/4t,],RI,RJ,RK,Uu.uFqR!,NK
	upt-]-'d ]!]$R]+RL]-/4]!RM]!]-4RN24Rt.]PR/4'dK](RO]*RP2t.]&!RQ]R,2].4'd(]!RR]P^Pa].4RS
RT24MRt.].'g�]PR=.4F�t!]PbPe]!P9RURV4RWRX/RY7t3]PbPi]3^RZ7Pk4t6]!]64R[8�d6](RO]*RP2t.]7!].R\4Pq]64]!R]]!]64RS
RT24MK�	].'g]!R_4EK�]'!].4t;]!R`];Ra,24]!]#R]+RbRc];RdReRf]R,/./4t]Rg,Rh,t]'d]!Ri]24EK]Rg,RJ,^,t<]!Rj]<R!,Rk]<Rl,24EKQ	]!Rn4R#uupiuupi ]9dt:]!R^]:24Rt:A:EKxRt:A:ii;i ]9dt:]!Rm]:24Rt:A:EK�Rt:A:ii;i)ru�
Fix issues from audit_last_30:
  A) Add 5 active products missing from New Arrivals collection
  B) Fix 3 DRAFT products with FAILED images — upload from FTP mirror via
     stagedUploadsCreate, then attach and re-activate
N�SHOPIFY_ADMIN_TOKEN�z)designer-laboratory-sandbox.myshopify.comzhttps://z/admin/api/2024-10/graphql.jsonz%gid://shopify/Collection/167327760435�sshzroot@45.61.58.125�dw_skuzDWKK-155119�pidz#gid://shopify/Product/7821740539955�mfrzFG125.S110.0�titlez)Grand Mulberry Woodland Summer | Mulberry�ftp_pathz/KF/HIRES/FG125_S110.JPGzDWKK-155304z#gid://shopify/Product/7821740572723zNZAW112026.SCN.0zParlour Palm | Scionz/KF/HIRES/NZAW112026_SCN.JPGzDWKK-156194z#gid://shopify/Product/7821740638259zWHF3846.WT.0zCompass Clay | Winfield Thybonyz/KF/HIRES/WHF3846_WT.JPGc	��\P!RTRT;'g//4P4p\PP\VRRRR\/R7p\P!\PPV^R7P44pRV9d\VR,4hVR	,#)
�query�	variables�POST�Content-Typezapplication/jsonzX-Shopify-Access-Token��data�method�headers��timeout�errorsr)�json�dumps�encode�urllib�request�Request�URL�TOKEN�loads�urlopen�read�RuntimeError)�q�v�body�req�ds&&   �0kravet-sheet-sync-2026-04-20/fix_audit_issues.py�gqlr(%s���	
���W�Q�{�1�7�7��3�	4�	;�	;�	=�D������s��F�� 2�3K�E�R�	�	T�C�
�j�j����'�'��B�'�7�<�<�>�?�A��1�}�L��8��5�5��V�9��z2=== A) Adding missing products to New Arrivals ===zimutation($id:ID!,$pids:[ID!]!){collectionAddProducts(id:$id,productIds:$pids){userErrors{field message}}}�id�pids�collectionAddProducts�
userErrorsz  added z products to New Arrivalsz
 (errors: �)zA
=== B) Fixing DRAFT products with failed Brandfolder fetches ===zls -la /root/kravet-ftp-mirrorz 2>&1 || echo MISSINGT��capture_output�text�MISSING�
ftp_existsz  z ftp z: u✓u✗ MISSING�'z''z�PGPASSWORD=DW2024! psql -h 127.0.0.1 -U dw_admin -d dw_unified --csv -t -c "SELECT url FROM kravet_sku_images WHERE mfr_sku_raw = 'z' ORDER BY kind, url LIMIT 3"z fallback URLs from catalog (z):z    :N�N�
fallback_urlsz�
mutation($input:[StagedUploadInput!]!){
  stagedUploadsCreate(input:$input){
    stagedTargets{ url resourceUrl parameters{ name value } }
    userErrors{ field message }
  }
}z�
mutation($pid:ID!,$m:[CreateMediaInput!]!){
  productCreateMedia(productId:$pid,media:$m){
    media{ ... on MediaImage{ id status } }
    mediaUserErrors{ field message }
  }
}z�
mutation($pid:ID!,$ids:[ID!]!){
  productDeleteMedia(productId:$pid,mediaIds:$ids){ deletedMediaIds mediaUserErrors{ field message } }
}zj
mutation($p:ProductUpdateInput!){productUpdate(product:$p){product{id status} userErrors{field message}}}c��\P!RRV2V.RRR7pVP^8H;'dJ\PPV4;'d#\PP
V4^8�#)z0SCP a single file from Kamatera mirror to local.�scpzroot@45.61.58.125:Tr/)�
subprocess�run�
returncode�os�path�exists�getsize)�remote_path�
local_path�rs&& r'�fetch_from_kamaterarClsf������!3�K�=�A�:�N�&*��	7�A��<�<�1��_�_������
�!;�_�_������PZ�@[�^_�@_�_r)c��\PPV4p\PPV4p\	\
RRVRVRRRRR\
V4/./4pVR,R	,pV'd\R
V24hVR,R,^,pR\P!^4P4,p.pVR
,F,p	VPRVRV	R,RV	R,R24K.	\VR4;_uu_4q�P4pRRR4VPRVRVRVR24RPV4P4X,RVR2P4,p\P P#VR,VRRRV2/R7p
\P P%V
^<R 7P4VR!,# +'giL�;i)"�input�filename�mimeType�resource�IMAGE�
httpMethodr
�fileSize�stagedUploadsCreater-zstaged create: �
stagedTargetsz----dw-form-�
parametersz--z(
Content-Disposition: form-data; name="�namez"

�valuez
�rbNz9
Content-Disposition: form-data; name="file"; filename="z"
Content-Type: z

rz
--z--
�urlrzmultipart/form-data; boundary=rr�resourceUrl)r<r=r?�basenamer(�	STAGED_UP�strr!�urandom�hex�append�openr �joinrrrrr)rA�mime�fsize�fnamer&�errs�target�boundary�
body_parts�p�f�
file_bytesr$r%s&&            r'�staged_upload_shopifyrfss����G�G�O�O�J�'�E��G�G���Z�(�E��I���E�:�t�Z���f�j�#�e�*�#�"��		�A�
�
"�#�L�1�D��<�/�$�� 8�9�
9�
�$�
%�o�
6�q�
9�F���
�
�1�
� 1� 1� 3�3�H��J�
�L�
!�
!�����B�x�j�(R�ST�U[�S\�R]�]f�gh�ip�gq�fr�rv�w�x�"�
�j�$�	�	�1�6�6�8�j�	�����8�*�$_�`e�_f�fy�z~�y�@H�I�J�
�7�7�:��%�%�'�*�4���z��7P�7W�7W�7Y�Y�D�
�.�.�
 �
 ����T�&��#A�(��!L�M�!�O�C�
�N�N���3���+�0�0�2��-� � �
 �	�s�G5�5H	z/tmp/kravet_fallback_images)�exist_okz
  [z] z;query($id:ID!){product(id:$id){media(first:10){nodes{id}}}}�product�media�nodes�idsz    deleted z
 failed media�/z.jpgz/root/kravet-ftp-mirrorz    pulled from FTP mirror: �,z bytes� z%20z
User-AgentzMozilla/5.0)rri N�wbz    pulled from URL: z    URL fail: z    SKIP: no image sourceu    staged → :N�PN�m�originalSource�mediaContentTyperI�alt�productCreateMedia�mediaUserErrorsz    attach errors: z    attached: z status=�statusz    stage/attach fail: z
done.)z#gid://shopify/Product/7821710032947z#gid://shopify/Product/7821710065715z#gid://shopify/Product/7821710131251z#gid://shopify/Product/7821740605491)N)z
image/jpeg)=�__doc__rr<r9�urllib.requestr�urllib.parse�environ�getr�SHOPr�NEW_ARRIVALS�SSH�MISSING_COLLECTION_ACTIVE�IMAGE_FAILEDr(�print�COL_ADDr&r_�len�itemr:rB�stdout�io�csv�replace�esc_sku�reader�StringIO�urls�urU�MEDIA_CREATE�	MEDIA_DEL�PROD_UPDrCrf�TMP_DIR�makedirsrr�cur�	media_ids�localr=r?rrr%rr �brZ�write�	Exception�e�resource_urlrq)rBrqs00r'�<module>r�s����:�9�9��j�j�n�n�*�2�.��0���t�f�3�4��
4��
�������m�E�"G�
�>�'�"M��*�,��m�E�"G�
��g�&<��.�0��m�E�"G�
�>�'�"C��*�,�����:�;�
y����$��f�.G�H�I���	 �!�,�/�����.�/�0�0I�J�fj�PZ�[_�Z`�`a�Nb�pr�s�t��J�K�
�D����s� >�t�J�?O�>P�Pe�f�g�g�&*��	7�A�"�!�(�(�2�D���	�B�t�H�~��e�D��$4�#5�R��l�AS�AS��Yf�7g�
h�i�	
���D��L�����5�k�!�!�#�t�,�G����s�D�DK�9�Lj�	l�m�m��$�	(�A��*�*�R�[�[����%:�;�A�;�Q�q�D�A�a�D�D�;�A�D�	�B�t�H�~��;�C��I�;�b�
I�J�
��5�4��$��y�)�*�T� �D���
�
�	���
�	�m��`�!�6
�
'�����G�d�#��D��x�.�$�u�+�K�F�C�	�E�&���D��M�?�
+�,��K�d�TW�[�
Y�C�"%�i�.��"9�'�"B�C�"B�Q�4���"B�C�I���I��s�E�9�5�6�
��S��^�,�M�:�;�
�E��x�x�����)�1�V�H�D�)���!8��j�9I�8J�K�U�S�S��0�������1G��0J�&�Q�R��E�����/�2�.�A�

,��n�n�,�,�Q�Y�Y�s�E�-B�)�-�8�-�:���N�N�*�*�3��*�;�@�@�B���q�6�E�>�&�i�q����5�E����%�+�+�A�.��1�#�a�&���6�B�C��	"�/��
�)�+��-�,�U�3��
���S� 1�2�3�4���u�c�3��l����4��=�2
�1��

��
�%�&�'8�9����'��v�.�/��&�'��0��3�A��N�1�T�7�)�8�A�h�K�=�A�B�i
�p�i���wB��RD��4�
,���q�c�*�+�+��
,��*�-�
�'��s�+�,�,��-�sP�<	R#�

R#�R(�BR-�AS�S�!3S�-S�4S�S�S,�S'�'S,